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

13 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-04-14 00:18 +0000

1from typing import Optional 1iabcdefgh

2 

3import typer 1iabcdefgh

4 

5__version__ = "0.1.0" 1iabcdefgh

6 

7 

8def version_callback(value: bool): 1iabcdefgh

9 if value: 1iabcdefgh

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

11 raise typer.Exit() 1iabcdefgh

12 

13 

14def name_callback(name: str): 1iabcdefgh

15 if name != "Camila": 1iabcdefgh

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

17 return name 1iabcdefgh

18 

19 

20def main( 1abcdefgh

21 name: str = typer.Option(..., callback=name_callback), 

22 version: Optional[bool] = typer.Option( 

23 None, "--version", callback=version_callback, is_eager=True 

24 ), 

25): 

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

27 

28 

29if __name__ == "__main__": 1iabcdefgh

30 typer.run(main) 1iabcdefgh