python: haga clic en la opción de contraseña solo si el argumento es igual a algo

Al hacer clic, estoy definiendo este comando:

@click.command('time', short_help='Timesheet Generator')
@click.argument('time_command', type=click.Choice(['this', 'last']))
@click.argument('data_mode', type=click.Choice(['excel', 'exchange']), default='exchange')
@click.option('--password', prompt=True, hide_input=True, confirmation_prompt=False)
@pass_context
def cli(ctx, time_command, data_mode, password):

El problema que tengo es que solo quiero que se solicite la contraseña si el argumento data_mode es igual a exchange. ¿Cómo puedo lograr esto?

Mejor respuesta
Puedes intentar dividir esto en múltiples comandos.
Por ejemplo, el tiempo sería el comando del punto de entrada. Entonces time_excel o time_exchange se invocarían por tiempo según el valor de data_mode. Uno podría tener un mensaje de contraseña mientras que el otro no.

Ver Invoking Other Commands en la documentación de Click.

Por favor indique la dirección original:python: haga clic en la opción de contraseña solo si el argumento es igual a algo - Código de registro