24 библиотеки Python для каждого разработчика Python

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

Вот 24 библиотеки Python, которые вы могли упустить из виду, но определенно заслуживают вашего внимания. Эти драгоценные камни обладают широким спектром полезности, упрощая все: от доступа к файловой системе, программирования баз данных и работы с облачными службами до создания легких веб-приложений, создания графических интерфейсов пользователя и работы с изображениями, электронными книгами и файлами Word - и многого другого. Некоторые из них хорошо известны, другие - менее известны, но все эти библиотеки Python заслуживают места в вашем наборе инструментов.

Apache Libcloud

Что делает Libcloud: доступ к нескольким облачным провайдерам с помощью единого согласованного унифицированного API.

Зачем использовать Libcloud: если приведенное выше описание Apache Libcloud не заставляет вас хлопать в ладоши от радости, значит, вы не пробовали работать с несколькими облаками. Все поставщики облачных услуг любят делать что-то по-своему, создавая единый механизм для работы с десятками поставщиков, который значительно экономит время и избавляет от головной боли. Доступны API-интерфейсы для вычислений, хранения, балансировки нагрузки и DNS с поддержкой Python 2.x и Python 3.x, а также PyPy, JIT-компилятора для повышения производительности Python.

Стрелка

Что делает Arrow: Более чистая обработка даты и времени в Python.

Зачем использовать Arrow: работа с часовыми поясами, преобразованием даты, форматом даты и всем остальным - уже полторы головной боли. Добавьте стандартную библиотеку Python для работы с датой и временем, и вы получите две с половиной головной боли.

Arrow дает четыре больших преимущества. Во- первых, стрелка является заменой для даты и времени модуля Python, а это означает , что общие вызовы функций , как .now()и .utcnow()работать , как ожидалось. Во-вторых, Arrow предоставляет методы для общих нужд, таких как смещение и преобразование часовых поясов. В-третьих, Arrow предоставляет «очеловеченную» информацию о дате и времени, например, возможность без особых усилий сказать, что что-то произошло «час назад» или произойдет «через два часа». В-четвертых, Arrow может локализовать информацию о дате и времени, не беспокоясь.

Вот

Что делает Behold:  надежная поддержка отладки в стиле печати в Python.

Зачем использовать Behold:  есть один простой способ отладки в Python или почти на любом языке программирования в этом отношении: вставлять встроенные printоператоры. Но в то время как отладка печати не является проблемой для небольших программ, не так просто получить полезные результаты в больших, разрастающихся, многомодульных проектах.

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

Черный

Что делает Black: форматирует код Python в соответствии со строгим и почти полностью неизменным набором правил.

Зачем использовать Black: средства  форматирования кода Python, такие как YAPF, обычно имеют множество настраиваемых параметров - длину строки, параметры разделения строк, обработку замыкающих запятых и так далее. Черный применяет последовательный набор значений по умолчанию для тех правил, которые нельзя изменить. Полученный отформатированный код максимально согласован между базами кода и между пользователями, с минимально возможными различиями между редактируемыми файлами.

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

Бутылка

Что делает Bottle: легкие и быстрые веб-приложения.

Зачем использовать Bottle: если вы хотите создать быстрый RESTful API или использовать базовые элементы веб-фреймворка для создания приложения, способный, но крошечный Bottle дает вам не больше, чем вам нужно. Маршрутизация, шаблоны, доступ к данным запросов и ответов, поддержка нескольких типов серверов, начиная с простого старого CGI и выше, а также поддержка более продвинутых функций, таких как WebSockets, - все это здесь. Объем работы, необходимой для начала работы, также минимален, а дизайн Bottle элегантно расширяется, когда требуются более сложные функции. 

Нажмите

Что делает Click:  позволяет быстро создавать интерфейсы командной строки для приложений Python.

Зачем использовать Click:  GUI удобны, но реальная сила здесь именно в CLI. Однако создать надежный интерфейс командной строки нелегко, а набор инструментов по умолчанию для сбора и использования параметров командной строки в Python примитивен.

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

EbookLib

Что делает EbookLib:  читает и записывает файлы .epub.

Зачем использовать EbookLib: создание электронных книг обычно требует использования того  или иного инструмента командной строки. EbookLib предоставляет инструменты управления и API, которые упрощают процесс. Он работает с файлами EPUB 2 и EPUB 3, поддержка Kindle находится в стадии разработки.

Предоставьте изображения и текст (последний в формате HTML), и EbookLib может собрать эти части в электронную книгу с главами, вложенным оглавлением, изображениями, разметкой HTML и т. Д. Также поддерживаются данные обложки, корешка и таблицы стилей. Система плагинов позволяет третьим сторонам расширять поведение библиотеки.

Если вам не нужно все, что предлагает EbookLib, попробуйте Mkepub. Mkepub объединяет основные функции сборки электронных книг в библиотеку размером всего несколько килобайт. Одним из незначительных недостатков Mkepub является то, что для него требуется Jinja2, который, в свою очередь, требует библиотеки MarkupSafe.

Липкий

Что делает Gooey:  предоставляет консольной программе Python графический интерфейс, ориентированный на платформу.

Зачем использовать Gooey:  представление пользователям, особенно рядовым пользователям, интерфейса командной строки - один из лучших способов воспрепятствовать использованию вашего приложения. Немногие, кроме заядлых компьютерщиков, любят выяснять, какие варианты пройти и в каком порядке. Gooey принимает аргументы, ожидаемые библиотекой argparse, и представляет их пользователям как форму графического интерфейса пользователя посредством библиотеки WxPython. Все параметры помечены и отображаются с соответствующими элементами управления (например, раскрывающийся список для аргумента с несколькими параметрами). Чтобы заставить его работать, требуется совсем немного дополнительного кода - одно включение и один декоратор, если вы уже используете argparse.

Вызвать

Что делает Invoke: удаленное выполнение Pythonic, т. Е. Выполнение административных задач с использованием библиотеки Python.

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

Нуйтка

Что делает Nuitka: компилирует  Python в автономные исполняемые файлы C.

Зачем использовать Nuitka: как  и Cython, Nuitka компилирует Python в C.Однако, в то время как Cython требует своего собственного синтаксиса для достижения наилучших результатов и ориентирован в основном на математические и статистические приложения, Nuitka работает с любой программой Python как есть, компилирует ее в C, и создает однофайловый исполняемый файл, применяя оптимизацию там, где это возможно. Nuitka все еще находится на начальной стадии, и многие из запланированных оптимизаций еще впереди. Тем не менее, это удобный способ превратить скрипт Python в быстрое приложение командной строки.

Нумба

Что делает Numba:  выборочно ускоряет математические функции.

Зачем использовать Numba:  мир Python включает в себя целую субкультуру пакетов для ускорения математических операций. Например, NumPy работает, обертывая высокоскоростные библиотеки C в интерфейсе Python, а Cython компилирует Python в C с дополнительной типизацией для повышения производительности. Но Numba является наиболее удобной, поскольку она позволяет выборочно ускорять функции Python с помощью не более чем декоратора. Для дальнейшего увеличения скорости вы можете использовать общие идиомы Python для распараллеливания рабочих нагрузок или использовать инструкции SIMD или GPU.

Обратите внимание, что вы можете использовать NumPy с Numba. В конце концов, в NumPy есть множество готовых алгоритмов, которые не нужно реализовывать с нуля. Но для небольших «ядерных» алгоритмов Numba во многих случаях превосходит NumPy во много раз.

Openpyxl

Что делает Openpyxl:  читает, записывает и управляет файлами Excel.

Зачем использовать OpenPyxl:  попросите кого-нибудь назвать три инструмента, которые вычислители чисел используют в своей работе, есть вероятность, что вы получите Python, R и Excel, не обязательно в таком порядке. В Excel (пока) нет встроенных возможностей подключения к Python, но сторонние пакеты разными способами преодолели этот пробел.

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

Peewee

Что делает Peewee:  крошечный ORM (объектно-реляционный преобразователь), который поддерживает SQLite, MySQL и PostgreSQL со многими расширениями.

Зачем использовать Peewee:  не всем нравится ORM; некоторые предпочли бы оставить моделирование схемы на стороне базы данных и покончить с этим. Но для разработчиков, которые не хотят трогать базы данных, хорошо сконструированная ненавязчивая ORM может быть находкой. А для разработчиков, которым не нужна такая полноценная ORM, как SQL Alchemy, Peewee отлично подходит.

Модели Peewee легко конструировать, соединять и манипулировать. Кроме того, многие общие функции обработки запросов, такие как разбиение на страницы, встроены прямо в него. В виде надстроек доступны дополнительные функции, включая расширения для других баз данных, инструменты тестирования и систему миграции схемы - функции, которой может научиться даже ненавистник ORM любить. Обратите внимание, что ветка Peewee 3.x (рекомендуемая версия) не полностью обратно совместима с предыдущими версиями Peewee.

Подушка

Что делает Pillow:  Обработка изображений без боли.

Зачем использовать Pillow:  большинству питонистов, которые занимались обработкой изображений, следовало бы быть знакомым с PIL (Python Imaging Library), но PIL пронизан недостатками и ограничениями и обновляется нечасто. Pillow стремится быть одновременно более простым в использовании и  совместимым с кодом PIL за счет минимальных изменений. Включены расширения для взаимодействия как с собственными функциями обработки образов Windows, так и с пакетом графического интерфейса пользователя Tkinter, поддерживаемым Python Tcl / Tk. Подушка доступна через GitHub или репозиторий PyPI.

Поэзия

Что делает Poetry:  управляет зависимостями и упаковкой ваших проектов Python на высоком уровне.

Зачем использовать Poetry:  теоретически вам не нужно ничего делать для запуска нового проекта Python, кроме создания пустого каталога и заполнения его файлами .py. На практике, особенно для амбициозного проекта, вам нужно будет сделать гораздо больше - создать README, настроить некоторую структуру папок, объявить свои зависимости и так далее. Делать все это вручную - головная боль.

Поэзия автоматизирует большую часть этой настройки и обслуживания. Запустите, poetry new чтобы создать новый каталог проекта и виртуальную среду, предварительно заполненную базовым набором компонентов. Объявите свои зависимости, используя собственный формат файла Python pyprojec.toml, и Poetry будет управлять ими за вас. Зависимости существующих продуктов, управляемых Poetry, могут автоматически устанавливаться, обновляться и изменяться из командной строки Poetry. Poetry также обрабатывает публикацию в удаленном репозитории (например, PyPI).

PyFilesystem

Что делает PyFilesystem:  интерфейс Pythonic для любой файловой системы -  любой  файловой системы.

Зачем использовать PyFilesystem:  фундаментальная идея PyFilesystem не может быть проще: точно так же, как fileобъекты Python абстрагируют один файл, FSобъекты PyFilesystem абстрагируют всю файловую систему. Это не означает только файловые системы на диске. PyFilesystem также поддерживает каталоги FTP, файловые системы в памяти, файловые системы для местоположений, определенных ОС (например, каталог пользователя), и даже комбинации вышеперечисленного, наложенные друг на друга.

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

Pygame

Что делает Pygame: создает  видеоигры или интерфейсы игрового качества на Python.