Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
complexipy | Вычисляем когнитивную сложность вашего кода

Нетривиальный инструмент, позволяющий вычислить Cognitive Complexity («когнитивную сложность»). В контексте программирования это метрика, оценивающая насколько трудно человеку понять код — учитываются не только ветвления и циклы, как в Cyclomatic Complexity, но и структура, глубина вложенности, логические конструкции, операторы и прочие аспекты, создающие когнитивную нагрузку при чтении. Это важная метрика при рефакторинге проекта.

Тул интегрируется через CLI, GitHub Actions, pre-commit-hooks и позволяет анализировать функции, файлы и директории, указывая те, чей коэффициент сложности превышает определенный порог.

#инструмент
@zen_of_python
💔 — Если рефакторинг разбивает сердце
5🆒2
tyro | Ваша функция, вызываемая в CLI

tyro.cli() автоматически преобразует Python-функцию или класс с аннотациями типов в полнофункциональный интерфейс командной строки, без необходимости вручную прописывать парсинг аргументов:


@dataclass
class Config:
input_file: str
verbose: bool = False


Здесь tyro.cli(Config) создаёт полноценный CLI, где аргументы --input-file и --verbose будут автоматически сгенерированы, а при вызове в терминале доступна помощь (--help).

Утилита извлекает аннотации и doc-строки. Аргументы становятся типами, которыми оперируют IDE и анализаторы mypy, pyright: автодополнение, переход к определению, рефакторинг — всё работает «из коробки». Это даст возможность автокомплитить с Tab.

#инструмент
@zen_of_python
🔥321
Многофакторное сравнение пяти популярных вычислительных движков Big Data

На Tproger сравнили Spark, Presto/Trino, ClickHouse и StarRocks — с оценкой по таким критериям, как скорость, масштабируемость, кэширование, отказоустойчивость и поддержка SQL / Python.

Выделено три типа движков:
— универсальные (например, Spark, Flink, MapReduce), предназначенные для пакетных сложных вычислений; — интерактивные, для запросов (Presto, Trino) для моментального анализа ad hoc;
— аналитические, ориентированные на OLAP-аналитику с векторизацией.

Используется система скоринга Metascore, которая облегчит сравнение и принятие обоснованного решения.

#инструмент
@zen_of_python
1🌭1
​​6 способов автоматизировать ревью кода — подборка сервисов

Если вы устали от ручного кода-ревью, в подборке Tproger вы найдете шесть действенных способов автоматизировать этот процесс. Среди тулов выделяется BeeCR, который интегрируется с GitLab. Также представлен Reshift — легковесный JavaScript-плагин, ориентированный на выявление уязвимостей ещё на этапе разработки.

#инструмент
@zen_of_python
1👍1
​​archivey | WinRAR больше не нужен

Библиотека предлагает унифицированный способ обращения с архивами .zip, .rar, .tar, .7z и другими форматами. Массовые создание и распаковка, обработка символических ссылок (symlink), управление правами доступа и паролями.

#инструмент
@zen_of_python
2😇1
​​tabulate | pretty-printed-таблицы в CLI

Библиотека сделает вывод датафрейма в консоль красивой. Поддерживает множество типов итерируемых объектов, может стилизовать вывод под GitHub, PSQL, LaTeX, Jira и проч. Самое оно для красоты в Google Colab.

#инструмент
@zen_of_python
🔥5👍3
Google Image Scraper | Массовый парсинг картинок из Google

Тул помогает собирать сотни изображений для любой вашей цель — будь то ML-датасет, дизайн или что-то еще. При запуске указываем ключевые слова, количество файлов и параметры — и скрипт автоматически выгрузит нужные фото в нужном разрешении. Поддерживает работу в headless-режиме, гибкую настройку качества и параллельные загрузки.

Цена: бесплатно
#инструмент
@zen_of_python
1👍1
​​Hypothesis подумает о пограничных случаях за вас

Библиотека property-based тестирования, где вместо ручного набора тест-кейсов вы описываете свойства, которым должен соответствовать код, а разнообразные данные генерируются и проверяются автоматически, включая граничные случаи.

При обнаружении сбоя Hypothesis не просто сигнализирует об ошибке — он возвращает наиболее простой пример, приводящий к сбою, что значительно облегчает отладку.

#инструмент
@zen_of_python
3🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
alive-progress | Шкала прогресса в CLI

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

#инструмент #dataviz
@zen_of_python
1👏1😱1
​​python-dateutil | datetime, который смог

Ультрапопулярное (если верить рейтингу PyPi) расширение стандартного модуля datetime, поддерживает:

— Вычисление «следующего X»: удобно находим даты следующего понедельника или последней недели месяца;
— Относительные дельты: вычисляем разницу между двумя датами не только в секундах, но и в понятных календарных единицах (например, «2 месяца и 5 дней»);
— Рекуррентные даты (повторяющиеся события)
Поддерживается генерация серий дат по очень гибким правилам, расширяющим стандарт iCalendar (например: «каждый второй вторник месяца до конца года») и многое другое.

Еще бы русский язык поддерживала, цены бы не было!

#инструмент
@zen_of_python
​​YTSage | Скачиватель с YouTube

Инструмент с несложным GUI на PySide6 c yt-dlp под капотом. Позволяет выбрать HD-качество, извлечь субтитры. Поддерживает скачивание плейлистов с возможностью выбрать конкретные видео перед загрузкой.

#инструмент
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
Cruft | Бойлерплейт из вашего проекта

Инструмент, который позволяет вам создать свой шаблон из уже существующего проекта, и потом поддерживать его. Основан на CookieCutter — аналогичной CLI-утилите. После создания можно использовать команду cruft update, чтобы подтягивать изменения из шаблона по мере его развития. Инструмент умеет проверять, актуален ли проект относительно шаблона, и позволяет автоматически применять обновления через CI-конвейеры. Это отличный способ избежать дублирования кода и облегчить поддержку множества проектов, основанных на одном шаблоне.

#инструмент
@zen_of_python
11
​​Starplot | Визуализируем звездное небо

Пожалуй, самая романтичная библиотека за последнее время в канале...

Тул для создания карт неба умеет строить разные типы визуализаций:

— Zenith Plots (вид всего неба над головой в заданное время и месте);
— Horizon Plots (небо над горизонтом);
— Map Plots с различными проекциями;
— Optic Plots — имитацию вида через телескоп или другое оптическое устройство.

Поддерживается более 14К объектов — звёзд, планет, созвездий и проч.

#инструмент
@zen_of_python
❤‍🔥5🌚1