Рассмотрим следующий игрушечный пример:
cat extended_help.py
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-H", "--help-all", action = "version",
help = """show extended help message (incl. advanced
parameters) and exit""",
version = "This is just a dummy implementation.")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
advanced_args = ap.add_argument_group("advanced parameters",
"""These parameters are for advanced
users with special needs only. To make
the help more accessible, `%(prog)s
-h|--help` should not include these
parameters, while `%(prog)s
-H|--help-all` should include them (in
addition to those included by `%(prog)s
-h|--help`.""")
common_args.add_argument("-f", "--foo", metavar = "",
help = "the very common Foo parameter")
common_args.add_argument("--flag", action = "store_true",
help = "a flag enabling a totally normal option")
advanced_args.add_argument("-b", "--bar", metavar = "",
help = "the rarely needed Bar parameter")
advanced_args.add_argument("-B", "--baz", metavar = "",
help = "the even more obscure Baz parameter")
advanced_args.add_argument("--FLAG", action = "store_true",
help = "a flag for highly advanced users only")
ap.parse_args()
python extended_help.py -h
печатает
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show this help message and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
advanced parameters:
These parameters are for advanced users with special needs only. To make the help more accessible, `extended_help.py -h|--help` should not include these parameters, while
`extended_help.py -H|--help-all` should include them (in addition to those included by `extended_help.py -h|--help`.
-b, --bar the rarely needed Bar parameter
-B, --baz the even more obscure Baz parameter
--FLAG a flag for highly advanced users only
в то время как
python extended_help.py -H
генерирует только сообщение-заполнитель
This is just a dummy implementation.
Как мне нужно изменить Extended_help.py, чтобы
python extended_help.py -h
только печать
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show this help message and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
и иметь
python extended_help.py -H
воспроизвести полное справочное сообщение, напечатанное в данный момент
python extended_help.py -h
?
Я ищу решение, позволяющее избежать ручного дублирования справочных сообщений (сообщений определенных аргументов).
изменить:
Я знаю, что могу заменить -H на -h следующим образом:
import argparse
ap = argparse.ArgumentParser(add_help = False)
ap.add_argument("-h", "--help", action = "version",
help = "show help message (common parameters only) and exit",
version = """I know I could add the entire (short) help here
but I'd like to avoid that.""")
ap.add_argument("-H", "--help-all", action = "help",
help = """show extended help message (incl. advanced
parameters) and exit""")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
# The rest would be the same as above.
Так,
python extended_help.py -H
уже работает как задумано:
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show help message (common parameters only) and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
advanced parameters:
These parameters are for advanced users with special needs only. To make the help more accessible, `extended_help.py -h|--help` should not include these parameters, while
`extended_help.py -H|--help-all` should include them (in addition to those included by `extended_help.py -h|--help`.
-b, --bar the rarely needed Bar parameter
-B, --baz the even more obscure Baz parameter
--FLAG a flag for highly advanced users only
Однако теперь
python extended_help.py -h
печатается только заполнитель:
I know I could add the entire help here but I'd like to avoid that.
Мне удалось подобраться достаточно близко:
import argparse
ap = argparse.ArgumentParser(add_help = False, conflict_handler = "resolve")
ap.add_argument("-h", "--help", action = "help",
help = "show help message (common parameters only) and exit")
ap.add_argument("-H", "--help-all", action = "help",
help = """show extended help message (incl. advanced
parameters) and exit""")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
common_args.add_argument("-f", "--foo", metavar = "",
help = "the very common Foo parameter")
common_args.add_argument("--flag", action = "store_true",
help = "a flag enabling a totally normal option")
ap.add_argument("-h", "--help", action = "version", version = ap.format_help())
advanced_args = ap.add_argument_group("advanced parameters",
"""These parameters are for advanced
users with special needs only. To make
the help more accessible, `%(prog)s
-h|--help` should not include these
parameters, while `%(prog)s
-H|--help-all` should include them (in
addition to those included by `%(prog)s
-h|--help`.""")
advanced_args.add_argument("-b", "--bar", metavar = "",
help = "the rarely needed Bar parameter")
advanced_args.add_argument("-B", "--baz", metavar = "",
help = "the even more obscure Baz parameter")
advanced_args.add_argument("--FLAG", action = "store_true",
help = "a flag for highly advanced users only")
ap.parse_args()
Это фиксирует справочное сообщение перед добавлением дополнительных аргументов и перезаписывает строку «версия» флага -h|--help (ab-), используемую для хранения/печати краткого помогите.
python extended_help.py -H
уже работает как задумано, но
python extended_help.py -h
проглатывает все разрывы строк и пробелы из справочного сообщения:
usage: extended_help.py [-h] [-H] [-f ] [--flag] options: -h, --help show help message (common parameters only) and exit -H, --help-all show extended help message (incl.
advanced parameters) and exit common parameters: These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters. -f, --foo
the very common Foo parameter --flag a flag enabling a totally normal option
Подробнее здесь: https://stackoverflow.com/questions/791 ... ser-module
Расширенная справка, основанная на группах аргументов с использованием модуля Python argparser ⇐ Python
Программы на Python
1731510452
Anonymous
Рассмотрим следующий игрушечный пример:
cat extended_help.py
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-H", "--help-all", action = "version",
help = """show extended help message (incl. advanced
parameters) and exit""",
version = "This is just a dummy implementation.")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
advanced_args = ap.add_argument_group("advanced parameters",
"""These parameters are for advanced
users with special needs only. To make
the help more accessible, `%(prog)s
-h|--help` should not include these
parameters, while `%(prog)s
-H|--help-all` should include them (in
addition to those included by `%(prog)s
-h|--help`.""")
common_args.add_argument("-f", "--foo", metavar = "",
help = "the very common Foo parameter")
common_args.add_argument("--flag", action = "store_true",
help = "a flag enabling a totally normal option")
advanced_args.add_argument("-b", "--bar", metavar = "",
help = "the rarely needed Bar parameter")
advanced_args.add_argument("-B", "--baz", metavar = "",
help = "the even more obscure Baz parameter")
advanced_args.add_argument("--FLAG", action = "store_true",
help = "a flag for highly advanced users only")
ap.parse_args()
python extended_help.py -h
печатает
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show this help message and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
advanced parameters:
These parameters are for advanced users with special needs only. To make the help more accessible, `extended_help.py -h|--help` should not include these parameters, while
`extended_help.py -H|--help-all` should include them (in addition to those included by `extended_help.py -h|--help`.
-b, --bar the rarely needed Bar parameter
-B, --baz the even more obscure Baz parameter
--FLAG a flag for highly advanced users only
в то время как
python extended_help.py -H
генерирует только сообщение-заполнитель
This is just a dummy implementation.
Как мне нужно изменить Extended_help.py, чтобы
python extended_help.py -h
только печать
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show this help message and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
и иметь
python extended_help.py -H
воспроизвести полное справочное сообщение, напечатанное в данный момент
python extended_help.py -h
?
Я ищу решение, позволяющее избежать ручного дублирования справочных сообщений (сообщений определенных аргументов).
изменить:
Я знаю, что могу заменить -H на -h следующим образом:
import argparse
ap = argparse.ArgumentParser(add_help = False)
ap.add_argument("-h", "--help", action = "version",
help = "show help message (common parameters only) and exit",
version = """I know I could add the entire (short) help here
but I'd like to avoid that.""")
ap.add_argument("-H", "--help-all", action = "help",
help = """show extended help message (incl. advanced
parameters) and exit""")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
# The rest would be the same as above.
Так,
python extended_help.py -H
уже работает как задумано:
usage: extended_help.py [-h] [-H] [-f ] [--flag] [-b ] [-B ] [--FLAG]
options:
-h, --help show help message (common parameters only) and exit
-H, --help-all show extended help message (incl. advanced parameters) and exit
common parameters:
These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters.
-f, --foo the very common Foo parameter
--flag a flag enabling a totally normal option
advanced parameters:
These parameters are for advanced users with special needs only. To make the help more accessible, `extended_help.py -h|--help` should not include these parameters, while
`extended_help.py -H|--help-all` should include them (in addition to those included by `extended_help.py -h|--help`.
-b, --bar the rarely needed Bar parameter
-B, --baz the even more obscure Baz parameter
--FLAG a flag for highly advanced users only
Однако теперь
python extended_help.py -h
печатается только заполнитель:
I know I could add the entire help here but I'd like to avoid that.
Мне удалось подобраться достаточно близко:
import argparse
ap = argparse.ArgumentParser(add_help = False, conflict_handler = "resolve")
ap.add_argument("-h", "--help", action = "help",
help = "show help message (common parameters only) and exit")
ap.add_argument("-H", "--help-all", action = "help",
help = """show extended help message (incl. advanced
parameters) and exit""")
common_args = ap.add_argument_group("common parameters",
"""These parameters are typically
enough to run the tool. `%(prog)s
-h|--help` should list these
parameters.""")
common_args.add_argument("-f", "--foo", metavar = "",
help = "the very common Foo parameter")
common_args.add_argument("--flag", action = "store_true",
help = "a flag enabling a totally normal option")
ap.add_argument("-h", "--help", action = "version", version = ap.format_help())
advanced_args = ap.add_argument_group("advanced parameters",
"""These parameters are for advanced
users with special needs only. To make
the help more accessible, `%(prog)s
-h|--help` should not include these
parameters, while `%(prog)s
-H|--help-all` should include them (in
addition to those included by `%(prog)s
-h|--help`.""")
advanced_args.add_argument("-b", "--bar", metavar = "",
help = "the rarely needed Bar parameter")
advanced_args.add_argument("-B", "--baz", metavar = "",
help = "the even more obscure Baz parameter")
advanced_args.add_argument("--FLAG", action = "store_true",
help = "a flag for highly advanced users only")
ap.parse_args()
Это фиксирует справочное сообщение перед добавлением дополнительных аргументов и перезаписывает строку «версия» флага -h|--help (ab-), используемую для хранения/печати краткого помогите.
python extended_help.py -H
уже работает как задумано, но
python extended_help.py -h
проглатывает все разрывы строк и пробелы из справочного сообщения:
usage: extended_help.py [-h] [-H] [-f ] [--flag] options: -h, --help show help message (common parameters only) and exit -H, --help-all show extended help message (incl.
advanced parameters) and exit common parameters: These parameters are typically enough to run the tool. `extended_help.py -h|--help` should list these parameters. -f, --foo
the very common Foo parameter --flag a flag enabling a totally normal option
Подробнее здесь: [url]https://stackoverflow.com/questions/79185339/extended-help-based-on-argument-groups-using-pythons-argparser-module[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия