Библиотека питониста | Python, Django, Flask
40.2K subscribers
2.84K photos
79 videos
51 files
4.43K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🐍 Как ускорить Python в больших проектах: lazy imports в действии

Когда весь код живёт в одном монорепозитории и модули доступны отовсюду, количество импортов быстро превращается в тысячи.

Что начинает происходить со временем:
— скрипты стартуют по 30–40 секунд
— Jupyter-ноутбуки грузятся 10–15 минут
— распределённые jobs тратят больше времени на import, чем на сами вычисления

💡 Решение → Lazy imports
Модуль не загружается при import’е, а подменяется объектом LazyImport.

Настоящий импорт происходит только тогда, когда имя реально используется в коде:
from foo import bar

# globals() now contains {"bar": LazyImport("foo", "bar")}.
# the foo module has not yet been resolved or evaluated

qux = bar()

# in the evaluation of the above statement, bar is retrieved
# from the globals() dict, causing foo to be imported and bar
# to be reassigned to foo.bar


Что это даёт:
👌 мгновенный старт CLI-утилит
👌 быстрый запуск Jupyter даже с «тяжёлыми» внутренними библиотеками
👌 распределённые задачи не тратят время на лишние зависимости

→ Это не библиотека — это патч интерпретатора (форк CPython), но эффект огромный.

🔗 Полная статья (советуем сохранить)

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3
Гайд: где хостить Python-приложение

Вы написали веб-приложение на Django, Flask или FastAPI, но оно так и лежит на GitHub? Без продакшена код — это просто хобби.

Вот где Python-разработчики чаще всего размещают свои проекты:
Heroku — классика, простой деплой, но дорого для серьёзных нагрузок.
Fly.io — современная альтернатива Heroku, хорош для быстрых запусков.
AWS ECS / Fargate — контейнеры, масштабируемость, но сложнее в настройке.
DigitalOcean App Platform — баланс простоты и цены.
Render — минимализм и понятный UX.
Vercel / Netlify — больше про фронтенд, но FastAPI можно прикрутить.

В гайде сравниваются:
— Developer Experience
— Масштабируемость
— Производительность
— Стоимость

👉 Гайд для тех, кто выбирает, где запускать своё Python-приложение в 2025.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3
✍️ Михаил Шуфутинский печатает
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38🌚175🎉4👾21
🌀 Что такое прыжок веры и зачем он нужен

Когда мы пишем рекурсивные функции, нас учат делать «прыжок веры» — доверять, что вызов функции с меньшим аргументом сработает правильно.

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

Пример — факториал:
def factorial(n):
if n == 0:
return 1
# leap of faith: верим, что factorial(n-1) работает правильно
return n * factorial(n - 1)

print(factorial(5)) # 120


Здесь мы не проверяем вручную все вызовы factorial(n-1). Мы просто верим, что они дадут верный результат, и используем его.

Пять правил для «прыжка веры»:
1️⃣ Определите типы параметров и возвращаемого значения.
2️⃣ Сначала реализуйте базовый случай.
3️⃣ Сделайте «прыжок веры» — предположите, что рекурсивный вызов магически возвращает правильный результат, и напишите рекурсивный случай.
4️⃣ Ограничение 1: аргумент рекурсивного вызова не может быть исходным аргументом.
5️⃣ Ограничение 2: аргумент рекурсивного вызова всегда должен приближаться к базовому случаю.

Следуя этим правилам, рекурсия становится инструментом, которому можно доверять, а не головоломкой.

🔗 Полная статья о том, как писать рекурсивные функции эффективно.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥652👍1
Переворачиваем календарь — а там скидки, которые уже закончились.

Но мы их вернули на последний день 🤔

До 00:00 третьего сентября (цены как до 1 сентября):

