Библиотека питониста | Python, Django, Flask
40.7K subscribers
2.74K photos
75 videos
51 files
4.31K links
Все самое полезное для питониста в одном канале.

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🧨 Если бы вы могли навсегда удалить ОДНУ вещь из Python…

Один подписчик признался:
«Удалил бы self. Ну серьёзно — Python придумал классы, но заставляет каждый раз напоминать об этом вручную.»


И тут мы задумались... А какие фичи Python вы бы с радостью вычеркнули навсегда?

Вот топ кандидатур на удаление:
self в методах
lambda, которая ничего не объясняет
is vs == (и бесконечные грабли с ними)
GIL, тормозящий многопоточность
typing, который пугает начинающих
async / await, который «ещё чуть-чуть и заработает»
и, конечно, магические __dunder__-методы

🗯 А вы что выберете?
Пишите в комментариях, какую фичу вы бы убрали без сожалений.
Давайте соберём рейтинг самых раздражающих особенностей Python.

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁131👏1
🎂 Django празднует 20 лет — вспоминаем историю

Первый коммит в публичный репозиторий Django состоялся 15 июля 2005 года. Сегодня, 15 июля 2025-го, отмечаем этот важный юбилей!

13 июля 2005 года Джейкоб Каплан-Мосс сделал первый коммит в публичный репозиторий, который позже стал Django. С тех пор прошло 20 лет и более 400 релизов. Сегодня отмечаем круглую дату любимого веб-фреймворка.

К юбилею опубликован доклад Django Origins, впервые показанный 10 лет назад на праздновании десятилетия Django в Лоренсе, Канзас. В нём — история создания фреймворка, ранние идеи и проекты, построенные на нём, а также немного цифровой археологии.

😊Видео: https://clc.to/7IiOaA
⬇️Делимся с вами также чит-шитом по Django: https://clc.to/W0lNxw

💬 А вы помните свой первый проект на Django?
❤️ В честь 20-летия Django ставь лайк — поддержим легенду вместе.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
27🎉2👍1😢1
🤖 Знаете, чем настоящий AI отличается от чат-бота?

Чат-бот просит перезагрузить роутер, а настоящий AI уже умеет читать ваши эмоции в чате, включать музыку под ваше настроение, контролировать погрузку руды с точностью Терминатора и даже находить на КТ-снимках то, чего не заметит человеческий глаз.

Современные компании для таких задач всё чаще используют Deep Learning — алгоритмы на основе нейросетей. Но чтобы попасть в эту лигу, нужен фундамент. И имя ему — Machine Learning.

Наш новый курс по ML — это не волшебная таблетка. Это честный и структурированный путь в мир Data Science. Мы дадим вам базу, с которой вы:

разберётесь, как мыслят машины (спойлер: матрицами!);

научитесь строить работающие модели, а не карточные домики;

получите трамплин для прыжка в Deep Learning.

Хватит смотреть, как другие запускают ракеты. Пора строить свой собственный космодром.

Начните с фундамента на нашем курсе по Machine Learning!
👍62
📱 330× быстрее: четыре способа ускорить Python-код

Если ваш Python-код медленный, а нужен быстрый — есть много стратегий ускорения: от распараллеливания до компилируемых расширений. Но если использовать только один подход, легко упустить серьёзный потенциал.

Вместо этого полезно думать в терминах практик — каждая из которых:
— Ускоряет код по-своему;
— Требует отдельных навыков;
— Работает как по отдельности, так и в сочетании.

В статье показан реальный пример, где применяются четыре практики:
Efficiency — устранение лишних и повторяющихся вычислений (+2×).
Compilation — использование компилируемого языка и обход его ограничений (+10×).
Parallelism — задействование нескольких ядер.
Process — рабочие процессы, приводящие к более быстрому коду.

📖 Читаем подробно: https://clc.to/N-dyGA

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍1👏1
🔥 Cython и PyPy — реальное спасение производительности Python или маркетинговый хайп

Python часто критикуют за скорость — интерпретатор и глобальная блокировка (GIL) создают узкие места, особенно в вычислительно тяжёлых задачах.

Чтобы решить эти проблемы, появились инструменты:

