Учитывая следующую программу:
#!/usr/bin/env python
import click
@click.command()
@click.argument("arg")
@click.option("--opt")
@click.option("--config_file", type=click.Path())
def main(arg, opt, config_file):
print("arg: {}".format(arg))
print("opt: {}".format(opt))
print("config_file: {}".format(config_file))
return
if __name__ == "__main__":
main()
Я могу запустить его с аргументами и параметрами, предоставленными через командную строку.
$ ./click_test.py my_arg --config_file my_config_file
arg: my_arg
opt: None
config_file: my_config_file
Как предоставить файл конфигурации (в ini
? yaml
? py
? json
?) для --config_file
и принять его содержимое в качестве значения аргументов и параметров?
Например, я хочу, чтобы my_config_file
содержал
opt: my_opt
и вывод программы показывает:
$ ./click_test.py my_arg --config_file my_config_file
arg: my_arg
opt: my_opt
config_file: my_config_file
Я нашел функцию callback
, которая показалась мне полезной, но я не смог найти способ изменить аргументы/параметры одного уровня для той же функции.