Skip to content

gufo.thor.validator

Config validator primitives.

ErrorContext

Error reporting context.

Usually used as singletone.

Example
with errors.context("section1"):
    ...
    with errors.context("subsection1"):
        ...
        errors.error("There is error")

check()

Check there is no errors.

Die with message if they are.

context(path)

Set current context.

Path is appended to existing context. .. can be used to set level up.

Examples:

with errors.context("xxx"):
    ...

copy()

Create copy of ErrorContext.

die(msg=None)

Dump errors and stop execution.

Parameters:

Name Type Description Default
msg str | None

Optional error message to add.

None

error(message, /, path=None)

Register error.

Errors registered in current context, if path is not set, otherwise - in path directly.

Parameters:

Name Type Description Default
message str

Error message.

required
path list[str] | None

Optional path to override current context.

None

from_errors(ctx)

Restore state from error context.

has_errors()

Check if errors are present.

Returns:

Name Type Description
True bool

If there is errors.

False bool

Otherwise

ErrorPoint dataclass

Error position.

__str__()

str() implementation.

as_int(data, name, /, required=True)

as_int(data: dict[str, Any], name: str, /, required: Literal[True]) -> int
as_int(data: dict[str, Any], name: str, /, required: Literal[False]) -> int | None

Extract int from dict.

Parameters:

Name Type Description Default
data dict[str, Any]

Data dict.

required
name str

parameter name.

required
required bool

Set or non set error if key is missed.

True

Returns:

Type Description
int | None

integer value, if possible.

as_ipv4(data, name, /, required=True)

as_ipv4(data: dict[str, Any], name: str, /, required: Literal[True]) -> IPv4Address
as_ipv4(data: dict[str, Any], name: str, /, required: Literal[False]) -> IPv4Address | None

Extract IPv4Address from dict.

Parameters:

Name Type Description Default
data dict[str, Any]

Data dict.

required
name str

parameter name.

required
required bool

Set or non set error if key is missed.

True

Returns:

Type Description
IPv4Address | None

integer value, if possible.

as_ipv4_prefix(data, name, /, required=True)

as_ipv4_prefix(data: dict[str, Any], name: str, /, required: Literal[True]) -> IPv4Prefix
as_ipv4_prefix(data: dict[str, Any], name: str, /, required: Literal[False]) -> IPv4Prefix | None

Extract IPv4Prefix from dict.

Parameters:

Name Type Description Default
data dict[str, Any]

Data dict.

required
name str

parameter name.

required
required bool

Set or non set error if key is missed.

True

Returns:

Type Description
IPv4Prefix | None

integer value, if possible.

as_str(data, name, /, required=True)

as_str(data: dict[str, Any], name: str, /, required: Literal[True]) -> str
as_str(data: dict[str, Any], name: str, /, required: Literal[False]) -> str | None

Extract string from dict.

Parameters:

Name Type Description Default
data dict[str, Any]

Data dict.

required
name str

parameter name.

required
required bool

Set or non set error if key is missed.

True