es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El argumento no genera un error por argumento faltante.

Tengo una herramienta de línea de comandos y tengo un “click.argument” en uno de los comandos.

Inicialmente, tenía esto:

@click.argument(
    'archivo',
    type=click.Path(exists=True),
)

Si no agregaba el argumento “archivo” en el comando, solía arrojar un error como este:

Error: Falta el argumento 'ARCHIVO'.

Ahora, agregué la posibilidad de tener un número ilimitado de argumentos al agregar “nargs=-1” de esta manera:

@click.argument(
    'archivo',
    nargs=-1,
    type=click.Path(exists=True),
)

Ahora, si no paso el argumento “archivo”, no obtengo el mensaje de error como antes.

¿Qué me puede estar faltando?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Al agregar nargs=-1, estás permitiendo que el comando acepte múltiples argumentos para el parámetro file. Esto significa que si no proporcionas argumentos, file será simplemente una tupla vacía en lugar de mostrar un mensaje de error.

    Sin embargo, si aún deseas exigir el requisito de al menos un argumento, puedes agregar required=True al decorador click.argument() de esta manera:

    @click.argument(
        'file',
        nargs=-1,
        type=click.Path(exists=True),
        required=True,
    )
    

    Esto hará que al menos se proporcione un argumento para file, de lo contrario, el comando mostrará un mensaje de error.

Comments are closed.