How do I achieve the syntax similar to
my_app --named_arg1=val1 -- misc_arg1 misc_arg2 ...
or the same without --?
--
A solution with 3.9+ code is:
from typing import Annotated import typer def main( named_arg1: Annotated[str, typer.Option("--named_arg1")], misc_args: Annotated[list[str], typer.Argument()] = None, ): for misc_arg in misc_args or []: print(misc_arg) if __name__ == "__main__": typer.run(main)
Then we can support the following commands:
python my_app.py --named_arg1=val1 python my_app.py --named_arg1=val1 misc_arg1 python my_app.py --named_arg1=val1 misc_arg1 misc_arg2 python my_app.py --named_arg1=val1 misc_arg1 misc_arg2 ...
A solution with 3.9+ code is:
Then we can support the following commands: