Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Click wouldn't let me pass multiple files, although it should be possible

I'm trying to use click for multiple files. For example:

@cli.command("test")
@click.argument('input', type=click.File('rb'))
def test(input):
    with click.progressbar(input, label='READING') as bar:
        for x in bar:
            pass

When I do something like this:

script test ~/ololo/*

I get:

Error: Got unexpected extra arguments ( ... listing all files in folder ...)
like image 507
wswld Avatar asked Jan 13 '16 09:01

wswld


1 Answers

You need to use nargs parameter. If it is set to -1, then an unlimited number of arguments is accepted: http://click.pocoo.org/6/arguments/#variadic-arguments

@cli.command("test")
@click.argument('input', nargs=-1, type=click.File('rb'))
def test(input):
    with click.progressbar(input, label='READING') as bar:
        for x in bar:
            pass
like image 133
r-m-n Avatar answered Nov 01 '22 09:11

r-m-n