Создание команды click, которая принимает два разных набора аргументов - PullRequest
0 голосов
/ 02 марта 2019

Посредством щелчка пакета python у меня есть устаревший код, который выглядит следующим образом в командной строке:

toolName toolCommand arugment

Я обновил устаревший код для команды, чтобы теперь принимать три аргумента:

toolName toolCommand arugment1 аргумент2 аргумент3

Несмотря на то, что новый код соответствует новым стандартам, унаследованный код все еще полезен и может быть использован / необходим.Кто-нибудь знает, можно ли с помощью диспетчера пакетов click позволить пользователям решать, какие аргументы (устаревшие или новые стандарты) использовать для своих нужд?

1 Ответ

0 голосов
/ 04 марта 2019

Я решил использовать флаги кликов для решения этой проблемы.

Если присутствовал флаг для устаревшего кода, он выполнялся бы так, как если бы он был устаревшим.Если бы флаг присутствовал для модернизированного кода, он запустил бы код из последней версии.

Редактировать: еще лучше вы можете разбить его на подкоманды:

@click.group(invoke_without_command=False)
@click.pass_context
def cli(ctx):
    pass

@cli.command('subcommand_1', short_help='Function does x thing.')
#Arguments/Paramaters
.............
............
............
def subcommand_1:
    #Code

    #End of funcction

# write another subcommand
# write arguments/options
# define sub command

При вызове команды вы должны сделать:

имя_средства имя_команды имя_команды аргументы /варианты

...