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

1from typing import Optional 1abcdefghi

2 

3import typer 1abcdefghi

4from typing_extensions import Annotated 1abcdefghi

5 

6__version__ = "0.1.0" 1abcdefghi

7 

8app = typer.Typer() 1abcdefghi

9 

10 

11def version_callback(value: bool): 1abcdefghi

12 if value: 1abcdefghi

13 print(f"Awesome CLI Version: {__version__}") 1abcdefghi

14 raise typer.Exit() 1abcdefghi

15 

16 

17def name_callback(name: str): 1abcdefghi

18 if name != "Camila": 1abcdefghi

19 raise typer.BadParameter("Only Camila is allowed") 1abcdefghi

20 return name 1abcdefghi

21 

22 

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

32 

33 

34if __name__ == "__main__": 1abcdefghi

35 app() 1abcdefghi