CLI Arguments with Multiple Values

CLI arguments can also receive multiple values.

You can define the type of a CLI argument using typing.List.

from pathlib import Path
from typing import List

import typer

def main(files: List[Path], celebration: str):
    for path in files:
        if path.is_file():
            typer.echo(f"This file exists: {}")

if __name__ == "__main__":

And then you can pass it as many CLI arguments of that type as you want:

$ python ./ ./ woohoo!

This file exists:
This file exists:


We also declared a final CLI argument celebration, and it's correctly used even if we pass an arbitrary number of files first.


A List can only be used in the last command (if there are subcommands), as this will take anything to the right and assume it's part of the expected CLI arguments.