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

15 statements  

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

1from typing import Annotated, Optional 1abcdefgh

2 

3import typer 1abcdefgh

4 

5__version__ = "0.1.0" 1abcdefgh

6 

7app = typer.Typer() 1abcdefgh

8 

9 

10def version_callback(value: bool): 1abcdefgh

11 if value: 1abcdefgh

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

13 raise typer.Exit() 1abcdefgh

14 

15 

16def name_callback(name: str): 1abcdefgh

17 if name != "Camila": 1abcdefgh

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

19 return name 1abcdefgh

20 

21 

22@app.command() 1abcdefgh

23def main( 1abcdefgh

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

25 version: Annotated[ 

26 Optional[bool], 

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

28 ] = None, 

29): 

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

31 

32 

33if __name__ == "__main__": 1abcdefgh

34 app() 1abcdefgh