▪️ Математика для Data Science — 35.199 ₽ вместо 44.900 ₽
▪️ Алгоритмы и структуры данных — 31.669 ₽ вместо 39.900 ₽
▪️ Основы IT — 14.994 ₽ вместо 19.900 ₽
▪️ Архитектуры и шаблоны — 24.890 ₽ вместо 32.900 ₽
▪️ Python — 24.990 ₽ вместо 32.900 ₽
▪️ ML для Data Science — 34.000 ₽ вместо 44. 000 ₽
▪️ AI-агенты — 49.000 ₽ вместо 59.000 ₽

👉 Хватаем скидки из прошлого

P.S. Машину времени одолжили у дяди Миши
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
⚒️ Cement Framework: мощная основа для Python CLI-приложений

Cement — это фреймворк для создания CLI-приложений на Python:
подходит как для простых скриптов, так и для сложных многоуровневых систем.
можно использовать как микро-фреймворк или как основу для масштабных проектов.

Установка:
pip install cement
# или с CLI-расширениями
pip install cement[cli]


Ключевые возможности:
— Система handlers & interfaces для гибкой кастомизации
— Поддержка конфигов из нескольких файлов
— Парсер аргументов + слияние с конфигом
— Поддержка плагинов и расширений
— Логирование (консоль + файлы)
— Кэширование для ускорения
— Zero external deps (кроме опциональных)

⚡️ Cement = быстрый старт + масштабируемость + стабильность.

Подходит и для дата-инженеров, и для Python-разработчиков, которым нужны надёжные CLI-инструменты.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
🔥 Python Namespace Packages: боль разработчика

В Python есть странный зверь — namespace packages. По идее, они решают проблему разделения одного пакета на несколько директорий. На практике же это сплошная путаница и боль.

Почему так:
🚩 У нас есть два способа делать одно и то же: explicit (через __init__.py + костыли) и implicit (PEP 420, без __init__.py).
🚩 Zen of Python говорит: “There should be one– and preferably only one –obvious way to do it”, но тут явно нарушено.
🚩 Новички легко создают случайные namespace пакеты, просто забыв __init__.py.
🚩 Явные пакеты оказываются несовместимыми между собой, implicit — хрупкие и медленные.

⚡️ Сценарий:
Представьте, вы в условном Gooble и хотите, чтобы все пакеты начинались с gooble.*.

Красиво, пока кто-то не решит, что gooble/__init__.py не нужен. Или наоборот, случайно добавит его. И всё — сломалось.


Вывод (и личный совет):
Всегда кладите __init__.py в каждую директорию.
Избегайте осознанных namespace packages — они слишком ненадёжные.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
😎 Сколько баллов набрали вы?

Голосуйте, какой у вас уровень разработчика:

😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)

Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.

👉 Научим, как быстро прокачаться от стажера до сеньора
🤩9👍21🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Pythonу уже 10 лет с async — почему он до сих пор не массовый

В 2015 году в Python 3.5 появились ключевые слова async/await. Казалось, что это станет новой эрой для конкурентного кода в Python. Сегодня — почти Python 3.14, десятилетие спустя. Но асинхронность так и не стала «дефолтом». Почему?

Основные наблюдения:
🔛 Async идеально подходит для веб-разработки: запросы к БД, HTTP-запросы, сетевые операции.
🔛 FastAPI с самого начала строился на async, Django всё ещё «догоняет», а Flask остаётся синхронным (у него есть async-альтернатива — Quart).
🔛 Главный ORM — SQLAlchemy — добавил поддержку asyncio только в 2023 году.

В Python 3.14 нас ждут две революции:
🔛 PEP 779 — Free-Threading (многопоточность без GIL),
🔛 PEP 734 — Multiple Interpreters в стандартной библиотеке.

Вопрос: сделают ли они многопоточность и параллелизм по-настоящему популярными в Python — или через 10 лет мы будем обсуждать те же проблемы?

👉 Подробная статья по теме

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
📊 Matplotlib шпаргалка для начинающих

Если только начинаете работать с визуализациями в Python — этот шпаргалка по Matplotlib станет отличной отправной точкой:
основные функции для построения графиков,
настройка осей, подписей и легенд,
стили и оформление.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)


⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников


📎 Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес