Как правило, сначала вы должны использовать инструменты стандартной библиотеки Python. Добавлять другие библиотеки в проект можно только в том случае, если в стандартной библиотеке нет нужной вам функциональности.
В следующих разделах представлена более подробная информация о каждом инструменте, перечисленном в табл. 7.1.
Библиотека | Лицензия | Причины использовать |
---|---|---|
argparse | Лицензия PSF | Находится в стандартной библиотеке. Предоставляет стандартный способ анализа аргументов и параметров |
docopt | Лицензия MIT | Позволяет управлять форматом вспомогательного сообщения. Анализирует командную строку в соответствии с соглашениями, определенными в стандарте POSIX (http://bit.ly/utility-conventions) |
plac | BSD 3-clause | Автоматически генерирует вспомогательное сообщение на основе существующей сигнатуры функции. Анализирует аргументы командной строки в фоновом режиме, передавая их непосредственно вашей функции |
click | BSD 3-clause | Предоставляет декораторы для создания вспомогательного сообщения и анализатора (похож на plac). Позволяет объединять несколько субкоманд. Взаимодействует с другими надстройками Flask (click не зависит от Flask, но он изначально был написан для того, чтобы помочь пользователям вместе создавать инструменты для командной строки с помощью разных надстроек для Flask, при этом ничего не разрушая, поэтому уже используется в экосистеме Flask) |
clint | Лицензия Internet Software | Имеет такие возможности форматирования, как изменение цвета, добавление отступов и колоночное отображение текста. Позволяет выполнить проверку типов для данных, введенных интерактивно (например, с помощью регулярного выражения, а также для целого числа или пути). Дает прямой доступ к списку аргументов, предоставляя простые инструменты для фильтрации и группирования |
Consortium (ISC) | ||
cliff | Лицензия Apache 2.0 | Предоставляет структурированный фреймворк для крупных проектов Python, имеющих много субкоманд. Создает интерактивную среду для использования субкоманд без дополнительного кодирования |
argparse
Модуль argparse (заменяет устаревший optparse) применяется при анализе параметров командной строки. Интерфейс командной строки, предоставленный проектом HowDoI, использует argparse — вы можете обратиться к нему при создании собственного интерфейса командной строки.
Рассмотрим код генерации анализатора:
import argparse
#
#… пропускаем кучу кода…
#
def get_parser():
····parser = argparse.ArgumentParser(description='…truncated for brevity…')
····parser.add_argument('query', metavar='QUERY', type=str, nargs='*',
························help='the question to answer')
····parser.add_argument('-p','-pos',
························help='select answer in specified position (default: 1)',
························default=1, type=int)
····parser.add_argument('-a','-all', help='display the full text