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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🖥 Полезный, но редко используемый приём: динамическое управление множеством контекст-менеджеров через `contextlib.ExitStack`

Если вам нужно открыть *N* файлов, захватить *M* блокировок или временно изменить кучу настроек, а их количество известно только во время выполнения, традиционный with … as …: не подойдёт. Вместо «пирамиды» вложенных with воспользуйтесь ExitStack:


from contextlib import ExitStack

filenames = ["a.log", "b.log", "c.log"]

with ExitStack() as stack:
files = [stack.enter_context(open(name)) for name in filenames]

# теперь у вас список открытых файлов, с которыми можно работать
for f in files:
print(f.readline())
# здесь ExitStack автоматически закроет все файлы, даже если их было 1000


Почему это круто

- Управляет произвольным числом контекстов: добавляете их в цикл, условно, через функции-фабрики.
- Гарантирует корректный rollback при исключениях: всё, что добавлено в ExitStack, будет закрыто в обратном порядке.
- Упрощает сложную инициализацию: можно динамически «подключать» то, что нужно именно сейчас (файлы, блокировки, сетевые соединения).

🔧 Где пригодится

- Пакетная обработка файлов и архивов.
- Тестовые стенды с кучей временных ресурсов.
- Плагины, которые могут регистрировать собственные контекст-менеджеры.

Теперь никакого «каскада из with» — один аккуратный ExitStack.



@Python_Community_ru
📊 Python for Nonprofits — книга и код для анализа данных в НКО

Это полноценное учебное пособие по Python, заточенное под нужды некоммерческих организаций.

Автор — Kenneth Burchfiel — собрал в одном репозитории и книгу, и рабочие блокноты для реального анализа данных.

Импорт и очистка данных (CSV, API, Google Sheets)
Описательная статистика, линейные регрессии
Визуализация: графики, интерактивные карты (Plotly, Folium)
Dash-приложения и публикация дашбордов
Всё оформлено как Jupyter-книга: можно читать, запускать, менять

Кому подойдёт:
– начинающим дата-аналитикам, которые хотят делать полезные проекты
– НКО, работающим с открытыми данными и отчётами
– преподавателям, ищущим учебный курс по Python с практикой

💡 Можно читать онлайн или скачать как книгу. Лицензия MIT — можно использовать где угодно.

📘 Подробнее и исходники: https://github.com/kburchfiel/pfn



@Python_Community_ru
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 Вышел новый генератор CAD‑моделей по чертежам — и он реально работает!

GenCAD умеет превращать чертежи в 3D‑модели и сразу генерирует параметрический CAD‑код. Для сложных и детализированных объектов он пока не подойдет, но с простыми деталями вроде винтиков и креплений справляется отлично.

📎 Идеально для быстрого прототипирования стандартных элементов.

📄 Paper: https://openreview.net/pdf?id=e817c1wEZ6
🔗 Website: https://gencad.github.io
💻 Code: https://github.com/ferdous-alam/GenCAD



@Python_Community_ru