Zen of Python
20.2K subscribers
1.2K photos
161 videos
32 files
3.14K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
​​bandit | Насколько защищен ваш проект?

Инструмент найдет «секурные прорехи» в вашем проекте, включая запушенные ключи / токены и небезопасные участки кода. Внезапно проект OpenStack — опенсорсной облачной инициативы NASA.

Репозиторий проекта
#инструмент
@zen_of_python
👍4
​​mutmut | Мутационные тесты

Mutation Testing — это метод, при котором в ваш исходный код вносятся небольшие изменения (мутации), и затем запускаются ваши тесты.
Цель: проверить, насколько эффективно тесты обнаруживают ошибки.

Утилита вносит мутации в ваш код (на уровне исходников), запускает ваши юнит-тесты после каждой мутации. Затем помечает мутации:
Killed (тест поймал баг);
Survived (мутация выжила).

Такое особенно важно, если вы работаете в сфере безопасности, финансов.

Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
32🗿1
​​Разжигаем огонь... вашей страсти к Python

Проект Kindling Projects предлагает начинающим программистам идеи для небольших проектов на Python, которые достаточно просты для освоения, но при этом позволяют развивать навыки и проявлять креативность.

Сотни несложных утилит, игр, классических кодерских задач, клонов популярных сервисов и проч.

#инструмент
@zen_of_python
1
​​PEP 734: Параллелизм без multiprocessing

Запланировано добавление нового стандартного модуля concurrent.interpreters. Он будет управлять несколькими изолированными подинтерпретаторами внутри одного процесса.

Каждый подинтерпретатор имеет свой собственный GIL, то есть код может действительно выполняться параллельно (в отличие от обычных потоков). Нет накладных расходов на создание отдельных процессов и межпроцессное взаимодействие.

Уже сейчас доступен в виде пакета на PyPI: interpreters-pep-734, который можно использовать с Python 3.12+.

#инструмент
@zen_of_python
🙉 — Если лучше не видеть, как это работает
5😍3🙈2
​​great-tables | Make Tables Great Again

Создатель этого репозитория напоминает нам, что у грамотной HTML-таблицы, помимо тела, есть еще (под)заголовок, футер и объединенные ячейки. Забытые возможности <table>...

Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
3🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
flowshow | отслеживайте задачи с графами

Предоставляет декоратор @task, который превращает обычную функцию в «таску» с автоматическим сбором метаданных.

Обеспечивает удобный визуальный интерфейс: после запуска main_job() можно вызвать main_job.plot() или main_job.last_run.render(), чтобы увидеть граф выполнения задач, время начала и окончания, входы и выходы, ошибки, логи и количества повторных запусков.

Жизнь в условиях проектов с асинхронностью в том числе станет чуточку легче.

На PyPi
#инструмент
@zen_of_python
51
pyrefly | Ну очень быстрый тайпчекер

В Meta (организация признана экстремистской в РФ) релизнули инструмент для проверки типов данных на базе Rust.

Он аналогичен mypy, но сделано с упором на производительность. Это быстрая альтернатива для больших кодовых баз.

Взгляните на простой пример:


def greet(name: str) -> str:
return "Hello, " + name

def add(a: int, b: int) -> int:
return a + b

result = add(1, "2") # Ошибка: "2" — это str, а не int
print(result)


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

Для VS Code или других редакторов можно настроить команду форматирования или использовать pyrefly как pre-commit-хук.

В кой-то век на бенчмарк-графике признались, что не самые первые.

На PyPi
#инструмент
@zen_of_python
4🐳1
​​py-pglite | PostgreSQL прямо через import

Инструмент для тестов с настоящим PostgreSQL без необходимости поднимать сервер. Он запускается за пару секунд прямо из Python-кода, без Docker и лишней настройки. Полностью совместим с SQLAlchemy, Django ORM, psycopg, asyncpg и поддерживает расширения вроде pgvector.

Цена: бесплатно
На PyPi
#инструмент
@zen_of_python
👍2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
crudadmin | Минималистичная админка для FastAPI

Симпатичный минималистичный GUI для самописных API. Поддерживает различные бэкенды для сессий (Redis, Memcached и БД). Встроенные механизмы защиты включают фильтрацию IP, защиту от DDoS-атак и подробный журнал событий.

Консоль доступна по адресу /admin в тёмной и светлой темах.

Цена: бесплатно
Репозиторий проекта
#инструмент
72
Streamlit v.1.46.0

Вышло массивное обновление BI-тула , и там теперь среди прочих:
— меню навигации можно разместить в верхней части приложения с помощью st.navigation(position="top");
— поддерживается темная тема через st.context.theme;
— большинство виджетов и элементов теперь поддерживают параметр ширины width;
— добавлена настройка CORS для разрешённых источников;
— в сообщениях об ошибках появился удобная копипаст-кнопка;
— теперь можно запускать сервер Streamlit на порту 3000 без дополнительных настроек;
— добавлена поддержка форматов номеров для колонок с числами и прогресс-баров.

Release Note
#инструмент
@zen_of_python
🫡 — Если отдаю честь за такую работу
🫡32
​​PySnooper | Дебаггинг по-человечески

Опять кто-то пытается отучить нас использовать print() во время дебага... Автор тула предлагает использовать:
— декораторы @pysnooper.snoop();
— блоки with pysnooper.snoop();

