Coverage for src/pydal2sql/types.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-08-05 19:04 +0200

1""" 

2Some type magic. 

3""" 

4 

5import typing 

6from typing import Annotated, Optional 

7 

8from pydal2sql_core import get_typing_args 

9from pydal2sql_core.types import SUPPORTED_OUTPUT_FORMATS 

10from typer import Argument, Option 

11 

12from .typer_support import DB_Types 

13 

14T = typing.TypeVar("T") 

15 

16OptionalArgument = Annotated[Optional[T], Argument()] 

17# usage: (myparam: OptionalArgument[some_type]) 

18 

19OptionalOption = Annotated[Optional[T], Option()] 

20# usage: (myparam: OptionalOption[some_type]) 

21 

22DBType_Option = Annotated[DB_Types, Option("--db-type", "--dialect", "-d")] 

23 

24Tables_Option = Annotated[ 

25 Optional[list[str]], 

26 Option("--table", "--tables", "-t", help="One or more table names, default is all tables."), 

27] 

28 

29OutputFormat_Option = Annotated[ 

30 # Optional[SUPPORTED_OUTPUT_FORMATS], 

31 Optional[str], 

32 Option("--format", "--fmt", help=f"One of {get_typing_args(SUPPORTED_OUTPUT_FORMATS)}"), 

33]