[Перевод] TalkPython: лучшие пакеты Python по итогам 2021 года

image-loader.svg

На КДПВ в гостях у TalkPython вы видите Гвидо ван Россума — создателя Python, Марка Шеннона, план ускорения Python в 5 раз за 4 года и, конечно, автора подкаста. А мы делимся подборкой пакетов Python, о которых шла речь в выпусках за уходящий год.

346. Sumy — резюме HTML

Гость: Антонио Андраде @AntonioAndrade | LinkedIn

Пакет #1: sumy — модуль для автоматического резюмирования текстовых документов и HTML-страниц

image-loader.svg

Простая библиотека и утилита командной строки для извлечения резюме из HTML-страниц или простых текстов. Пакет также содержит простую систему оценки для резюме текстов. Реализованные методы суммирования описаны в документации. Я также веду список альтернативных реализаций на различных языках программирования.

Пакет #2: gTTS — библиотека Python и инструмент CLI для взаимодействия с API преобразования текста в речь от Google Translate.

image-loader.svg

gTTS (Google Text-to-Speech), библиотека Python и инструмент CLI для взаимодействия с API преобразования текста в речь Google Translate. Запись озвученных данных mp3 в файл, файлоподобный объект (bytestring) для дальнейших манипуляций со звуком или вывода в stdout. Или просто предварительно сгенерируйте URL-адреса запросов Google Translate TTS, чтобы передать их внешней программе.

345. 10 советов и инструментов для продуктивной разработки

Гость: Джей Миллер @kjaymiller

Пакет #1: black — бескомпромиссное форматирование Python

image-loader.svg

Black — это бескомпромиссный форматтер кода Python. Используя его, вы соглашаетесь уступить контроль над мелочами ручного форматирования. Взамен Black даёт вам скорость, детерминизм и свободу от ворчания pycodestyle. Вы сэкономите время и душевные силы.

Пакет #2: rumps — невероятно простые приложения для macOS Python Statusbar

image-loader.svg

rumps (Ridiculously Uncomplicated macOS Python Statusbar) может значительно сократить код работающего приложения. Синтаксис PyObjC не нужен! rumps предназначен для любой консольной программы, которой нужна простая панель инструментов конфигурации или меню запуска.

344. SQLAlchemy 2.0

Гость: Майк Бейер @zzzeek

Пакет: nplusone — обнаружение N+1 запросов

nplusone — это библиотека для обнаружения проблемы n+1 запросов в ОРМ на Python, включая SQLAlchemy, Peewee и ОРМ Django.

343. Делайте всё в Excel, получайте код Python для ноутбука с помощью Mito

Гости: участники дискуссии (нужна помощь в обновлении имён и ссылок)

Пакет: Pandas Profiling — профилирование фрейма данных Pandas

image-loader.svg

Генерирует отчёты профилирования pandas DataFrame. Функция pandas df.describe () великолепна, но немного простовата для серьёзного исследовательского анализа данных. pandas_profiling расширяет pandas DataFrame с помощью df.profile_report (), чтобы анализировать данные быстро. Я активный пользователь этой библиотеки. Спасибо, что она есть!

342. Python в архитектуре зданий

Гость: Ги Таларико, его GitHub

Пакет: pythonic — графический инструмент автоматизации

image-loader.svg

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

341. 25 функций Pandas, о которых вы не знали

Гость: Бекс Туйчиев, LinkedIn

Пакет: umap-learn — Uniform Manifold Approximation and Projection

image-loader.svg

Работаете с данными и ищете максимально близкую проекцию низкой размерности? Uniform Manifold Approximation and Projection (UMAP) — это метод уменьшения размерности, который можно использовать для визуализации как t-SNE, а ещё для общего нелинейного уменьшения размерности.

340. Pyjion — время JIT пришло для Python?

Гость: Энтони Шоу @anthonypjshaw

Пакет # 1: tortoise ORM — простой async ORM с учётом отношений

image-loader.svg

Tortoise ORM — это простой в применении asyncio ORM (Object Relational Mapper), вдохновлённый Django. Tortoise ORM разработан с учётом реляционной теории и с восхищённой оглядкой на Django ORM. По самому замыслу вы работаете не просто с таблицами, но с реляционными данными.

Пакет # 2: beanie — асинхронный ODM для MongoDB

image-loader.svg

Beanie — это асинхронный объектно-документный маппер (ODM) на языке Python для MongoDB, основанный на Motor и Pydantic. В Beanie каждая коллекция базы данных имеет соответствующий документ, который используется для взаимодействия с этой коллекцией. Помимо извлечения данных Beanie позволяет добавлять, обновлять или удалять документы из коллекции.

Пакет # 3: hathi — сканер хостов SQL и инструмент для атак по словарю

image-loader.svg

Сканер хостов SQL и инструмент для атак по словарю. Поставляется со скриптом (filter_pass.py) для фильтрации списков паролей на основе их надёжности.

339. Гвидо ван Россум и Марк Шеннон: ускоряем Python

Гости: Гвидо ван Россум, @gvanrossum | Марк Шеннон, LinkedIn

В этом эпизоде не было упомянуто ни одного заметного пакета, но мы ценим постоянную работу над тем, чтобы сделать Python быстрее (шаг за шагом).

Ссылка на эпизод

338. Пакет cibuildwheel для управления пакетами scikit-HEP

Гость: Henry Schreiner @HenrySchreiner3

Пакет: plotext — графики прямо в терминале

image-loader.svg

Любители CLI, plotext строит графики прямо в терминале, у него нет зависимостей, а синтаксис очень похож на matplotlib.

337. Kedro — удобные проекты Data Science

Гости: Уэлон Уокер @_WaylonWalker | Yetunde Dada @yetudada | Ivan Danov @ivandanov

Пакет #1: fsspec — интерфейсы файловых систем для Python

Filesystem Spec (fsspec) — это проект по предоставлению унифицированного питон-интерфейса для локальных, удалённых и встроенных файловых систем и байт-хранилищ. Как описано выше, обращайтесь с удалённой базой данных как с локальным файлом!

Пакет # 2: dynaconf — управление конфигурациями

image-loader.svg

Ленивый загрузчик настроек на стероидах!

336. Форматирование во всех смыслах в терминале

Гость: Уилл МакГуган @willmcgugan

Пакет: objexplore — исследование объктов Python

image-loader.svg

Objexplore — это интерактивный проводник объектов Python для терминала. Используйте его во время отладки, или изучения новой библиотеки, или чего угодно!

335. Редактирование генов на Python

Гость: Дэвид Борн @Hypostulate | Beam Therapeutics

Пакет # 1: AWS Cloud Development Kit (AWS CDK)

image-loader.svg

AWS Cloud Development Kit (AWS CDK) — это система разработки программного обеспечения с открытым исходным кодом для определения облачной инфраструктуры в коде и её предоставления через AWS CloudFormation.

Пакет # 2: luigi — управление рабочим процессом + планирование задач + разрешение зависимостей

PyPi | Домашняя страница | Исходники | Эпизод

image-loader.svg

Luigi — это пакет для Python (протестировано на версиях 3.6–3.9), который помогает создавать сложные конвейеры пакетных тасков. В нём есть разрешение зависимостей, управление рабочими процессами, визуализация, обработка сбоев, интеграция командной строки и многое другое.

334. Планетарный компьютер Microsoft

Гости: Роб Эмануэль @lossyrob | Tom Augspurger @TomAugspurger

Пакет: seaborn — визуализация статистических данных

image-loader.svg

Seaborn — это основанная на matplotlib библиотека визуализации на языке Python. Она предоставляет высокоуровневый интерфейс для построения привлекательных статистических графиков. Если matplotlib предназначена для пользователей Android, то seaborn — для пользователей iPhone!

333. Состояние Data Science в 2021 году

Гость: Стэн Зайберт @seibert

Пакет: cupy — NumPy и SciPy для GPU

image-loader.svg

CuPy — это библиотека массивов с открытым исходным кодом для вычислений с GPU-ускорением на языке Python. CuPy использует библиотеки CUDA Toolkit, включая cuBLAS, cuRAND, cuSOLVER, cuSPARSE, cuFFT, cuDNN и NCCL, чтобы задействовать архитектуру GPU по полной. По сути, это NumPy и SciPy на стероидах!

332. Надёжный Python

Гость: Патрик Виафоре @PatViaforever

Пакет: stevedore — управление динамическими плагинами приложений Python

Python упрощает динамическую загрузку кода, позволяя вам настраивать и расширять приложение путём обнаружения и загрузки расширений («плагинов») во время выполнения. Многие приложения имеют для этого собственную библиотеку для этого, и эта библиотека работает через import или importlib. Stevedore избегает создания ещё одного механизма расширения, строит его поверх точек входа setuptools. Однако код для управления точками входа имеет тенденцию повторяться, поэтому stevedore предоставляет классы менеджеров для реализации общих моделей использования динамически загружаемых расширений.

330. Открытые исходники Apache Airflow

Гости: Ярек Потюк LinkedIn | Найк Каксиль @kaxil | Леа Коул @leahecole

Пакет: Apache Airflow — программное создание, управление и мониторинг конвейеров данных

PyPi | Домашняя страница | Исходники | Эпизод

image-loader.svg

Airflow — это платформа, созданная сообществом, чтобы программно создавать, планировать и мониторить рабочие процессы. Airflow лучше всего работает с рабочими процессами, которые в основном статичны и меняются медленно. Когда структура DAG схожа от одного прогона к другому, это помогает выявлять единицы работы и непрерывность. Среди других подобных проектов — Luigi, Oozie и Azkaban.

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

328. Piccolo — быстрая асинхронная ORM для Python (обновлено)

Гость: Дэниел Таунсенд @danieltownsend

Пакет: pydantic — валидация данных и управление настройками

image-loader.svg

Быстрый и расширяемый, pydantic прекрасно сочетается с вашими линтерами, IDE и мозгами. Определите, как данные должны быть в чистом, каноническом Python 3.6+; проверьте его с помощью pydantic.

327. Маленький инструмент автоматизации

Пакет: pipx — установите и запустите приложения Python в изолированных средах

image-loader.svg

Это один из эпизодов с наибольшим количеством описанных пакетов. Поэтому мы выбрали тот, у которого самый лучший логотип, — это pipx, инструмент, который поможет конечным пользователям установить и запустить приложения на Python. Он похож на brew в macOS, npx в JavaScript и apt в Linux.

326. Настольные приложения с помощью wxPython

Гость: Майк Дрисколл @driscollis

Пакет: openpyxl — библиотека Python для чтения/записи файлов Excel 2010 XLSX / XLSM

image-loader.svg

325. MicroPython и CircuitPython

Пакет: httppy — запросы в Python с удобствами

HttpPy делает запросы удобнее. Отличная замена wget (и для Windows).

324. Python API от Gatorade

Гость: Род Сенра @rodsenra

Пакет: rich — форматированный текст, таблицы, прогрессные батончики, синтаксис подсветки, отметки и многое другое до терминала.

image-loader.svg

Rich — это библиотека Python для форматирования в терминале во всех смыслах слова «форматирование». API Rich позволяет легко добавить цвет и стиль к выводу терминала. Rich также может отображать красивые таблицы, прогресс-бары, разметку, подсветку синтаксиса, трассировку и многое другое из коробки. Не забудьте попробовать from rich import print.

image-loader.svg

323. Лучшие практики для Docker в производственной среде

Гость: Итамар Тёрнер-Трауринг @itamarst

Пакет: PyO3 — работа с Python из Rust

image-loader.svg

Биндинг Rust для Python, включая инструменты для создания встроенных модулей расширения Python. Поддерживаются запуск и взаимодействие с кодом Python из бинарного файла Rust.

322. Путь в Data Science

Гость: Саньям Бхутани @bhutanisanyam1

Пакет: fastai. Нейросети? Сделаем их снова не крутыми…

image-loader.svg

Упрощает обучение быстрых и точных нейронных сетей, использует передовые методы.

321. HTMX — чистые динамические страницы HTML

Гость: Карсон Гросс @htmx_org

Пакет: Alpine.js

image-loader.svg

Это не пакет PyPi, но он потрясающий: новый, лёгкий фреймворк JavaScript.

320. Python в электрической энергетике

Гость: Джек Симпсон, его сайт

Пакет: numba — ускоряет функции, компилируя код на Python через LLVM

image-loader.svg

С помощью стандартной библиотеки компилятора LLVM Numba переводит функции Python в оптимизированный машинный код во время выполнения. Численные алгоритмы в Python, скомпилированные в Numba, по скорости могут приближаться к C или FORTRAN. Вам не нужно заменять интерпретатор Python, выполнять отдельный шаг компиляции или даже иметь установленный компилятор C/C++. Просто примените один из декораторов Numba к вашей функции Python, и Numba сделает всё остальное.

319. Тайпсквоттинг и уязвимость цепочки поставок

Гости: Бенц Тозер, его почта | Джон Спид Мейерс, его почта

Пакет: NetworkML — определение функциональной роли устройства по траффику при помощи ML

NetworkML — это часть нашего проекта Poseidon. Модель в networkML классифицирует каждое устройство по функциональной роли с помощью моделей ML, обученных на характеристиках сетевого трафика. «Функциональная роль» относится к авторизованному административному назначению устройства в сети и включает такие роли, как принтер, почтовый сервер и другие, имеющие место в среде ИТ. Наш внутренний анализ показывает, что networkML может достичь точности, запоминания и оценки F1 выше 90% при обучении на устройствах из вашей собственной сети. Вопрос о том, может ли эта производительность переноситься из ИТ-среды в другую ИТ-среду, — это область активных исследований.

318. Измеряем влияние ML с помощью CodeCarbon

Пакет: fastapi — веб-фреймворк для построения API

image-loader.svg

FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API с Python 3.6+ на основе стандартных подсказок типов языка. Помимо функции проверки типов API при помощи Swagger можно автоматически генерировать документацию API.

317. Python и комиссия федеральных выборов US

Гость: Лаура Бофорт @laurabeaufort

Пакет: Flask-SQLAlchemy — поддержка SQLAlchemy в вашем Flask

image-loader.svg

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

316. Flask 2.0

Гости: Дэвид Лорд @davidism | Филип Джонс @pdgjones

Пакет #1: pydantic — валидация данных и управление настройками

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

Пакет #2: AutoInvent — библиотеки для генерации API и UI GraphQL из данных

Magql — это фреймворк GraphQL на Python. Он генерирует полнофункциональный, настраиваемый GraphQL API. И произносится как magical — «волшебный». Так оно и есть!

Пакет # 3: trio — дружественная библиотека Python для асинхронного параллелизма и ввода-вывода

image-loader.svg

Цель проекта Trio — предоставить пользователям качественную библиотеку асинхронного/ожидающего нативного ввода/вывода для Python с правом свободного доступа.

315. Awesome FastAPI extensions and add ons

Гость: Майкл Герман @mikeherman

Пакет # 1: flake8-docstrings

image-loader.svg

Простой модуль, который добавляет расширение для фантастического инструмента pydocstyle во flake8.

Пакет #2: hotwire-django

Этот репозиторий призван помочь вам интегрировать Hotwire с Django. Вдохновение можно почерпнуть из @hotwired/hotwire-rails.

314. Спросите нас о современных инстументах и проектах Python

Гость: Себастьян Витовски @SebaWitowski

Репозиторий: Awesome Python — жизнь коротка, вам нужен Python

Домашняя страница | Исходники | Эпизод

image-loader.svg

Список удивительных фреймворков, библиотек, программного обеспечения и ресурсов на языке Python.

313. Автоматизация обмена данными с помощью PyDantic

Гость: Samuel Colvin @samuel_colvin

Пакет: starlette — маленькая сияющая библиотека ASGI

image-loader.svg

Starlette — это лёгкий ASGI-фреймворк и инструментарий, идеально подходящий для создания высокопроизводительных асинхронных сервисов.

312. Приложения Python, которые масштабируются на миллионы пользователей

Гость: Жюльен Данжу @juldanjou

Пакет: tenacity — повторяет выполнение кода до успешного выполнения

Tenacity — это лицензированная (Apache 2.0) библиотека общего назначения, которая упрощает добавление повторной попытки к чему угодно. Берёт своё начало от форка библиотеки retrying, которая, к сожалению, больше не поддерживается. Tenacity не совместим с retrying в смысле API, но в него добавлено много новых функций, исправлен ряд старых ошибок.

311. Погружение в папку .git

Гость: Роб Ричардсон @rob_rich

Пакет: git-hooks-js — утилита для управления и запуска git-хуков проекта для проектов nodejs

git-hooks — это утилита для управления и запуска git-хуков в проекте nodejs. Она не имеет зависимостей и проста в применении. Просто установите git-hooks, и она будет запускать ваши хуки, когда хук вызывается git.

310. Сессия вопросов с Майклом

Гости: Ким ван Вик @kim_vanwyk | Патрик Хлобил @hlobilpatrik

Пакет # 1: pySerial — бэкенды последовательного порта для Python

image-loader.svg

Этот модуль инкапсулирует доступ к последовательному порту. Он предоставляет бэкенды для Python, работающего на Windows, OSX, Linux, BSD (возможно, на любой POSIX-совместимой системе) и IronPython. Модуль с именем serial автоматически выбирает соответствующий бэкенд.

Пакет # 2: click — композитный инструментарий для создания интерфейса командной строки

image-loader.svg

Click — это пакет Python для создания красивых интерфейсов командной строки через композиции, вы пишете минимум кода. Это набор для создания интерфейса командной строки. Он настраиваемый, но уже из коробки настроен разумно.

309. Чему ML может научить нас: 7 уроков

Гость: Евгений Ян @eugeneyan

Пакет: pytest — простой и мощный пакет тестирования на Python

image-loader.svg

Фреймворк pytest позволяет легко писать небольшие тесты, но при этом масштабируется для поддержки сложного функционального тестирования приложений и библиотек. Brian Okken написал об этом целую книгу.

308. Docker для Python-разработчиков (версия 2021)

Гость: Питер МакКи @pmckee

Пакет: testcontainers-python — тестируйте практически всё, что запускается в контейнере Docker

image-loader.svg

Testcontainers-python предоставляет возможность запускать контейнеры docker (такие как база данных, веб-браузер Selenium или любой другой контейнер) для тестирования.

306. Масштабирование Python и Jupyter при помощи ZeroMQ

Гость: Мин Раган-Келли @minrk

Пакет: cibuildwheel — сборка Python Wheels на CI с минимальной конфигурацией

image-loader.svg

cibuildwheel будет работать на вашем CI-сервере — сейчас он поддерживает GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI и GitLab CI, собирает и тестирует ваши Wheels на всех платформах.

305. Сообщество Python на Python Discord

Гость: Леон Сэнди @lemonsaurus_rex

Пакет: async-rediscache — простой в применении асинхронный кеш Redis

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

304. Весь asyncio в Omnilib

Гость: Джон Риз @n7cmdr

Пакет: seinfeld — запрос цитаты Сейнфелда

image-loader.svg

Библиотека Python для запроса цитат Сайнфелда. О, да, Сайнфелд!

303. Python для астрономии, рассказывает доктор Бекки

Гость: Dr. Бекки Сметхерст @drbecky_

Пакет: notebook — веб-среда для интерактивных вычислений

image-loader.svg

Jupyter Notebook — это веб-приложение, позволяющее создавать и совместно использовать документы с интерактивным кодом, уравнениями, визуализациями и текстовыми объяснениями. Блокнот поддерживает несколько языков программирования, совместное использование и интерактивные виджеты.

302. Ландшафт Data Engineering в 2021 году

Гость: Тобиас Мейси @TobiasMacey

Пакет: dagster — оркестратор данных для машинного обучения, аналитики и ETL

image-loader.svg

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

Благодаря единому представлению заданий и создаваемых ими ресурсов Dagster может планировать и оркестровать Pandas, Spark, SQL и всё остальное, что может вызвать Python. Dagster предназначен для инженеров платформы данных, инженеров данных и full-stack data scientist«ов. Построение платформы данных с помощью Dagster делает ваши заинтересованные стороны более независимыми, а ваши системы — более надёжными. Разработка конвейеров данных с помощью Dagster упрощает тестирование и ускоряет развёртывание.

301. Развёртывание и выполнение приложений Django в 2021

Пакет: bleach — простой инструмент для удаления ссылок в HTML на основе белого списка.

image-loader.svg

Bleach — это библиотека очистки HTML на основе белых списков, она экранирует или удаляет разметку и атрибуты. Bleach может безопасно линковать текст, применяя фильтры, которые не может использовать фильтр urlize от Django, и опционально устанавливая атрибуты rel, даже для ссылок, которые уже есть в тексте. Пакет обезвреживает ссылки из ненадёжных источников. Если вам приходится прыгать через обручи, чтобы позволить администраторам сайта делать множество вещей, вы, скорее всего, не относитесь к числу пользователей.

299. Личный поисковый движок в упряжке

Гость: Саймон Уиллисон @simonw

Пакет: flynt — конвертирование строк

flynt — это CLI для автоматического преобразования кода из »%-formatted» и .format (…) в f-строки Python 3.6+. Испытать все эти пакеты вы сможете на наших курсах:

image-loader.svg

Узнайте подробности акции.

Другие профессии и курсы

Data Science и Machine Learning

Python, веб-разработка

Мобильная разработка

Java и C#

От основ — в глубину

А также

© Habrahabr.ru