Cython — позволяет писать части кода на языке, близком к C, компилируется в расширения для Python.
➡️ Может дать значительный прирост скорости, особенно для циклов и численных вычислений. Но требует переписывания части кода и понимания низкоуровневых деталей.

PyPy — альтернативная реализация Python с JIT-компиляцией, которая на лету ускоряет выполнение кода без изменений в исходниках.
➡️ Работает отлично для чистого Python-кода, но может иметь проблемы с совместимостью сторонних C-расширений.

Вопрос в воздухе: действительно ли Cython и PyPy — универсальное решение для ускорения Python, или это просто хайп для узких и редких кейсов?

💬 Многие скажут: зачем заморачиваться с этими костылями, если проще переписать узкие места на нативных библиотеках или просто масштабировать. А переход на Cython или PyPy — это лишь добавление головной боли и сложности поддержки.

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.

В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️

А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.

👉 Записывайтесь на курс
4👏2😁1
📱 Свежие релизы Python‑пакетов за последние 7 дней

PyPy теперь ещё стабильнее: вышел релиз 7.3.20
Django празднует 20 лет — вспоминаем историю
PEP 734 – Multiple Interpreters in the Stdlib —добавляет поддержку множественных интерпретаторов прямо в стандартную библиотеку.
PEP 792 – Project Status Markers in the Simple Index — позволяет PyPI и другим индексам помечать статус проекта.

📦 Новые и обновлённые Python-библиотеки
uv 0.8.0 — молниеносный менеджер пакетов и проектов для Python, написан на Rust
TorchAO 0.12.0 — применение accuracy-oriented оптимизаций к PyTorch-моделям
Firebase Admin SDK 7.0.0 — управляйте Firebase прямо из Python
coredis 5.0.0 — асинхронный Redis-клиент на Python с высокой производительностью
Streamlit 1.47.0 — быстрый способ создать data apps прямо в Jupyter-стиле
dag-factory 0.23.0 — генерация DAGов Airflow на лету из YAML
kedro-datasets 8.0.0 — коннекторы для чтения/записи данных в Kedro
cyclonedx-python 7.0.0 — генерация SBOM (Software Bill of Materials) для Python
textual 4.0.0 — современные TUI-приложения (интерфейс в терминале, но красиво)
opentelemetry-python 1.35.0 — набор API и SDK для телеметрии в Python

🔥 Опыт других
CPython — бессмертные Immortal объекты
Анатомия тестового проекта на Python: раскладываем всё по полочкам для новичков
Bash vs Python: битва, где нет проигравших
PEP-734: Субинтерпретаторы в Python 3.14
Запускаем несколько интерпретаторов в коде на Python — невероятная скорость
Почему Python стал языком нейросетей и как это работает на практике

Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4👍3
😱 Неожиданные фишки Python, которые точно удивят

Python — удобный и мощный язык, но иногда даже простые кусочки кода работают не так, как ожидаешь. В этом проекте опытные питонисты собрали такие примеры, чтобы помочь понять, что происходит «под капотом».

Если вы опытный программист — попробуйте угадать результат с первого раза! Если нет — отличный шанс узнать что-то новое и взглянуть на Python по-новому.

Начнем с самого простого:
a = "wtf"
b = "wtf"
print(a is b) # Что выведет?

a = "wtf!"
b = "wtf!"
print(a is b) # А здесь?


👉 Ссылка на код: https://clc.to/iJUyPg

Библиотека питониста #свежак
7👍5🔥2🤔2
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.

С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.

-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)

Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.

📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
👍1
💼 Топ-вакансий для питонистов за неделю

Middle+/Senior NLP/LLM Engineer —‍ от 4000 до 4500 $, гибрид (Москва)

Python developer —‍ до 280 000 ₽, гибрид (Москва)

Junior Python Developer —‍ от 70 000 до 110 000 ₽, удалёнка

Software Developer Python —‍ от 80 000 до 250 000 ₽, удалёнка

Senior Python AQA Engineer —‍ от 3 000 $, удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Python jobs

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👾21👍1🌚1
➡️ Как правильно логировать необработанные исключения в Python