Чтобы в итоге получить такую отладочную информацию, как на приложенном скриншоте. Вот что происходит на нем слева:
— вызывается функция number_to_bits с аргументом number = 6;
— в строках кода функции (справа) видно, что она предназначена для перевода числа в двоичный формат, сохраняя биты в списке bits;
— PySnooper пошагово логирует каждую выполненную строку (слева), время выполнения, а также все изменяющиеся переменные;
— переменная number последовательно изменяется от 6 до 3, потом до 1, затем до 0
— каждый раз происходит деление с остатком (divmod(number, 2)), а остаток (remainder) вставляется в начало списка bits;
— В итоге возвращается список битов [1, 1, 0], что соответствует двоичному представлению числа 6.

Репозиторий проекта
#инструмент
@zen_of_python
5👍4
​​Vitess | Шардирование для вашей PostgreSQL

Это слой между приложением и базой данных, созданный выходцами из YouTube для защиты от неэффективных запросов и масштабируемости под экстремальными нагрузками. Он также анализирует SQL-запросы на лету, отсекая потенциально опасные. Vitess — система шардирования, основа для Multigrass — проекта по адаптации для PostgreSQL внутри Supabase. Vitess стал частью их инфраструктуры, чтобы приложения могли расти до миллиардов запросов, оставаясь при этом "просто PostgreSQL".

Сайт проекта
#инструмент
@zen_of_python
😴2👏1
​​lxml обновился

Небезызвестный тул для парсинга XML / HTML в Python-коде получил мажорное обновление, и в нем:
— обновили зависимости;
— отказались от Python 2;
— повысили стабильность и безопасность;

Release Note
#инструмент
@zen_of_python
🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
dripdrop | Стриминг JSON

Экспериментальный инструмент, который позволяет стримить данные в ваших API. Он возвращает клиенту JSON-скелет с плейсхолдерами вместо данных и постепенно заполняет его по мере готовности асинхронных результатов. DripDrop реализует концепцию прогрессивного JSON, вдохновленную React Server Components, чтобы ваши интерфейсы могли отображать данные без ожидания самых медленных запросов (Skeleton Loader). Быстрые части ответа отправляются сразу, а медленные догружаются потоками через JSON Lines.

Репозиторий проекта
#инструмент
@zen_of_python
💘 — Если нравится Skeleton Loader
4💘4
​​curlify | Из requests в cURL

Инструмент для преобразования запросов из requests в эквивалентные «курлы». Он автоматически добавляет все необходимые флаги, включая -X, -H, -d, --compressed и другие, чтобы команда точно отражала параметры исходного запроса. Благодаря опции pretty=True можно получить красиво отформатированную, многострочную cURL-команду, удобную для чтения и вставки в консоль. Библиотека заботится о безопасности и корректности, надежно экранируя кавычки и специальные символы для совместимости с командной строкой.

Репозиторий проекта
#инструмент
@zen_of_python
👍4
throttled-py | Ограничение частоты запросов

Если вам нужно защищиться от DDoS-атак, контролировать затраты и в целом оптимизировать производительность, эта библиотека поддерживает популярные алгоритмы: Fixed / Sliding Window, Token Bucket и проч. Она подходит для как синхронных, так и асинхронных приложений. Для хранения состояния лимитов можно использовать как быстрый In-Memory режим, так и масштабируемый Redis-бэкенд. «Питонический дроссель» интегрируется с MCP Python SDK, позволяя эффективно контролировать частоту вызовов в диалоговых процессах моделей.

Репозиторий проекта
#инструмент
@zen_of_python
👍2🥱1
​​pyleak | Контроль утечек памяти

Минималистичная библиотека для поиска утечек памяти умеет группировать утекшие объекты по типу, упрощая диагностику. Основной интерфейс — контекстный менеджер leak_checker(), который можно легко встроить в тесты или отладочные блоки. Отличный выбор для тех, кто хочет контролировать потребление памяти без тяжёлых инструментов.

Репозиторий проекта
#инструмент
@zen_of_python
👍3🌚1
​​@pyainter_bot | ИИ-тренер по Python

Разработчики, которые доводят свои пет-проекты до ума, существуют... Один из них создал питонического тренера в Telegram для собеседований. Среди фичей:

— Система начисления очков;
— Множество разделов (Основы Python, ООП, Базы данных, Тестирование и проч.);
— Режим «злого учителя»: бот гоняет вас на слабые темы;

Проект опенсорсный. Если вам захотелось выставить свою LLM и задать ей свои промты, дерзайте.

Репозиторий проекта
#инструмент #собеседование
@zen_of_python
❤‍🔥5👎21
​​10 библиотек Python, которые меняют карьеру

В топе по версии Tproger оказались не новинки, а самая настоящая база. Даже в рамках Python-специальностей (Fullstack Python Developer, Data Scientist, Data Engineer и проч.) есть общий для всех знаменатель — pandas, FastAPI, Django. Взгляните, кто еще попал в подборку, там найдутся и новые «убийцы» привычных технологий.

#инструмент
@zen_of_python
👍31🤔1
​​TorchLeet | Литкод про PyTorch

Момент настал, и вы достаточно хардкорный питонист, чтобы осваивать PyTorch, со сложной документацией и безграничными возможностями. Если ваша цель — создать свою ChatGPT, вам точно понадобится хорошо знать этот фреймворк, и с этим поможет опенсорсный специализированный 'LeetCode'. Задачи разделены на четыре уровня сложности, среди тем: функция активации, потери, CNN, RNN, LSTM и даже LLM.

#инструмент
@zen_of_python
1👍1