Python Community
12.9K subscribers
1.25K photos
38 videos
15 files
737 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
📦 Гайд: “The Step-by-Step Guide to Python Packaging Tools 2025”

Python-инфраструктура сильно изменилась.

Выбор между pip, poetry, uv, hatch, pdm и др. — это уже не просто "pip install", а стратегическое решение.

В этом гайде сравниваются 6 ключевых инструментов, каждый со своими сильными и слабыми сторонами:

1️⃣ uv — самый быстрый и универсальный (написан на Rust)
До 100× быстрее pip
Объединяет pip, virtualenv и pip-tools
Поддержка PyPI-паблишинга и Python-менеджмента
📌 Выбор для CI/CD и monorepo-проектов

2️⃣ Poetry 2 — стандарт для библиотек и модульных приложений
Поддержка semantic versioning, lock-файлов, плагинов
Отлично подходит для open source
📌 Идеален для reproducible builds и PyPI

3️⃣ Hatch — “Cargo для Python”
Поддержка матриц окружений, monorepo, хуков
Интеграция с uv для скорости
📌 Выбор для сложных enterprise-проектов и тестовых фреймворков

4️⃣ PDM — стандартизированный менеджер без virtualenv
Поддержка PEP 582 (__pypackages__), PEP 621
Изоляция без виртуалок, удобен для прототипов
📌 Подходит для rapid dev и экспериментальных сборок

5️⃣ Pipenv — простой интерфейс для приложений
Pipfile, auto-venv, чистый CLI
📌 Хорош для небольших проектов и начинающих

6️⃣ pip — классика
Совместим везде, гибкий
Нет lock-файлов, окружений, требует внешних тулов
📌 Решение для легаси-проектов или скриптов

💡 Выводы:

• uv — лучший выбор для скорости, CI и автоматизации
• Poetry — стандарт для библиотек, особенно с open source
• Hatch — для сложных проектов и продвинутых пайплайнов
• PDM — для быстрой разработки и современных стандартов
• Pipenv — простой, но морально устарел
• pip — базовый минимум, но требует ручной сборки обвязки

Если ты:
🔹 Собираешь ML‑пайплайн → смотри в сторону uv + Hatch
🔹 Работаешь над библиотекой → Poetry 2 будет логичным выбором
🔹 Строишь монорепу или сложный фреймворк → Hatch + workspace
🔹 Пишешь простые скрипты или MVP → подойдёт PDM или Pipenv

🔗 Полный гайд (https://www.datumlabs.io/resources/the-step-by-step-guide-to-python-packaging-tools-2025)



@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🧹 ObjectClear — инструмент для удаления объектов с изображений с помощью ИИ

Что умеет:
🖼 Загружаешь изображение
🎯 Выделяешь объект, который хочешь убрать
Модель автоматически удаляет его и восстанавливает фон

Под капотом:
— Segment Anything (SAM) от Meta для выделения объекта
— Inpaint-Anything для генерации фона
— Поддержка работы в браузере (Gradio UI)

Можно запускать локально. Всё open-source.

📎 GitHub: https://github.com/zjx0101/ObjectClear



@Python_Community_ru
🔥 Нашёл 100% open-source AI-агента для задач в разработке ПО!

ByteDance выпустили Trae Agent — LLM-агент для автоматизации задач в области программной инженерии.

Планирование и использование инструментов из коробки
Умеет рефакторить, дебажить, разбираться в коде
Полностью автономный
Абсолютно открытый код

Отличная база, если вы строите что-то с AI.

git clone https://github.com/bytedance/trae-agent.git
cd trae-agent
uv venv
uv sync --all-extras

https://github.com/bytedance/trae-agent



@Python_Community_ru
🖥 Контекстный перехват stdout — как легко отключить или сохранить print

💡 Хотите, чтобы print() не мешал логике и при этом легко отключался или сохранялся в файл?

Вместо того чтобы комментировать все print() в проде, подмените стандартный вывод через контекстный менеджер — и легко направляйте вывод в файл, /dev/null или даже буфер для последующей обработки.

Это особенно полезно при отладке в прод-среде или при генерации логов без сторонних библиотек.


import sys
from contextlib import contextmanager
from io import StringIO
import os

@contextmanager
def capture_stdout(to_file=None, suppress=False):
original_stdout = sys.stdout
try:
if suppress:
sys.stdout = open(os.devnull, 'w')
elif to_file:
sys.stdout = open(to_file, 'w')
else:
buffer = StringIO()
sys.stdout = buffer
yield sys.stdout
finally:
sys.stdout.close() if sys.stdout not in (original_stdout, sys.__stdout__) else None
sys.stdout = original_stdout

# Пример использования:
with capture_stdout(suppress=True):
print("Этого вы не увидите")

with capture_stdout(to_file="output.log"):
print("А это уйдёт в файл")

with capture_stdout() as captured:
print("Это записано во внутренний буфер")

print("Буфер содержит:", captured.getvalue().strip())




@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 BrowserOS — операционная система внутри браузера на базе AI

BrowserOS — это экспериментальный проект, превращающий браузер в полноценную AI‑среду с "живущими" агентами. По сути, это OS-слой внутри вкладки браузера, где ИИ-агенты могут взаимодействовать с интерфейсами как пользователи.

🧠 Основные идеи:
— Агент может кликать, печатать, читать и взаимодействовать с окнами внутри браузера
— Поддержка многозадачности: можно открыть несколько окон, как в реальной ОС
— Простое API для создания интерфейсов и запуска ИИ-агентов
— Можно подключать LLM и наделять их возможностью выполнять действия

📦 Особенности:
— UI построен на React
— Использует WebAssembly и Web Workers
— Позволяет тестировать и запускать агента в контролируемой "песочнице"

💡 Подходит для:
— Исследований в области AI-агентов
— Прототипирования мультимодальных систем
— Демонстрации взаимодействия LLM с интерфейсами

🔗 GitHub (https://github.com/browseros-ai/BrowserOS)



@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Хочешь узнать, какие библиотеки в твоём Python‑проекте реально используются?

Многие проекты тянут за собой ненужные зависимости, особенно после десятков итераций.

С помощью vulture ты можешь найти неиспользуемый код и импорты — и легко вычистить проект от мусора.



Установка vulture
pip install vulture

Поиск неиспользуемого кода и импортов
vulture your_project/ > unused.txt

Пример: посмотреть, что не используется
cat unused.txt




@Python_Community_ru
🔥1