Используйте то, что уже улучшили другие, для продвижения вашего проекта.

Python - удивительный и универсальный язык программирования. Вы можете создавать самые разные приложения, от веб-скрапинга до красивого настольного приложения.

И в большинстве случаев для выполнения ваших задач вам понадобится только стандартная библиотека. Но иногда использование дополнительного пакета может быть очень полезным, чтобы абстрагироваться от функциональности и сэкономить ваше драгоценное время.

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

Идея состоит в том, чтобы показать несколько хороших проектов, о которых вы, возможно, (пока) не знаете. Может быть, они каким-то образом вдохновят вас на создание нового проекта.

Примечание: это пакеты, которые я использовал хотя бы один раз в своих проектах. Есть много других хороших, которых нет в этом списке. Вы можете увидеть хороший список здесь.

канун

Если вы используете MongoDB и хотите создать REST API для своей базы данных, вам необходимо проверить фреймворк Eve. Построенный на основе еще одного известного веб-фреймворка Flask, вы можете создавать различные конечные точки для своих ресурсов, используя словарь или файл конфигурации.

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

А благодаря Flask вы по-прежнему можете использовать все расширения flask, доступные в сообществе, для расширения вашего проекта.

FastAPI

По-прежнему в мире веб-фреймворков существует фантастический FastAPI. Он построен на основе пакетов Starlette и Pydantic с использованием современных функций Python, таких как подсказки типов и async / await.

Есть много интересных функций, таких как проверка данных, промежуточное ПО, загрузка файлов, GraphQL и WebSockets, которые вы можете легко настроить и использовать.

И он автоматически генерирует страницу OpenAPI, чтобы вы могли протестировать свой API без стороннего приложения.

Если вам нужно создать API, вам обязательно стоит попробовать эту библиотеку.

Streamlit

Если вы когда-то создавали проект по науке о данных, возможно, у вас возникли проблемы с тем, как поделиться своими результатами. Или, может быть, даже потратил много времени на борьбу с JavaScript и CSS, чтобы в итоге получить ужасную страницу.

Streamlit - замечательная библиотека Python, которая помогает создавать красивые веб-приложения без необходимости иметь дело со всем Javascript. Только Python.

В нем уже создано множество компонентов, так что вы можете сосредоточиться только на создании представления ваших данных.

Профилирование панд

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

Пакет pandas-profiling идеально подходит для этого. Он расширяет функцию pandas df.describe(), создавая интерактивный HTML-отчет, содержащий такую ​​статистику, как:

  • Гистограмма;
  • Описательные значения, такие как среднее значение, режим, стандартное отклонение и т. Д .;
  • Корреляция;
  • Отсутствующие значения;
  • И многие другие

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

Маним

Если вы хотите создавать анимацию не только для математики, эту библиотеку определенно стоит использовать.

Он был создан Грантом Сандерсоном для анимации видео для своего канала YouTube 3Blue1Brown (если вы еще не знаете, вам следует). Он начинался как побочный проект, но теперь у него есть хорошее сообщество, которое помогает его поддерживать.

Вы можете создавать анимированные видеоролики с несколькими строками, которые, безусловно, помогут вам визуализировать или проиллюстрировать возникшую у вас проблему.

Или просто для развлечения.

Typer

Если вы хотите создать приложение с интерфейсом командной строки, установите флажок Typer.

Разработанный тем же создателем FastAPI, он использует пакет Click (кстати, вам также следует проверить) и расширяет его.

Он создает парсеры и аргументы непосредственно из аргументов вашей функции с помощью подсказок типа python.

import typer


def main(name: str):
    typer.echo(f"Hello {name}")


if __name__ == "__main__":
    typer.run(main)

Если вы когда-либо использовали argparse или getopt, вы будете довольны тем, насколько легко использовать Typer.

ZeroRPC

Это гибкая реализация RPC на базе ZeroMQ и MessagePack. Это означает, что вы можете выполнять удаленную функцию Python, как если бы она была локально в вашем пакете.

Не имеет значения, находится ли ваш код на том же компьютере, на другом компьютере в той же сети или на облачном сервере в удаленной стране. ZeroRPC может раскрыть и выполнить ваш код, как если бы он был локальным.

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

Если вам нужно создать распределенную систему, рассмотрите возможность проверки этого пакета.

MkDocs

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

Вы можете использовать MkDocs для создания красивой HTML-страницы из файлов разметки. Это быстро, просто и может быть расширено собственной темой.

Все страницы написаны с использованием разметки, а документация создается с использованием простого файла конфигурации YAML. После этого вы можете использовать свои статические файлы как красивую веб-страницу.

Хьюи

Huey - это легкая система очередей задач с простым API. Он поддерживает несколько функций, таких как:

  • Модели выполнения многопроцессорных, многопоточных или зеленых задач.
  • Запланируйте выполнение задач в определенное время или после заданной задержки, или чтобы они повторялись, как crontab.
  • Приоритезация задач
  • Блокировка задач
  • Конвейеры и цепочки задач

Вы можете добавить функцию в очередь с помощью простого декоратора. Это определенно стоит посмотреть.

Заключение

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

Это не полный список, так как существуют сотни других замечательных пакетов (посмотрите эту страницу на github, если захотите).

Проверь их. Даже если вы решите не использовать их или совсем не нуждаетесь в них, вы можете вдохновиться их кодом и создать еще один классный пакет.

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