Python_BE1
9 subscribers
748 photos
252 videos
7 files
672 links
Канал по Python, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
Название первого курса от этого сотрудника: «Как попасть в IT.. Ну или не попасть.. Там как пойдёт, сильно губу не раскатывайте.. Да-да, нет-нет.. Может только айтишные мемы понимать начнете»

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🥚 3D Пасхальное яйцо от Google ,которое можно получить, вбив в поиск эту функцию:

1.2+(sqrt(1-(sqrt(x^2+y^2))^2) + 1 - x^2-y^2) * (sin (10 * (x*3+

Если найдете пасхулку кулича, скиньте в комменты 👇

@python_be1
⚡️ Огромный курс по созданию языковых моделей с ПОЛНОГО НУЛЯ выложил Стэнфорд — «СS336: Language Modeling from scratch» прямо сейчас преподают в университете и сразу же выкладывают на Ютуб для ВСЕХ.

• Кто угодно может БЕСПЛАТНО научиться создавать собственные ИИ-модели с нуля.
• Это огромный полноценный курс: от архитектуры и токенизаторов до обучения с подкреплением и масштабирования.
• Все темы преподы объясняют пошагово, от простого к сложному. Поймет даже новичок в кодинге.
• К каждой лекции есть множество дополнительных материалов и домашних заданий.

Сайт курса — здесь. (https://stanford-cs336.github.io/spring2025/) Плейлист на Ютубе — тут. (https://youtube.com/playlist?list=PLoROMvodv4rOY23Y0BoGoBGgQ1zmU_MT_)
👍

@python_be1
🌱 Что выведет код?

@python_be1
суть программы вот в чем, 4 двигателя крутятся с одинаковым шагом но с разным промежутком времени, в результате программа работает с задержкой от того что должно быть по факту, если я увеличиваю скорость F1000 вместо F500 то программа работает быстрей, сами же двигатели не синхронно вращаются, в начале вроде как все как и должно быть, но под конец движения, какие-то двигателя вовремя заканчивают движения а какие-то только догоняют причем не зависимо от метода! время на паузы на трех двигателях 0.0157, а одном 0.0078 в секундах кстати на котором 0.0078 он и отстает

@python_be1
🗣 Dia — это новаяоткрытая модель текст‑в‑речь от Nari Labs с 1.6 млрд параметров, способная генерировать полноценный диалог с богатой экспрессией.

Ключевые возможности:
- Ультра‑реалистичный диалог. Генерация согласованных реплик двух «говорящих» персонажей, помеченных тэгами [S1] и [S2] в одном тексте.

- Эмоции и тон. Можно задавать тональность и интонацию через акустический запрос (audio prompt), а также управлять «невербалкой»: смех, кашель, вздохи и т. д.

- Voice cloning. Клонирование голоса по короткому образцу: подгрузите аудио и его транскрипт, и модель адаптируется под заданный тембр
GitHub

Модель написана на Python (100 % кода) с использованием PyTorch 2.0 и CUDA 12.6

Производительность и требования:

Полная версия требует ≈10 GB VRAM; в будущем планируется квантование модели.

Установка и запуск:
`pip install git+https://github.com/nari-labs/dia.git
git clone https://github.com/nari-labs/dia.git
cd dia
uv run app.py ` # или python app.py

В интерфейсе Gradio сразу можно оценить разницу с ElevenLabs и Sesame CSM‑1B

Лицензия: Apache 2.0.

Dia отлично подходит для ML‑исследований в TTS: вы получаете открытые весовые файлы, гибкий API для скриптов и UI для быстрой проверки гипотез.

На данный момент Dia поддерживает генерацию речи только на английском языке

Demo (https://yummy-fir-7a4.notion.site/dia)
Github (https://github.com/nari-labs/dia)
HF (https://huggingface.co/nari-labs/Dia-1.6B)

@python_be1
🖥 ex — это утилита для создания одного исполняемого файла .pex, внутри которого содержится вся ваша программа на Python и её зависимости. По сути это самодостаточная, переносимая среда выполнения, похожая на virtualenv, но упакованная в один файл.

Зачем это нужно?

Простота развёртывания: чтобы установить и запустить приложение, достаточно скопировать файл app.pex и запустить его — никакой дополнительной настройки.

Портируемость: один файл может включать сборки для разных платформ (Linux, macOS).

Изоляция зависимостей: все библиотеки (включая C‑расширения) уже внутри, конфликтов версий нет.

Как пользоваться:

Устанавливаем сам инструмент:

`pip install pex`
Собираем .pex-файл:

`pex requests -o fetch.pex —script=requests`
После этого fetch.pex — готовый исполняемый файл, который при запуске сразу импортирует и запускает библиотеку requests.

Интеграция с другими сборщиками:
Системы вроде `Pants, Buck и {py}gradle `умеют автоматически собирать .pex-архивы из вашего кода.

Лицензия: Apache 2.0

GitHub: https://github.com/pex-tool/pex
Документация: https://docs.pex-tool.org/

@python_be1
🖥 Новинка в Python 3.14: t-строки — типобезопасные f-строки

Python 3.14 вводит t"..." — новый синтаксис для строк, ориентированных на безопасность типов и интеграцию с системами шаблонов, SQL, HTML и др.

🔹 Что такое t-строка?
t"..." — это как f"...", но:

- интерполяция ограничена и контролируема;
- поддерживается строгое соответствие шаблону;
- можно передавать переменные явно, предотвращая SQL-инъекции и XSS.

🔸 Пример:
```

name = "Alice"
greeting = t"Hello, {name}!" # t-строка
Вместо немедленной подстановки, как в f"...", t"..." создает шаблон с выражениями как параметрами.
```

🔐 Зачем это нужно?
Безопасность при генерации SQL, HTML, JSON

Улучшение инструментов и проверки типов (через static analysis)

Контроль над контекстом исполнения (больше нельзя просто вставить переменную как есть — нужно передать её явно)

📦 Использование:
t-строки — это первый шаг к "template string literals" как в TypeScript.

Можно использовать с функциями:

```

def html(template: T[str]) -> SafeHTML:
...

html(t"<div>{user_input}</div>")
```

💡 Почему это важно?
Старый код:

```

f"SELECT * FROM users WHERE name = '{user_name}'"
может привести к SQL-инъекциям и XSS.
t-строки — безопасная альтернатива с встроенной защитой.

```

🛡 Пример: безопасный HTML
```

template = t"<p>{user_input}</p>"
html_output = html(template)
# <p>&lt;script&gt;alert('bad')&lt;/script&gt;</p>

```
Функция html() может вернуть не просто строку, а полноценный HTMLElement.
Больше никакой "грязи" — всё чисто и типобезопасно.

🔍 Работа с шаблоном
t-строки позволяют получить доступ к содержимому:

```

template = t"Hello {name}!"
template.strings # ("Hello ", "!")
template.values # (name,)
template.interpolations[0].format_spec # ">8"

```
Можно и вручную собрать шаблон:

```

Template("Hello ", Interpolation(value="World", expression="name"), "!")

```

🚀 Вывод:
t"..." — шаг к безопасным шаблонам и типизации строк в Python.
Готовься к будущему Python — безопасному по умолчанию.

📌 Подробнее здесь (https://davepeck.org/2025/04/11/pythons-new-t-strings/)

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Появилась новая нейронка для генерации веб-приложений — Adaptive. Пользователи уже успели сделать с ней клона ChatGPT и других сайтов.

В Adaptive можно добавлять ИИ-функции, встроить прием платежей и систему регистрации пользователей. При этом API-ключ других нейронок для работы не нужен.

Пробуем здесь (https://adaptive.ai/). Бесплатно дают сделать десять приложений.

@python_be1
Media is too big
VIEW IN TELEGRAM
🐱Статьи, графики, таблицы — новый ИИ-агент Suna делает всё за вас

Вышел бесплатный ИИ-инструмент Suna, который превращает любую задачу в детальный и чёткий доклад с графиками, таблицами и выводами.

Что умеет:
— Сам планирует, ищет и обрабатывает инфу — вы даёте только тему;
— Управляет браузером, Excel и даже кодом;
— Сканирует сотни источников;
— Генерирует визуально оформленные отчёты — всё уже готово к презентации.

Подходит для студентов, аналитиков, маркетологов и просто ленивых. Бесплатно.

Запускаем на ПК через GitHub (https://github.com/Kortix-ai/Suna) или онлайн — здесь (https://www.suna.so/).

5️⃣

@python_be1
Ваш первый бэкенд на Django — пошаговый учебник
Бесплатный самоучитель по Django (https://tutorial.djangogirls.org/), созданный специально для новичков. Шаг за шагом вы создадите веб-приложение (блог) на Python с использованием фреймворка Django.

По ходу дела объясняются все необходимые основы — от базового Python до шаблонов HTML/CSS. К концу у вас будет собственный рабочий блог на сервере и понимание принципов бэкенд-разработки.

#бэкенд #python #django

@python_be1
🖥 PDF Craft — библиотека на Python для конвертации PDF (в первую очередь сканированных книг) в Markdown и EPUB с использованием локальных AI-моделей и LLM для структурирования содержимого
GitHub

🌟 Основные возможности
- Извлечение текста и макета
Использует сочетание DocLayout-YOLO и собственных алгоритмов для детектирования и фильтрации заголовков, колонтитулов, сносок и номеров страниц

- Локальный OCR
Распознаёт текст на странице через OnnxOCR, поддерживает ускорение на GPU (CUDA)

- Определение порядка чтения
С помощью layoutreader строит поток текста в том порядке, в котором его воспринимает человек

- Конвертация в Markdown
Генерирует .md с относительными ссылками на изображения (иллюстрации, таблицы, формулы) в папке assets

- Конвертация в EPUB
На основе промежуточных результатов OCR передаёт данные в LLM (рекомендуется DeepSeek) для построения оглавления, глав, корректировки ошибок и включения аннотаций

Установка и требования
Python ≥ 3.10 (рекомендуется 3.10.16).

`pip install pdf-craft и pip install onnxruntime==1.21.0 (или onnxruntime-gpu==1.21.0 для CUDA).`

Для EPUB-конвейера нужен доступ к LLM-сервису (например, DeepSeek).

🟡 Github (https://github.com/oomol-lab/pdf-craft)

@python_be1
Товарищи! А есть библиотека для экспериментов, имитации процессов (химия, физика, оптика)? Везде только библиотеки для создания игр, это не совсем то что нужно...

@python_be1
1️⃣0️⃣0️⃣0️⃣ гайдов для разрабов в одном репозитории — разраб из Твиттера собирал огромный сундук знаний целых 10 лет.

В нем есть буквально ВСЁ: от шпаргалок по горячим клавишам для ускорения работы до фундаментальных гайдов по языкам программирования для веба, разработки ПО и курсов по устройству сетей, безопасности и многому другому.

• Инструменты для работы с CLI и GUI, вебом и локальными сетями.
• Список всех актуальных фреймворков и библиотек в 2025 году.
• Гайды по тестированию и хакингу приложений.
• Шпаргалки по взаимодействию с командной строкой.
• ТОННА блогов, Ютуб-каналов, колонок в онлайн-СМИ и журналах, чтобы поддерживать свежесть знаний и не отставать от прогресса.

Фолиант мудреца читаем — здесь. (https://github.com/trimstray/the-book-of-secret-knowledge?tab=readme-ov-file#manualshowtostutorials-toc)
👍

@python_be1
Что такое collections.Counter?

collections.Counter — это специальный класс, предоставляющий удобный способ подсчета хэшируемых объектов. Он является подклассом словаря и предоставляет функциональность для подсчета количества вхождений каждого элемента в последовательность (список, кортеж, строку и т.д.).

@python_be1
🖥Задача: "Динамическое кэширование с ограничением памяти и частотой запросов"
🔖 Условие:

Реализуйте класс `SmartCache`, который работает следующим образом:

- Метод `put(key: str, value: Any)`:
- Сохраняет значение по ключу.
- Если суммарный объем памяти, занимаемый всеми элементами, превышает лимит (например, 10 MB), автоматически удаляются наименее "ценные" элементы.

- Метод `get(key: str) -> Any`:
- Возвращает значение по ключу.
- Увеличивает счётчик использования элемента.
- Если элемент отсутствует — возвращает `None`.

Что значит "ценность" элемента:
- Ценность = количество обращений (`hit count`) к элементу.
- При очистке кэша сначала удаляются элементы с наименьшим количеством обращений.

Ограничения:
- Класс должен корректно считать объём памяти, занимаемый элементами.
- Нужно учитывать, что элементы могут быть сложными структурами (`dict`, `list`, вложенные объекты).
- Решение должно быть эффективным: операции должны быть быстрыми даже при большом количестве элементов.

---

▪️ Подсказки:

- Для оценки размера объектов можно использовать модуль `sys.getsizeof`, но для сложных вложенных структур нужен рекурсивный подсчет.
- Для хранения частоты обращений стоит использовать дополнительную структуру данных (`collections.Counter` или `dict`).
- При очистке лучше сначала группировать элементы по "ценности", а затем удалять самые "дешевые".

---

▪️ Что оценивается:

- Умение работать с ограничениями по памяти.
- Аккуратная обработка ссылок и размеров объектов.
- Эффективность очистки кэша.
- Чистота и читаемость кода.

---

▪️ Разбор возможного решения:

Идея архитектуры:

- Храним:
- `storage`: словарь `{key: value}`.
- `hits`: счётчик `{key: hit_count}`.
- `size`: общий размер всех объектов.
- При `put()`:
- Добавляем элемент.
- Пересчитываем суммарный размер.
- Если размер превышает лимит:
- Удаляем наименее популярные элементы до тех пор, пока не уложимся в лимит.
- При `get()`:
- Увеличиваем `hit_count` элемента.
- Возвращаем значение или `None`.

Оценка размера объектов:

- Простого `sys.getsizeof` недостаточно для коллекций.
- Нужна функция, рекурсивно подсчитывающая размер всех вложенных объектов.

Мини-пример функции подсчета размера:
```

import sys

def deep_getsizeof(obj, seen=None):
"""Рекурсивно считает память объекта и его вложенных объектов"""
size = sys.getsizeof(obj)
if seen is None:
seen = set()
obj_id = id(obj)
if obj_id in seen:
return 0
seen.add(obj_id)

if isinstance(obj, dict):
size += sum([deep_getsizeof(v, seen) + deep_getsizeof(k, seen) for k, v in obj.items()])
elif isinstance(obj, (list, tuple, set, frozenset)):
size += sum(deep_getsizeof(i, seen) for i in obj)
return size

```
Мини-пример интерфейса `SmartCache`:
```

class SmartCache:
def __init__(self, max_size_bytes):
self.max_size = max_size_bytes
self.storage = {}
self.hits = {}
self.total_size = 0

def put(self, key, value):
# добавить логику добавления и очистки при переполнении
pass

def get(self, key):
# увеличить hit_count и вернуть значение
pass

```

---

▪️ Дополнительные вопросы:

- Как ускорить очистку кэша без полного перебора всех элементов?
- Как сделать потокобезопасную версию кэша?
- Как адаптировать `SmartCache` для распределённой архитектуры (кэш между несколькими машинами)?

---

@python_be1