Coverage for docs_src/options/version/tutorial003_an.py: 100%
16 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-19 20:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-19 20:29 +0000
1from typing import Optional 1abcdefghi
3import typer 1abcdefghi
4from typing_extensions import Annotated 1abcdefghi
6__version__ = "0.1.0" 1abcdefghi
8app = typer.Typer() 1abcdefghi
11def version_callback(value: bool): 1abcdefghi
12 if value: 1abcdefghi
13 print(f"Awesome CLI Version: {__version__}") 1abcdefghi
14 raise typer.Exit() 1abcdefghi
17def name_callback(name: str): 1abcdefghi
18 if name != "Camila": 1abcdefghi
19 raise typer.BadParameter("Only Camila is allowed") 1abcdefghi
20 return name 1abcdefghi
23@app.command() 1abcdefghi
24def main( 1abcdefghi
25 name: Annotated[str, typer.Option(callback=name_callback)],
26 version: Annotated[
27 Optional[bool],
28 typer.Option("--version", callback=version_callback, is_eager=True),
29 ] = None,
30):
31 print(f"Hello {name}") 1abcdefghi
34if __name__ == "__main__": 1abcdefghi
35 app() 1abcdefghi