12 библиотек для python разработчиков
Веб-приложения, сканирование веб-страниц, доступ к базам данных, создание графического интерфейса, синтаксический анализ, обработка изображений и многое другое — это лишь малая часть того, что можно делать благодаря языку программирования Python.
В языке Python существует массивная коллекция библиотек. Учитывая это, многие из них не получают того внимания, которого заслуживают. Кроме того, программисты, работающие исключительно в одном домене, не всегда знают о преимуществах, доступных им для других видов работы.
Вот 12 библиотек Python, которые вы, возможно, упустили из виду, но они определенно заслуживают вашего внимания. Эти библиотеки имеют широкий спектр полезности, упрощая всё-от доступа к файловой системе, программирования баз данных и работы с облачными сервисами до создания легких веб-приложений, создания графических интерфейсов, работы с изображениями, электронными книгами и файлами Word-и многое другое.
Некоторые из них хорошо известны, другие менее известны, но все эти библиотеки Python заслуживают места в вашем наборе инструментов.
ApacheLibcloud
Назначение Libcloud: Доступ к нескольким облачным провайдерам через единый, согласованный, унифицированный API.
Зачем использовать Libcloud: Облачные провайдеры все любят делать все по-своему, что делает единый механизм работы с десятками провайдеров огромной экономией времени и утешением от головной боли. API, доступные для вычислений, хранения данных, балансировки нагрузки и DNS, с поддержкой Python 2.x и Python 3.x, а также PyPy, JIT-компилятора для повышения производительности Python.
Arrow
Назначение Arrow: Более чистая обработка дат и времени в Python.
Зачем использоватьArrow: Работа с часовыми поясами, конверсиями дат, форматами дат и всем остальным — это уже головная боль. Добавьте стандартную библиотеку Python для работы с датой и временем, и вы еще больше усложните себе жизнь.
Arrow имеет четыре главных преимущества. Во-первых, эта библиотека является заменой модуля datetime Python. Это означает, что обычные вызовы функций, такие как .now() и .utcnow (), работают так, как ожидалось. Во-вторых, Arrow предоставляет методы для общих нужд, таких как сдвиг и преобразование часовых поясов. В третьих, Arrowпредоставляет “очеловеченную” информацию о дате/времени — например, возможность сказать, что что-то произошло “час назад” или произойдет “через два часа” без особых усилий. В-четвертых, данная библиотека может локализовать информацию о дате/времени.
Behold
Behold отвечает за надежную поддержку отладки в стиле печати в Python.
Есть один простой способ отладки в Python или почти на любом языке программирования, если на то пошло: вставить встроенные операторы печати. Но в то время как отладка печати не является проблемой в небольших программах, не так легко получить полезные результаты в больших, растянутых, многомодульных проектах.
Behold позволяет вам наложить единый внешний вид на выходные данные, пометить результаты, чтобы они могли быть отсортированы с помощью поиска или фильтров, и предоставить контексты между модулями, чтобы функции, которые происходят из одного модуля, могли быть должным образом отлажены в другом.
Обрабатывает многие общие сценарии, специфичные для Python, такие как печать внутреннего словаря объекта, раскрытие вложенных атрибутов, а также хранение и повторное использование результатов для сравнения в других точках процесса отладки.
Black
Назначение Black: форматирование кода Python в соответствии со строгим и почти полностью неизменным набором правил.
Зачем использовать Black: Python для форматирования кода, как YAPF, как правило, имеет множество настраиваемых параметров — длина линии, линии разделения варианты, обработка конечные запятые, и так далее. Библиотека Black применяет последовательный набор значений по умолчанию для тех правил, которые не могут быть изменены. Полученный форматированный код максимально согласован между кодовыми базами и между пользователями, с наименьшим возможным различием между редактируемыми файлами.
Данная библиотека требует некоторого привыкания, особенно если вы привередливы в отношении вертикальных пробелов, операторов с глубокими вложениями (например, списков внутри списков) и других параметров форматирования. Но, в конечном счете, это освобождает вас от необходимости думать о форматировании, позволяя вам сосредоточиться на вашем коде.
Bottle
Назначение Bottle: Легкие и быстрые веб-приложения.
Зачем использовать Bottle: Bottle при создании веб-приложений даст вам не больше, чем нужно.
Маршрутизация, шаблоны, доступ к данным запросов и ответов, поддержка нескольких типов серверов от простого старого CGI и выше, а также поддержка более продвинутых функций, таких как WebSockets—всё это здесь. Объем работы, необходимый для начала работы, также минимален, а дизайн библиотеки элегантно расширяется, когда требуются более продвинутые функции.
Click
Назначение Click: Позволяет быстро создавать интерфейсы командной строки для приложений Python.
Зачем использовать Click: GUI удобны, но CLI-это то, где находится реальная сила. Однако создание надежного CLI вряд ли легок, и набор инструментов по умолчанию для сбора и использования параметров командной строки в Python примитивен.
Если вы просто хотите создать несколько базовых команд, вы можете сделать это с помощью нескольких строк кода. Если вы хотите получить более расширенное поведение, например, отдельно запрашивать дополнительную информацию о параметре или получать значения из переменных среды, нажмите кнопку покрыто. Click также поддерживает цвета терминалов через библиотеку colorama и может быть расширен с помощью сторонних плагинов.
EbookLib
Назначение EbookLib: Чтение и запись файлов .epub.
Зачем использовать EbookLib: Создание электронных книг обычно требует использования того или иного инструмента командной строки. EbookLib предоставляет инструменты управления и API, которые упрощают этот процесс. Он работает с файлами EPUB 2 и EPUB 3, а поддержка Kindle находится в стадии разработки.
Предоставьте изображения и текст (последний в формате HTML), и EbookLib может собрать эти фрагменты в электронную книгу с главами, вложенным оглавлением, изображениями, HTML-разметкой и т. д. Также поддерживаются данные обложки, корешка и таблицы стилей. Подключаемая система позволяет третьим сторонам расширять поведение библиотеки.
Если вам не нужно все, что может предложить EbookLib, попробуйте Mkepub. Mkepub упаковывает основные функции сборки электронных книг в библиотеку размером всего в несколько килобайт. Одним из незначительных недостатков Mkepub является то, что он требует Jinja2, который, в свою очередь, требует соответствующей библиотеки MarkupSafe.
Gooey
Назначение Gooey: дать консольные программы на Python для платформы родного графического интерфейса.
Зачем использовать Gooey: Представление пользователям, особенно рядовым пользователям, интерфейса командной строки-один из лучших способов препятствовать использованию вашего приложения. Мало кому, кроме хардкорного гика, нравится выяснять, какие варианты передавать и в каком порядке.Gooey принимает аргументы, ожидаемые библиотекой argparse, и представляет их пользователям в виде графического интерфейса через библиотеку wxPython.
Все параметры помечены и отображаются с соответствующими элементами управления (например, раскрывающимся списком для аргумента с несколькими вариантами). Очень мало дополнительного кодирования — один include и один декоратор — требуется, чтобы заставить его работать, предполагая, что вы уже используете argparse.
Invoke
Назначение Invoke: Python icremote execution – то есть выполнение задач администратора с помощью библиотеки Python.
Зачем использовать Invoke: Использование Python в качестве замены обычных задач сценариев оболочки. Invoke предоставляет высокоуровневый API для выполнения команд оболочки и управления задачами командной строки.Будьте осторожны, чтобы не допустить передачи ненадежных входных данных.
Nuitka
Назначение Nuitka: Компиляция Python в автономные исполняемые файлы языка Си.
Зачем использовать Nuitka: Как и Cython, Nuitka компилирует Python в C. Однако, в то время как Cython требует своего собственного пользовательского синтаксиса для достижения наилучших результатов и фокусируется в основном на математических и статистических приложениях, Nuitka работает с любой программой Python как есть, компилирует ее в C и создает однофайловый исполняемый файл, применяя оптимизацию там, где это возможно.
Nuitka все еще находится на ранних стадиях, и многие из запланированных оптимизаций еще впереди. Тем не менее, это удобный способ превратить скрипт Python в быстрое приложение командной строки.
Numba
Назначение Numba: выборочное ускорение математических функций.
Зачем использовать Numba: Мир Python включает в себя целую субкультуру пакетов для ускорения математических операций. Например, NumPy работает, обертывая высокоскоростные библиотеки C в интерфейс Python, а Cython компилирует Python в C с дополнительным набором текста для ускорения производительности.
Numba в свою очередь, является наиболее удобным, так как он позволяет выборочно ускорять функции Python с помощью всего лишь декоратора. Для дальнейшего повышения скорости вы можете использовать общие идиомы Python для распараллеливания рабочих нагрузок или использовать инструкции SIMD или GPU.
Обратите внимание, что вы можете использовать NumPy с Numba. В конце концов, у NumPy есть много готовых алгоритмов, которые не нужно реализовывать с нуля. Но для небольших алгоритмов “ядра” Numba во многих случаях во много раз превосходит NumPy.
Openpyxl
Назначение Openpyxl: Чтение, запись и манипуляция файлами Excel.
Зачем использовать OpenPyxl: Попросите кого-нибудь назвать три инструмента, которые используют numbercrunchers в своей работе, скорее всего, вы получите Python, R и Excel. Excel (пока) не имеет собственного подключения к Python, но сторонние пакеты преодолели этот разрыв различными способами.
Openpyxl работает путем изменения файлов Excel, а не путем прямого манипулирования.
С помощью Openpyxl можно автоматизировать создание электронных таблиц и книг, генерировать формулы, заполнять ячейки этими формулами и выполнять множество других операций. Вы также можете изменить свойства объектов Excel, такие как стили ячеек и условное форматирование. Любой, кто проводит значительное время, глядя на электронные таблицы, найдет здесь что-то полезное.