Источник: Nuances of Programming
Народная мудрость гласит: “Зачем изобретать колесо?”. Библиотеки — лучшее тому подтверждение. Они помогают просто написать сложную и трудоемкую функциональность. На мой взгляд, лучшие проекты создаются с помощью лучших из доступных библиотек.
Не думаю, что Python нуждается в представлении. Это один из самых используемых и универсальных языков программирования. Собранные здесь 7 полезных CLI-библиотек Python помогут вам в разработке проектов.
1. Typer
Это одна из самых популярных библиотек на GitHub с более чем 10,5 тыс. звезд. Она поможет легко разрабатывать CLI-приложения, которые понравятся пользователям. Typer предоставляет простой способ создания CLI-приложений на Python благодаря автоматической справке, автоматическому заполнению и преобразованию входных и выходных данных. Эта библиотека поддерживает различные типы и стили команд и аргументов. Ознакомьтесь с Typer здесь.
2. Click
Эта библиотека помогает создавать интерфейсы командной строки компонуемым способом с минимальным количеством кода. Название “Click” расшифровывается как “command line interface creation kit” (набор для создания интерфейса командной строки).
Click отличается гибкой конфигурацией и поставляется с хорошими настройками по умолчанию. Этот модуль способен сделать процесс написания инструментов командной строки быстрым и увлекательным, а также предотвратить разочарование, вызванное невозможностью реализовать задуманный API CLI. На GitHub у Click более 13,5 тыс. звезд. Вы можете ознакомиться с этой библиотекой здесь.
3. Fire
Эта библиотека от Google предназначена для автоматической генерации интерфейсов командной строки из абсолютно любого объекта Python. Она предоставляет много возможностей, таких как инструмент для разработки и отладки кода Python, изучение существующего кода и превращение чужого кода в CLI, облегчение перехода между Bash и Python и многое другое. На GitHub у нее более 24 тыс. звезд. Вы можете ознакомиться с этой библиотекой здесь.
4. Tqdm
Отображение индикатора выполнения при загрузке данных — один из распространенных способов создания хорошего пользовательского опыта. Эта библиотека предоставляет быстрый, расширяемый индикатор выполнения для Python и CLI. Tqdm использует умные алгоритмы для предсказания оставшегося времени и пропуска ненужных показов итераций, что позволяет в большинстве случаев снизить накладные расходы. На GitHub у нее более 24,5 тыс. звезд. Ознакомиться с этой библиотекой можно здесь.
5. Plumbum
Вы когда-нибудь мечтали о том, чтобы компактность скриптов оболочки была воплощена в реальном языке программирования? Эта библиотека поможет осуществить вашу мечту. Помимо оболочкоподобного синтаксиса и удобных шорткатов, библиотека обеспечивает локальное и удаленное выполнение команд (через SSH), локальные и удаленные пути к файловой системе, упрощенное управление рабочим каталогом и средой, а также набор инструментов для программирования CLI. Она имеет более 2,5 тыс. звезд на GitHub. Вы можете ознакомиться с этой библиотекой здесь.
6. Argcomplete
Кажется, все предпочитают автозаполнение. Это упрощает жизнь. Библиотека Argcomplete предоставляет возможность добавить заполнение вкладок в приложения CLI с автоматической генерацией скриптов завершения и хуков для различных оболочек. Она поддерживает различные режимы и конфигурации. Это особенно полезно, если программа обладает множеством опций или подпарсеров и может динамически предлагать завершения для значений аргументов/опций (например, когда пользователь просматривает ресурсы в сети). У библиотеки более 1 тыс. звезд на GitHub. Ознакомьтесь с ней здесь.
7. Termgraph
Если нужно создавать ASCII-графику и диаграммы в CLI-приложении, то Termgraph — подходящий для этого ресурс. Как вы уже догадались, он предоставляет возможность создания ASCII-графов и диаграмм с различными типами и стилями графики и форматами данных. Termgraph поддерживает гистограммы, цветные диаграммы, эмодзи и другие типы графики. У этой библиотеки более 3 тыс. звезд на GitHub. Ознакомиться с ней можно здесь.
Читайте также:
Перевод статьи Farhan Tanvir: 7 Best Python CLI library You Should Know in 2023