Telegram Group Search
Автоматизируйте ML-эксперименты с GitLab CI/CD и CML

📅 17 июня в 20:00 мск — бесплатный вебинар с Николаем Осиповым

Хотите, чтобы эксперименты запускались сами, метрики попадали в Merge Request, а модели легко воспроизводились?

На вебинаре:

— Интегрируем GitLab CI/CD в ML-процесс
— Используем CML для автоматической визуализации результатов
— Запускаем обучение моделей при каждом коммите
— Настраиваем работу в облаке и версионирование через Git

📌 Полезно для:
— Data Scientists, внедряющих MLOps
— ML-инженеров, автоматизирующих пайплайны
— Техлидов, выстраивающих эффективный ML-конвейер

🎯 Итог: настроите стабильную и воспроизводимую систему ML-разработки — без ручного запуска, с чистыми метриками и контролем версий.

Присоединяйтесь к бесплатному вебинару и получите скидку на большое обучение онлайн-курса «MLOps».

👉 Регистрируйтесь по ссылке и начните выводить ML на прод https://clck.ru/3Ma8c7

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ MicroVMS — новая платформа для запуска кода от AI-агентов с максимальной безопасностью и скоростью.

В отличие от Docker и других тяжелых решений, MicroVMS использует легковесные песочницы для быстрой изоляции, мгновенного старта и простого управления.

● Поддержка разных сред: Python, Node.js и другие
● Идеально для AI-агентов — разработка и запуск без лишних сложностей
● Удобная система управления проектами — настройка песочниц в пару кликов

Если вы хотите запускать код AI-агентов быстро, безопасно и удобно — обратите внимание на MicroVMS.

pip install microsandbox

🔗 Github (https://github.com/microsandbox/microsandbox)




@Python_Community_ru
🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite!

py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.

📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}

💡 Примеры установки:

pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу


🔧 Пример (SQLAlchemy)

python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None


py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.

Полноценный PostgreSQL — без его тяжеловесности.

Github (https://github.com/wey-gu/py-pglite)



#python #sql #PostgreSQL #opensource

@Python_Community_ru
🚀 Pipedream — платформа для создания интеграций и автоматизаций между сервисами. Этот инструмент позволяет соединять более 1000 приложений через готовые компоненты или собственный код на Node.js, Python, Go и Bash.

Главное преимущество проекта — это гибкость: можно быстро настроить триггеры и цепочки действий без сложной инфраструктуры. Для кастомных сценариев доступно выполнение произвольного кода с подключением любых npm/pip-пакетов. Интеграции развертываются в облаке Pipedream, что избавляет от необходимости настраивать серверы.

🤖 GitHub (https://github.com/PipedreamHQ/pipedream)



@Python_Community_ru
🚀 TurboDRF — ускоритель Django REST Framework без боли

TurboDRF — лёгкий способ ускорить ваш Django API без перехода на FastAPI или переписывания логики.

🔥 Что даёт TurboDRF:
Быстрый рендер сериализаторов
🧠 Автоматический prefetch_related и select_related
🧊 Кэширование сериализованных ответов
🧩 Совместим с обычными DRF-сериализаторами

📦 Установка:

pip install turbodrf


🛠️ Пример:

from turbodrf.mixins import TurboModelSerializer

class MySerializer(TurboModelSerializer):
class Meta:
model = MyModel
fields = "__all__"


Идеален для больших Django-проектов, где важна скорость ответа.

🔗 GitHub: https://github.com/alexandercollins/turbodrf



@Python_Community_ru
🖥 Вышел Git 2.50

Вот основные обновления:
1. Новый уровень работы с cruft packs
- Git хранит неиспользуемые (невидимые) объекты в специальных “cruft packs”.
- Раньше управлять ими было сложно: чтобы добавить или объединить объекты, нужно было всё перепаковывать, что занимало много времени и места.
- Теперь появился флаг --combine-cruft-below-size: можно легко объединять мелкие cruft packs в один, постепенно “чистить” репозиторий.
- Исправлена важная ошибка: раньше такие объекты могли случайно удаляться раньше времени — теперь это под контролем.

2. Быстрее для больших репозиториев — многослойные битмапы
- В больших проектах Git создаёт специальные “карты” (bitmaps), чтобы быстро понимать, какие объекты нужны для определённых коммитов.
- Новая версия поддерживает “инкрементальные” битмапы для multi-pack index — можно добавлять новые данные быстро, не пересоздавая всю структуру.

3. Новый движок слияния ORT
- Старый движок recursive полностью удалён: теперь слияния (`merge`) обрабатывает только быстрый и надёжный ORT.
- Это упростит разработку, повысит скорость merge и уменьшит количество ошибок.

4. Улучшения в утилитах и команде cat-file
- Теперь можно фильтровать объекты по типу, например, быстро получить только “деревья” (tree) с помощью --filter='object:type=tree'.
- Команда для удаления reflog стала интуитивной: вместо сложных параметров просто пишем git reflog delete .

5. Больше контроля над сетевыми соединениями
- Добавлены настройки для TCP Keepalive, теперь можно гибко управлять поведением Git в нестабильных сетях.

6. Меньше Perl — проще тестировать и собирать
- Git ещё больше избавился от зависимостей на Perl: тесты и документация теперь проще и стабильнее, особенно на системах без Perl.

7. Работа с разреженными (sparse) репозиториями стала удобнее
- Команды вроде git add -p теперь не требуют полной загрузки содержимого — удобно при работе с огромными проектами.

8. Косметические улучшения
- При ребейзе (rebase -i) названия коммитов теперь оформляются как комментарии — так ясно, что это просто для ориентира.

9. Быстрее клонируем через bundle-uri
- Git стал лучше справляться с ускоренным клонированием через *.bundle: теперь клиент правильно учитывает все ссылки, ускоряя загрузку репозитория.

Git 2.50 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое.

➡️ Почитать про все обновления (https://github.blog/open-source/git/highlights-from-git-2-50/)



@Python_Community_ru
🙌🙌🙌🙌 15+ документов для тех, кто в диджитал

В преддверии новой активности мы собрали в одну папку 18 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:

🔴Создать рабочий лид-магнит;
🔴Подготовить сайт к требованиям РКН;
🔴Подготовиться к любому выступлению;
🔴Удержать проект в сроках и рамках бюджета;
🔴Организовать эффективное участие в тендерах;
🔴Чек-лист сдачи этапов разработки;
🔴и еще много много всего!

❗️ Сохранив единожды папку «Документы для тех, кто в диджитал», вы сможете спокойно пройтись по всем каналам и скачать множество авторских документов, которые точно пригодятся в работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍 PyLeak — найди утечку памяти в своём Python-коде

PyLeak — простой и мощный инструмент для отладки утечек памяти в Python-приложениях.

🔍 Возможности:
• Показывает объекты, которые не удаляет сборщик мусора
• Строит граф зависимостей между объектами
• Выявляет циклические ссылки и "висящие" объекты
• Поддерживает визуализацию через Graphviz

📦 Установка:

pip install pyleak


🧰 Идеален для отладки сервисов, где память утекает незаметно.

🔗 GitHub (https://github.com/deepankarm/pyleak)



@Python_Community_ru
🖥 Совет по Python:


from pathlib import Path

# Создаем объект Path для заданного пути к файлу
path = Path("C:/Users/test.md")

# Получаем имя файла вместе с расширением
print(path.name) # 'test.md'

# Получаем только имя файла без расширения
print(path.stem) # 'test'

# Получаем расширение файла (с точкой)
print(path.suffix) # '.md'

# Получаем родительскую директорию (папку)
print(path.parent) # 'C:/Users'

С помощью модуля pathlib вы можете получать различные части пути — имя файла, расширение, родительскую директорию. Это упрощает работу с файловыми путями и их анализ.

Объяснение:

- path.name — возвращает полное имя файла (например, test.md).

- path.stem — возвращает имя файла без расширения (например, test).

- path.suffix — возвращает расширение файла (например, .md).

- path.parent — возвращает путь к родительской директории (например, C:/Users).

Модуль pathlib позволяет удобно разбирать путь к файлу на части и работать с ними, не используя строковые операции вручную. Это особенно полезно для кроссплатформенной работы с файлами и папками.



@Python_Community_ru
🎯 Практическое руководство: Signals — реактивное управление состоянием в Python

Недавно вышло отличное руководство «The Missing Manual for Signals: State Management for Python Developers», где автор показывает, как внедрять реактивную модель на Python с помощью библиотеки

Почему Signals полезны

Стандартный подход—императивный—скрывает зависимости между переменными, что ведёт к ошибкам:


class OrderService:
def add_order(self, order):
self.orders.append(order)
self.total += order.amount
self.avg = self.total / len(self.orders)
self.notify_if_needed()
self.track_analytics()


Если забыть обновить одно значение — всё сломается.

Как работают Signals

Signals = реактивные переменные, которые:

1. Хранят значение (`Signal`)
2. Автоматически вычисляют производные (`Computed`)
3. Выполняют побочные действия (`Effect`) на изменениях

Пример:


from reaktiv import Signal, Computed, Effect

orders = Signal([])
total = Computed(lambda: sum(o.amount for o in orders()))
avg = Computed(lambda: total() / len(orders()) if orders() else 0)
Effect(lambda: notify(avg()) if avg() > 100 else None)

orders.update(lambda os: os + [new_order])


Теперь всё обновляется автоматически — вручную ничего делать не нужно.

Когда стоит применять

* Сложные производные значения, зависящие от нескольких источников
* Реальные Cascading-настройки, например, конфиг, кэши, соединения
* Сценарии real-time: дашборды, метрики, воркфлоу

Когда лучше не использовать

* Простые последовательные преобразования
* Одноразовые API-вызовы
* Прямолинейные функции (например, вычисление налога)

Основные преимущества

- Чёткое, декларативное управление зависимостями
- Обновления только нужных значений благодаря ленивому пересчёту
- Упрощение тестирования и устранение ошибок обновления

Реальные примеры

- Управление конфигурацией микросервисов
- Реализация real-time дашбордов
- Мониторинг состояния кластера, триггеры скейлинга

💡 Итог: Signals — отличная альтернатива громоздкому императиву.
Декларируешь связь один раз, и система сама поддерживает согласованность.

Полезно как для backend‑разработчиков, так и для ML‑инженеров.
📚 Материал — ~16 минут чтения, и он того стоит

📌 Читать (https://bui.app/the-missing-manual-for-signals-state-management-for-python-developers/)



@Python_Community_ru
💻 Хочешь работать с масштабными цифровыми продуктами? Учись обрабатывать большие данные

MLOps — все более популярный среди компаний способ повышения производительности и создания надежных моделей корпоративного уровня.

Владение инструментами MLOps открывает новые карьерные горизонты специалистам ML, Data Scientist’ам и Software инженерам.

💪 Ответьте на 10 вопросов и проверьте, насколько вы готовы к обучению на продвинутом курсе «MLOps» от OTUS.

✍️ ПРОЙТИ ТЕСТ: https://clck.ru/3Mgqa8

Нативная интеграция. Информация о продукте www.otus.ru
📊 Deptry — детектор проблем с зависимостями в Python. Этот инструмент сканирует проект на расхождения между импортами в коде и задекларированными зависимостями. Он работает с Poetry, pip и PDM, находя три типа проблем: неиспользуемые пакеты, отсутствующие зависимости и модули, ошибочно помеченные как dev-зависимости.

Инструмент анализирует не только requirements.txt, но и динамические импорты черезависимостями что снижает количество ложных срабатываний. Для настройки можно использовать как CLI-аргументы, так и секцию [tool.deptry] в� Deptry — детекто

🤖 GitHub (https://github.com/fpgmaas/deptry)



@Python_Community_ru
📈 TradingAgents — мультиагентная LLM-платформа для алгоритмической торговли

🎉 TradingAgents официально открыт! После большого интереса со стороны сообщества разработчики решили выложить весь фреймворк в open-source.

🔧 Что такое TradingAgents:
• Это мультиагентная система, имитирующая работу реальной трейдинговой фирмы
• Каждый агент выполняет свою роль — от анализа данных до принятия решений
• Все агенты основаны на LLM-моделях и взаимодействуют между собой

👥 Роли агентов:
• Fundamentals Analyst — анализ финансовых показателей компаний
• Sentiment Analyst — оценка настроений по соцсетям и новостям
• News Analyst — отслеживание глобальных событий и их влияния на рынок
• Technical Analyst — прогноз на основе графиков, индикаторов (MACD, RSI и др.)

⚠️ Важно: проект предназначен для исследовательских целей и не является финансовой рекомендацией. Результаты могут зависеть от модели, данных и параметров генерации.

📦 Возможности:
• CLI и GUI-интерфейс
• Быстрый запуск и кастомизация
• Структура, готовая к масштабированию

🔗 Репозиторий: https://github.com/AI4Finance-Foundation/TradingAgents
#AItrading #LLM #MultiAgent #TradingAgents #fintech #opensource

@Python_Community_ru
✔️ OpenAI выложили в открытый доступ Customer Service Agent Demo

Теперь у всех есть пример, как сделать продакшн-агентов с маршрутизацией, безопасностью и интерфейсом — от запроса до ответа.

Что это такое:

• Многоагентная система для поддержки клиентов (например: бронирование мест, отмена рейса, статус рейса, FAQ)
• Демка написана на Python + Next.js
• Использует OpenAI Agents SDK (https://openai.github.io/openai-agents-python/)
• Встроены guardrails: защита от неуместных запросов и попыток обхода правил
• UI: внутри готовый интерфейс чат-бота

Как работает:

1. Пользователь пишет запрос
2. Система выбирает подходящего агента (например, `SeatBooking`)
3. Агент отвечает или передаёт диалог другому
4. Есть fallback на человека, если нужно

Как запустить:


# Backend
cd python-backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn api:app --reload --port 8000

# Frontend
cd ui
npm install
npm run dev


Далее открываем: http://localhost:3000

Особенности
• MIT-лицензия — можно адаптировать под свои задачи
• Удобно расширять: добавлять новых агентов, инструменты, правила
• Простой код, всё задокументировано
• Рабочий кейс от OpenAI

🔗 GitHub: github.com/openai/openai-cs-agents-demo

Если вы хотите собрать систему из агентов — это отличная точка старта.

@ai_machinelearning_big_data

#chatgpt #openai #aiagents #ai

@Python_Community_ru
🖥 Как написать худший возможный Python-код

Иногда проще показать, как не надо, чем объяснять, как надо.
Вот список «правил», которые помогут вам гарантированно испортить любой Python-проект.

1. 🔒 Используйте непонятные имена переменных
Называйте переменные x, y, a, thing. Абстракция — залог путаницы.


def f(x, y, z=None):
a = x * 2
b = y + a if z else y - a
c = [i for i in range(a) if i % 2]
return sum(c) + b

2.🧠 Пихайте максимум логики в одну строку
Сложные тернарные выражения и вложенные list comprehension — всё в одной строке.


result = [x if x > 0 else (y if y < 0 else z) for x in data if x or y and not z]

3.⚠️ Используйте eval() и exec()
Это медленно, небезопасно и глупо — но зато эффектно.


eval("d['" + key + "']")


4.🔁 Переиспользуйте переменные с разными типами
Пусть одна переменная будет и строкой, и числом, и списком — динамическая типизация же!


value = "42"
value = int(value)
value = [value] * value

5.🌍 Используйте глобальные переменные
Изменяйте состояние приложения откуда угодно. Особенно изнутри функций.


counter = 0

def increment():
global counter
counter += 1

6.🔮 Используйте магические числа и строки
Без пояснений. Пусть коллеги гадают, почему именно 42 или "xyz".


if user.role == "xyz" and user.level > 42:
access_granted()

7.📏 Игнорируйте стиль и отступы
Никаких PEP8, никаких правил. Пиши, как хочешь.


def foo():print("start")
if True:
print("yes")
else:
print("no")

8.🧱 Копируйте код из Stack Overflow, не вникая
Ctrl+C — это тоже разработка.


def complex_logic(x):
return (lambda y: (lambda z: z**2)(y + 1))(x)

9.🧩 Придумывайте абстракции без надобности
Вместо простой функции — классы, фабрики и стратегии.


class HandlerFactory:
def get_handler(self):
class Handler:
def handle(self, x): return x
return Handler()


10. 💤 Добавляйте мёртвый код
Никогда не удаляй — вдруг пригодится. И пусть он грузится в каждый запуск.


def legacy_feature():
print("This feature is deprecated")
return
# нигде не вызывается


11.🔀 Не пишите документацию
Комментарии только мешают. Кто захочет — разберётся.


def a(x): return x+1

12.🧪 Пиши без тестов
Если код работает — зачем его проверять?


# Просто запускай и смотри глазами
process_user(data)


13. 🤖 Не используй AI и автодополнение
Только ручной кодинг, без подсказок. Ошибки — путь мастера.

🧠 Заключение

Все эти советы — примеры того, как не стоит писать код.
Если вы узнали себя — пора остановиться. Ведь Python задуман как язык, где важна читаемость, простота и явность.

"Beautiful is better than ugly.
Explicit is better than implicit.
Readability counts."
— The Zen of Python



@Python_Community_ru
🎨 MonsterUI — стильный UI для FastHTML на Python (от Answer.AI)

MonsterUI — это высокоуровневый слой поверх FastHTML, который позволяет быстро создавать красивые веб-интерфейсы на чистом Python без писанины HTML/CSS.

⚙️ Проблема
FastHTML и так упрощает фронтенд, но стильность UI требует громоздких классов или CSS-фреймворков (Tailwind, Bootstrap).
MonsterUI решает это, предоставляя готовые компоненты и умные настройки по умолчанию.

Главные возможности
• Полюбившиеся Tailwind/FrankenUI/DaisyUI скрылки под капотом
• Удобные базовые компоненты: Button, Card, LabelInput и др.
• Семантический текст и стили (H1, P, Blockquote, etc.), оформленные по умолчанию
• Умные layout-хелперы: DivVStacked, Grid, DivFullySpaced и другие
• «Высокоуровневые» компоненты: навбар, модалка, таблицы — готовые шаблоны
• Автоматический рендер Markdown и подсветка кода
• Темы с выбором цветовой схемы, поддержкой light/dark режимов

🚀 Пример компонента


def TeamCard(name, role, location="Remote"):
icons = ("mail", "linkedin", "github")
return Card(
DivLAligned(
DiceBearAvatar(name, h=24, w=24),
Div(H3(name), P(role))),
footer=DivFullySpaced(
DivHStacked(UkIcon("map-pin", height=16), P(location)),
DivHStacked(*(UkIconLink(icon, height=16) for icon in icons))))


Всё чисто, семантично, без CSS-уродства и классов.

🔧 Старт


pip install MonsterUI



from fasthtml.common import *
from monsterui.all import *

app, rt = fast_app(hdrs=Theme.blue.headers())

@rt
def index():
return Card(H1("Hello MonsterUI"), P("Приложение готово!"))

serve()


Преимущества:
• Быстрый старт с современным UI
• Чистый, читаемый Python-код
• Гибкость в кастомизации через Tailwind
• Подтверждённая пригодность в продакшене

🔗 Подробнее:



#Python #WebDev #FastHTML #MonsterUI #Tailwind #HTMX #UI #OpenSource

@Python_Community_ru

https://www.answer.ai/posts/2025/01/15/monsterui.html
2025/06/24 19:11:38
Back to Top
HTML Embed Code: