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


346. Sumy — резюме HTML

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Гость: Henry Schreiner @HenrySchreiner3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

325. MicroPython и CircuitPython

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

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

324. Python API от Gatorade

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

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

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

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

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

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

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

322. Путь в Data Science

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

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

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

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

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

Пакет: Alpine.js

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

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

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

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

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

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

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

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

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

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

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

315. Awesome FastAPI extensions and add ons

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

Пакет # 1: flake8-docstrings

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

Пакет #2: hotwire-django

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

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

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

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

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

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

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

Гость: Samuel Colvin @samuel_colvin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии (5)


  1. un1t
    30.12.2021 11:20

    Black — это бескомпромиссный форматтер кода Python. 

    Я им пользуюсь время от времени, он чуть менее кривой чем autopep8.

    Почему-то в go, rust и javascript эту проблему давно решили, а в python пока печально.

    Кто чем еще пользуется? Есть что-то что нормально форматирует код?


    1. stranger777
      30.12.2021 11:53

      В go автоформат даже из коробки; но там сам язык располагает, а у Python, скорее всего, дело в смысле отступов — подход нужен аккуратный, поэтому автоформат пишется долго и трудно. Ждём. И может быть поможет: список отобранных форматтеров.


    1. worldmind
      30.12.2021 21:30

      А что значит кривой?


  1. Quetz
    30.12.2021 19:35

    Все ссылки на Эпизоды ведут на 404 страницу


    1. stranger777
      30.12.2021 20:57

      Спасибо! Поправили всё.