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

15 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

4 

5__version__ = "0.1.0" 1abcdefghi

6 

7app = typer.Typer() 1abcdefghi

8 

9 

10def version_callback(value: bool): 1abcdefghi

11 if value: 1abcdefghi

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

13 raise typer.Exit() 1abcdefghi

14 

15 

16def name_callback(name: str): 1abcdefghi

17 if name != "Camila": 1abcdefghi

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

19 return name 1abcdefghi

20 

21 

22@app.command() 1abcdefghi

23def main( 1abcdefghi

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

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

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

27 ), 

28): 

29 print(f"Hello {name}") 1abcdefghi

30 

31 

32if __name__ == "__main__": 1abcdefghi

33 app() 1abcdefghi