Coverage for docs_src / options / version / tutorial003_an_py310.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-02-09 12:36 +0000

1from typing import Annotated 1abcdefg

2 

3import typer 1abcdefg

4 

5__version__ = "0.1.0" 1abcdefg

6 

7app = typer.Typer() 1abcdefg

8 

9 

10def version_callback(value: bool): 1abcdefg

11 if value: 1abcdefg

12 print(f"Awesome CLI Version: {__version__}") 1abcdefg

13 raise typer.Exit() 1abcdefg

14 

15 

16def name_callback(name: str): 1abcdefg

17 if name != "Camila": 1abcdefg

18 raise typer.BadParameter("Only Camila is allowed") 1abcdefg

19 return name 1abcdefg

20 

21 

22@app.command() 1abcdefg

23def main( 1abcdefg

24 name: Annotated[str, typer.Option(callback=name_callback)], 

25 version: Annotated[ 

26 bool | None, 

27 typer.Option("--version", callback=version_callback, is_eager=True), 

28 ] = None, 

29): 

30 print(f"Hello {name}") 1abcdefg

31 

32 

33if __name__ == "__main__": 1abcdefg

34 app() 1abcdefg