Как стать автором
Обновить

Комментарии 18

Направление верное, советую взглянуть на plumbum, в частности его application и subapplications
Спасибо, взял на вооружение. Мощно, но, в моем текущем случае, проигрывает argparse тем, что создает внешнюю зависимость.
Вами проделана отличная работа! Интересно Ваше мнение по поводу этой библиотеки: github.com/docopt/docopt
Остроумно, как раз наткнулся на нее, пока писал статью и смотрел, что еще есть по теме. Но не вижу смысла добавлять внешние зависимости в свои скрипты, пока не столкнулся с реальными ограничениями стандартной библиотеки.
Интересно, оно дружит с локализацией?
Рекомендую не маяться с argparse, а сразу использовать покладистый click.
Я уже выше описал свою мотивацию, да и
parser = argparse.ArgumentParser()
parser.add_argument()
...
parser.add_argument()

не такая уж маята по-моему.
1. Описание парсера оторвано от реализации, что значительно усложняет понимание кода. Сопровождать такой код будет тяжело
2. Реализация многоуровневого вложения команд оставляет желать лучшего

Для чего-то очень простого и одноразового сойдет. Но если писать вокруг него целый проект, можно поискать решения получше.
Безногая японская школьница… картинка трындец
Отсутствие частей тела не является поводом для пропуска занятий! © у всех был такой препод
«Без руки и без ноги все равно вперед беги!» (с) мой физрук :)
Под кат бы эту картинку, а не так. В трекере появляется, немного настроение что ли портит (если мягче выразиться).
А что с ней не так? Две с половиной девицы, в центре явный муляж.
Вроде не муляж, а ечли и муляж, то физичный. Скорее у нее ноги в шкафчике. Видно что она, в отличии от остальных, на руках сильно висит.
Я тоже так сначала подумал, но открытой дверцы на фотографии не видно.
Я аргументацию про зависимости принял, но не могу не посоветовать (не вам, а читающим) еще и opster. Click конечно больше плюшек имеет, но opster сильно меньше.
Мне интересно, а что вы будете делать с argparse, если понадобится man‐страница (а лучше, сразу man page и страница в Sphinx’е)? Я видел pypi.python.org/pypi/sphinx-argparse, но, во‐первых, сгенерированные страницы мне не понравились (usage просто ужас, вёрстка на таблицах, которая в man страницах ещё хуже, чем в HTML), во‐вторых, мне нужно было добавить в создаваемую страницу секцию AUTHORS, причём автоматически созданных, а строки описаний аргументов немного изменить (чтобы не использовать в command --help ReST разметку), а в‐третьих, этот проект использует приватные API.

Т.е. в итоге я писал свой велосипед: (сразу говорю, поддерживает только те возможности argparse, что я использую в powerline) github.com/powerline/powerline/blob/6b0cd3d37c1bcf199bf0eb78752a20de9170797e/docs/source/powerline_automan.py. Большинство, кажется, считают, что man страницы не нужны — тот же pip её не имеет (использует optparse).

Интересно, а как с этим справляются остальные? В описании ни одной из альтернатив argparse я не увидел ничего про создание документации, отличной от --help. Есть bugs.python.org/issue14102 тоже для argparse, но прилагаемый код опять использует приватные API. Я же подменяю класс ArgumentParser, т.к. никаких публичных API для вытаскивания данных из argparse парсеров просто нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории