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
« prev ^ index » next coverage.py v7.6.1, created at 2024-08-05 19:04 +0200
1"""
2Some type magic.
3"""
5import typing
6from typing import Annotated, Optional
8from pydal2sql_core import get_typing_args
9from pydal2sql_core.types import SUPPORTED_OUTPUT_FORMATS
10from typer import Argument, Option
12from .typer_support import DB_Types
14T = typing.TypeVar("T")
16OptionalArgument = Annotated[Optional[T], Argument()]
17# usage: (myparam: OptionalArgument[some_type])
19OptionalOption = Annotated[Optional[T], Option()]
20# usage: (myparam: OptionalOption[some_type])
22DBType_Option = Annotated[DB_Types, Option("--db-type", "--dialect", "-d")]
24Tables_Option = Annotated[
25 Optional[list[str]],
26 Option("--table", "--tables", "-t", help="One or more table names, default is all tables."),
27]
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]