Командный интерфейс с sysargv, argparse, docopts и Typer

Улучшение командного интерфейса с использованием sys.argv, argparse, docopts и Typer

4 способа передачи аргументов в ваши сценарии на Python

Фото от Florian Olivo на Unsplash

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

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

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

Простым решением будет создание нескольких основных сценариев. Однако это приведет к дублированию кода и сложности в поддержке нескольких сценариев в долгосрочной перспективе — учитывая, что может быть много комбинаций изменений. Лучшим решением будет создание основного сценария, который принимает аргументы в виде значений параметров или флагов, и последующий запуск соответствующего типа конвейера через интерфейс командной строки (CLI).

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

Содержание

  • Использование sysargv: Самый простой способ
  • Использование argparse: Самый распространенный способ
  • Использование docopts: Альтернативный способ
  • Использование Typer: Новейший и наиболее простой способ

Использование sysargv

Самый простой способ передачи аргументов

Аргументы могут быть переданы и прочитаны напрямую с помощью sysargv, что делает его самым простым способом передачи нескольких аргументов.

Демонстрация