При разработке приложений на Python часто используют print для отладки и вывода сообщений. Но в реальных проектах (особенно в продакшене) так делать нельзя — вместо этого используют модуль logging, который позволяет писать структурированные логи в файлы или системы агрегации логов.

🤔 Но есть «подводный камень».

Рассмотрим простой пример: у нас есть функция, которая делит два числа. Если происходит деление на ноль — приложение падает с ошибкой ZeroDivisionError:
import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

handler = logging.FileHandler("app.log")
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)

def divide(a, b):
return a / b

def main():
logger.info("Application start")
a = 10
b = 0
logger.info(divide(a, b))
logger.info("Application end")

if __name__ == "__main__":
main()


При запуске мы видим ошибку в консоли, но в логе — только сообщение о старте приложения:
2025-07-14 22:20:04,551 __main__ INFO Application start


Если приложение работает локально — это не страшно, мы видим трассировку ошибки в консоли.

🟠Но что если это продакшен-сервис, который отправляет логи в централизованную систему, а разработчики не имеют доступа к консоли? Тогда при падении приложения мы не увидим, что произошло — логи просто обрываются.

🔰 Решение — sys.excepthook

В Python есть специальный механизм — функция sys.excepthook, которая вызывается при необработанных исключениях. Можно переопределить её, чтобы логировать полную информацию об ошибке, включая стек вызовов.

Добавим в код обработчик:
import logging
import sys

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

handler = logging.FileHandler("app.log")
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)

def handle_uncaught_exception(exc_type, exc_value, exc_traceback):
logger.critical(
"Uncaught exception, application will terminate.",
exc_info=(exc_type, exc_value, exc_traceback),
)

sys.excepthook = handle_uncaught_exception

def divide(a, b):
return a / b

def main():
logger.info("Application start")
a = 10
b = 0
logger.info(divide(a, b))
logger.info("Application end")

if __name__ == "__main__":
main()


Теперь, при возникновении исключения ZeroDivisionError, в app.log запишется подробный лог с трассировкой ошибки:
2025-07-14 22:30:44,061 __main__ INFO Application start
2025-07-14 22:30:44,061 __main__ CRITICAL Uncaught exception, application will terminate.
Traceback (most recent call last):
File "/home/andy/main.py", line 31, in <module>
main()
File "/home/andy/main.py", line 27, in main
logger.info(divide(a, b))
File "/home/andy/main.py", line 21, in divide
return a / b
ZeroDivisionError: division by zero


🟠Почему не просто обернуть всё в try-except:
— Оборачивать весь код в глобальный try-except — плохая практика. Это может скрыть настоящие ошибки и усложнить отладку.
sys.excepthook работает централизованно и не мешает локальной обработке ошибок там, где это нужно.
— Этот способ ловит именно непредвиденные ошибки, которые не были перехвачены в коде.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍43
Как прокачаться до Python Middle+/Senior разработчика и получить новую работу в 2025?

Ребята из Interview Hustlers в четверг проводят воркшоп о том, как junior и middle-разработчикам быстрее вырасти до уровня крепкого Senior, овладеть hard skills, востребованными в продуктовых компаниях и BigTech, и получить новую работу на сложном рынке в 2025 году, где AI уже наступает на пятки.

🗓 24 июля 19:00 по МСК

Программа:
▪️ Какие hard skills качать, чтобы устроиться на Middle+/Senior разработчика в BigTech?
▪️ Как эффективно собеседоваться на тяжелом рынке летом 2025? Как выбивать максимальные офферы в РФ и заграницей?
▪️ Как вырасти технически на текущем месте работы и получить повышение в компании?

Спикеры:
▪️Максим Аверин — Senior Python Dev, основатель школы Interview Hustlers, 8 лет опыта
▪️Сергей Соловьев — Python Tech Lead в Кипрском финтехе, 10+ лет опыта

Регистрируйся на бесплатный воркшоп по ссылке.

📎 После регистрации на воркшоп ты получишь 2 бонуса: «Как разобрать неудачное собеседование без фидбека за 3 шага с AI?» и видео-урок «System Design интервью: Как спроектировать highload-маркетплейс с 0?»
👍43👏1