TalkPython: лучшие пакеты Python по итогам 2021 года

Kate

Administrator
Команда форума

346. Sumy — резюме HTML​

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

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

ca083ef4ab8db0526d34056a3043c798.png

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

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

2f4c8bff8196b2c145f0e77306cb1ed8.png

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

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

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

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

a3b539571687a2bf5d7cf5e3fe0354e2.png

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

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

aa741c6869048bb185229f073d9effc1.png

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

d6eaa841d04d8a2a07f25be09cc5755b.png

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

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

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

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

3e999e6176a0d02864a241cdb2188dfa.png

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

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

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

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

914562cbaaf18d6853e0d67ffe960686.png

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

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

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

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

b06b605a68ecf9c2c753a057f126cc51.png

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

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

5809089d15ba4c703cccce69a2ba0130.png

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

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

f1affab5168163f000d0b0c64d6068f1.png

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

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

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

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

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

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

Гость: Henry Schreiner @HenrySchreiner3

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

503a6ef76a2a6c31f8f97ebd7dc39e20.png

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

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

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

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

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

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

3bfd3d4e4760816d2410c6b6a4565a15.png

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

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

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

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

9d523b93ab2a960d104be944446106fa.png

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

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

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

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

88b63658e87b5d2c65ad271d160fda77.png

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

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

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

6bf720e08cb0d52f94671332ff6da01e.png

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

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

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

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

6c688778d9df0ab8413b0fe1f65b33bb.png

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

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

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

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

528d9d6947e1a4fc6fc587b8b055eb9f.png

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 | Домашняя страница | Исходники | Эпизод

d8259720baa7bab4797d8a92f052d4a0.png

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

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

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

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

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

f6274f10f20b363143b8c3c37c3ea88f.png

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

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

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

a2776027e42cc32936b95836d6e1770b.png

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

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

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

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

eb60a78cc31a1e25aee9a8d4fa6e97a4.png

325. MicroPython и CircuitPython​

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

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

324. Python API от Gatorade​

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

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

b219c5c944398fa5698e3b5dc3bbada0.png

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

db6930f54b8c0b771884ec44b0f63b6a.png

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

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

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

92cdb36bbc2a2160d293f21bdc89eaed.png

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

322. Путь в Data Science​

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

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

c49fe089b8781222aef08b02222c57bf.png

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

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

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

Пакет: Alpine.js

9551179b43429b472f5663d56862c8ce.png

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

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

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

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

399ffdfa305d72831abd72586b86551a.png

С помощью стандартной библиотеки компилятора 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

698d2437a89a65b36e97f7583cef158a.png

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

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

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

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

d3a289b340f43de248c786f9a96b169f.png

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 для асинхронного параллелизма и ввода-вывода

2e6865e52962f4d6d15b1c465f4791c6.png

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

315. Awesome FastAPI extensions and add ons​

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

Пакет # 1: flake8-docstrings

8eb45a7eb992f04b92979a7333829629.png

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

Пакет #2: hotwire-django

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

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

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

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

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

5b3c8b39a5a11e59d1084263746cf8be.png

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

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

Гость: Samuel Colvin @samuel_colvin

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

c6547a70e3eacc1c032a43490d5c5692.png

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

a4a0534e5a6c6e41f23ebdc3532f4a29.png

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

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

919213712ed0abc73b8f227930b22755.png

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

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

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

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

4a0be5d3f3259298d04608d3b8e8640d.png

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

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

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

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

30ff77f5bf222428df238ae6f6ebe976.png

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

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

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

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

07d2174914f8989e1d7a04eb9c33155b.png

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 — запрос цитаты Сейнфелда

f8d1c22f562e40eddc03f25500536d68.png

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

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

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

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

fceb7ad46f9c96bac1f32e44787c4b0f.png

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

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

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

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

c97c3000e5a05fb79c524da47ae2fb7d.png

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

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

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

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

2e32410c0679b776a3cbab89fb0b8c5d.png

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

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

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

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

flynt — это CLI для автоматического преобразования кода из "%-formatted" и .format(...) в f-строки Python 3.6+.

 
Сверху