svarog package

Subpackages

Submodules

svarog.checks module

svarog.checks.has_annotated_init(type_: Type[svarog.checks.T])bool[source]
svarog.checks.is_alias(type_: Any)bool[source]
svarog.checks.is_bare(type_: Any)bool[source]
svarog.checks.is_list(type_: Any)bool[source]
svarog.checks.is_literal(type_: Any)bool[source]
svarog.checks.is_mapping(type_: Any)bool[source]
svarog.checks.is_mapping_alias(type_: Any)bool[source]
svarog.checks.is_sequence(type_: Any)bool[source]
svarog.checks.is_union(type_: Union)bool[source]

svarog.compat module

class svarog.compat.ForwardRef(arg, is_argument=True)[source]

Bases: _Final

Internal wrapper to hold a forward reference.

svarog.compat.get_args(tp)[source]

Get type arguments with all substitutions performed.

For unions, basic simplifications used by Union constructor are performed. Examples:

get_args(Dict[str, int]) == (str, int)
get_args(int) == ()
get_args(Union[int, Union[T, int], str][int]) == (int, str)
get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int])
get_args(Callable[[], T][int]) == ([], int)
svarog.compat.get_origin(tp)[source]

Get the unsubscripted version of a type.

This supports generic types, Callable, Tuple, Union, Literal, Final and ClassVar. Return None for unsupported types. Examples:

get_origin(Literal[42]) is Literal
get_origin(int) is None
get_origin(ClassVar[int]) is ClassVar
get_origin(Generic) is Generic
get_origin(Generic[T]) is Generic
get_origin(Union[T, int]) is Union
get_origin(List[Tuple[T, T]][int]) == list

svarog.forges module

svarog.forges.filter_cammel_case(_: Any, data: Mapping[str, Any])Mapping[str, Any][source]
svarog.forges.forge_annotated_init(type_: Type[svarog.forges.T], data: Any, forge: Callable[[Type[svarog.types.T], Any], svarog.types.T])svarog.forges.T[source]
svarog.forges.forge_list(type_: Type[List], list_: List, forge: Callable[[Type[svarog.types.T], Any], svarog.types.T])List[source]
svarog.forges.forge_literal(_: Any, literal: str, __: Any)str[source]
svarog.forges.forge_mapping(type_: Type[Mapping], mapping: Mapping, forge: Callable[[Type[svarog.types.T], Any], svarog.types.T])Mapping[source]
svarog.forges.forge_none(type_: None, data: Any, forge: Callable[[Type[svarog.types.T], Any], svarog.types.T])None[source]
svarog.forges.forge_union(union: Union, data: Any, forge: Callable[[Type[svarog.types.T], Any], svarog.types.T])Optional[svarog.forges.T][source]

svarog.svarog module

class svarog.svarog.Svarog(snake_case: bool = False)[source]

Bases: object

add_filter(predicate: Callable[[Any], bool], filter: Callable[[Any, Any], Any])None[source]
enable_snake_case()[source]
forge(type_: Type[svarog.svarog.T], data: Any)svarog.svarog.T[source]
register_forge(type_: Type, forge: Callable[[Any, Any, Callable[[Type[svarog.types.T], Any], svarog.types.T]], svarog.types.T])None[source]
register_mold(check: Callable[[Any], bool], forge: Callable[[Any, Any, Callable[[Type[svarog.types.T], Any], svarog.types.T]], svarog.types.T])None[source]

svarog.types module

exception svarog.types.CannotDispatch[source]

Bases: Exception

Module contents

Top-level package for Svarog.

svarog.forge(type_: Type[svarog.svarog.T], data: Any)svarog.svarog.T