eyconf.validation.backends.json_schema.JsonSchemaValidator

class eyconf.validation.backends.json_schema.JsonSchemaValidator(allow_additional: bool = False)

JSON Schema validation backend for dataclass schemas using Draft 2020-12.

Features full support for Annotated, Literal, NotRequired, Unions, nested dataclasses, aliases via metadata, and Sequence types. Cached schema generation.

Attributes

allow_additional

Methods

__init__([allow_additional])

to_json_schema(schema[, check_schema])

Convert TypedDict/dataclass to JSON Schema.

validate(data, schema)

Protocol match: Validate data against schema-derived JSON Schema.

validate_and_construct(data, schema)

Validate and construct dataclass instance.

__init__(allow_additional: bool = False) None
to_json_schema(schema: type[D], check_schema: bool = True) dict[str, Any]

Convert TypedDict/dataclass to JSON Schema.

Parameters:
  • schema (type[D]) – Dataclass/TypedDict type to convert.

  • check_schema (bool, default=True) – Validate schema with Draft202012Validator.

  • allow_additional (bool or None, default=None) – TODO: Allow extra properties; uses __allow_additional__ if None.

Returns:

Draft-2020-12 compliant schema.

Return type:

JsonSchema

Raises:

Notes

Cached for repeated calls.

validate(data: D | dict[str, Any], schema: type[D]) None

Protocol match: Validate data against schema-derived JSON Schema.

validate_and_construct(data: D | dict[str, Any], schema: type[D]) D

Validate and construct dataclass instance.