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

14 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-03-10 00:15 +0000

1from typing import Optional 1iabcdefgh

2 

3import typer 1iabcdefgh

4from typing_extensions import Annotated 1iabcdefgh

5 

6__version__ = "0.1.0" 1iabcdefgh

7 

8 

9def version_callback(value: bool): 1iabcdefgh

10 if value: 1iabcdefgh

11 print(f"Awesome CLI Version: {__version__}") 1iabcdefgh

12 raise typer.Exit() 1iabcdefgh

13 

14 

15def name_callback(name: str): 1iabcdefgh

16 if name != "Camila": 1iabcdefgh

17 raise typer.BadParameter("Only Camila is allowed") 1iabcdefgh

18 return name 1iabcdefgh

19 

20 

21def main( 1abcdefgh

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

23 version: Annotated[ 

24 Optional[bool], 

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

26 ] = None, 

27): 

28 print(f"Hello {name}") 1iabcdefgh

29 

30 

31if __name__ == "__main__": 1iabcdefgh

32 typer.run(main) 1iabcdefgh