adaptix.json_schema module¶
- class adaptix.json_schema.BuiltinJSONSchemaResolver(
- ref_generator: RefGenerator,
- ref_mangler: RefMangler,
Bases:
JSONSchemaResolver- resolve(
- root_schemas: Sequence[JSONSchema],
- *,
- local_ref_prefix: str,
- occupied_refs: Container[str],
- class adaptix.json_schema.BuiltinRefGenerator¶
Bases:
RefGenerator- generate_ref(
- json_schema: JSONSchema,
- loc_stack: LocStack,
- class adaptix.json_schema.CompoundRefMangler(
- base: RefMangler,
- wrapper: RefMangler,
Bases:
RefMangler- mangle_refs(
- occupied_refs: Container[str],
- common_ref: str,
- sources_groups: Sequence[LocalRefSourceGroup],
- class adaptix.json_schema.IndexRefMangler( )¶
Bases:
RefMangler- mangle_refs(
- occupied_refs: Container[str],
- common_ref: str,
- sources_groups: Sequence[LocalRefSourceGroup],
- class adaptix.json_schema.JSONSchema(title: Union[str, adaptix._internal.utils.Omitted] = Omitted(), description: Union[str, adaptix._internal.utils.Omitted] = Omitted(), default: Union[Any, adaptix._internal.utils.Omitted] = Omitted(), deprecated: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), read_only: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), write_only: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), examples: Union[collections.abc.Sequence[Any], adaptix._internal.utils.Omitted] = Omitted(), type: Union[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaType, collections.abc.Sequence[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaType], adaptix._internal.utils.Omitted] = Omitted(), enum: Union[collections.abc.Sequence[Any], adaptix._internal.utils.Omitted] = Omitted(), const: Union[Any, adaptix._internal.utils.Omitted] = Omitted(), format: Union[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaBuiltinFormat, str, adaptix._internal.utils.Omitted] = Omitted(), multiple_of: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), maximum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), exclusive_maximum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), minimum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), exclusive_minimum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), max_length: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_length: Union[int, adaptix._internal.utils.Omitted] = Omitted(), pattern: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_encoding: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_media_type: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_schema: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), max_items: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_items: Union[int, adaptix._internal.utils.Omitted] = Omitted(), unique_items: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), max_contains: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_contains: Union[int, adaptix._internal.utils.Omitted] = Omitted(), max_properties: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_properties: Union[int, adaptix._internal.utils.Omitted] = Omitted(), required: Union[collections.abc.Sequence[str], adaptix._internal.utils.Omitted] = Omitted(), dependent_required: Union[collections.abc.Mapping[str, collections.abc.Sequence[str]], adaptix._internal.utils.Omitted] = Omitted(), all_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), any_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), one_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), not_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), if_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), then: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), else_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), dependent_schemas: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), prefix_items: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), items: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), contains: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), pattern_properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), additional_properties: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), property_names: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), unevaluated_items: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), unevaluated_properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), schema: Union[str, adaptix._internal.utils.Omitted] = Omitted(), vocabulary: Union[collections.abc.Mapping[str, bool], adaptix._internal.utils.Omitted] = Omitted(), id: Union[str, adaptix._internal.utils.Omitted] = Omitted(), anchor: Union[str, adaptix._internal.utils.Omitted] = Omitted(), dynamic_anchor: Union[str, adaptix._internal.utils.Omitted] = Omitted(), ref: Union[~RefT, adaptix._internal.utils.Omitted] = Omitted(), dynamic_ref: Union[str, adaptix._internal.utils.Omitted] = Omitted(), defs: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), comment: Union[str, adaptix._internal.utils.Omitted] = Omitted(), extra_keywords: collections.abc.Mapping[str, typing.Any] = <factory>)¶
Bases:
BaseJSONSchema[LocalRefSource[Annotated[JSONSchema, <FwdRefMarker.VALUE: ‘VALUE’>]] |RemoteRef,Annotated[JSONSchema, <FwdRefMarker.VALUE: ‘VALUE’>] |bool]
- class adaptix.json_schema.JSONSchemaBuiltinFormat(
- value,
Bases:
Enum- DATE_TIME = 'date-time'¶
- DATE = 'date'¶
- TIME = 'time'¶
- DURATION = 'duration'¶
- EMAIL = 'email'¶
- IDN_EMAIL = 'idn-email'¶
- HOSTNAME = 'hostname'¶
- IDN_HOSTNAME = 'idn-hostname'¶
- IPV4 = 'ipv4'¶
- IPV6 = 'ipv6'¶
- URI = 'uri'¶
- URI_REFERENCE = 'uri-reference'¶
- IRI = 'iri'¶
- IRI_REFERENCE = 'iri-reference'¶
- UUID = 'uuid'¶
- URI_TEMPLATE = 'uri-template'¶
- JSON_POINTER = 'json-pointer'¶
- RELATIVE_JSON_POINTER = 'relative-json-pointer'¶
- REGEX = 'regex'¶
- class adaptix.json_schema.JSONSchemaPatch¶
Bases:
object- get_patchers() Iterable[Callable[[JSONSchema], JSONSchema]]¶
- merge_with(
- json_schema: JSONSchema,
- chain: Chain = Chain.FIRST,
- mutate_copy( ) S¶
Creates patcher that received a copy of specified attribute
- Parameters:
target – Attribute of
JSONSchemaobjectmutator – Function mutating value of attribute. Return value if ignored
- class adaptix.json_schema.JSONSchemaResolver¶
Bases:
ABC- abstractmethod resolve(
- root_schemas: Sequence[JSONSchema],
- *,
- local_ref_prefix: str,
- occupied_refs: Container[str],
- class adaptix.json_schema.JSONSchemaType(
- value,
Bases:
Enum- NULL = 'null'¶
- BOOLEAN = 'boolean'¶
- OBJECT = 'object'¶
- ARRAY = 'array'¶
- NUMBER = 'number'¶
- INTEGER = 'integer'¶
- STRING = 'string'¶
- class adaptix.json_schema.LocalRefSourceGroup(
- sources: Sequence[LocalRefSource[JSONSchema]],
Bases:
object
- class adaptix.json_schema.QualnameRefMangler¶
Bases:
RefMangler- mangle_refs(
- occupied_refs: Container[str],
- common_ref: str,
- sources_groups: Sequence[LocalRefSourceGroup],
- class adaptix.json_schema.RefGenerator¶
Bases:
ABC- abstractmethod generate_ref(
- json_schema: JSONSchema,
- loc_stack: LocStack,
- class adaptix.json_schema.ResolvedJSONSchema(title: Union[str, adaptix._internal.utils.Omitted] = Omitted(), description: Union[str, adaptix._internal.utils.Omitted] = Omitted(), default: Union[Any, adaptix._internal.utils.Omitted] = Omitted(), deprecated: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), read_only: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), write_only: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), examples: Union[collections.abc.Sequence[Any], adaptix._internal.utils.Omitted] = Omitted(), type: Union[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaType, collections.abc.Sequence[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaType], adaptix._internal.utils.Omitted] = Omitted(), enum: Union[collections.abc.Sequence[Any], adaptix._internal.utils.Omitted] = Omitted(), const: Union[Any, adaptix._internal.utils.Omitted] = Omitted(), format: Union[adaptix._internal.morphing.json_schema.schema_model.JSONSchemaBuiltinFormat, str, adaptix._internal.utils.Omitted] = Omitted(), multiple_of: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), maximum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), exclusive_maximum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), minimum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), exclusive_minimum: Union[int, float, adaptix._internal.utils.Omitted] = Omitted(), max_length: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_length: Union[int, adaptix._internal.utils.Omitted] = Omitted(), pattern: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_encoding: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_media_type: Union[str, adaptix._internal.utils.Omitted] = Omitted(), content_schema: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), max_items: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_items: Union[int, adaptix._internal.utils.Omitted] = Omitted(), unique_items: Union[bool, adaptix._internal.utils.Omitted] = Omitted(), max_contains: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_contains: Union[int, adaptix._internal.utils.Omitted] = Omitted(), max_properties: Union[int, adaptix._internal.utils.Omitted] = Omitted(), min_properties: Union[int, adaptix._internal.utils.Omitted] = Omitted(), required: Union[collections.abc.Sequence[str], adaptix._internal.utils.Omitted] = Omitted(), dependent_required: Union[collections.abc.Mapping[str, collections.abc.Sequence[str]], adaptix._internal.utils.Omitted] = Omitted(), all_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), any_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), one_of: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), not_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), if_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), then: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), else_: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), dependent_schemas: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), prefix_items: Union[collections.abc.Sequence[~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), items: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), contains: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), pattern_properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), additional_properties: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), property_names: Union[~JSONSchemaT, adaptix._internal.utils.Omitted] = Omitted(), unevaluated_items: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), unevaluated_properties: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), schema: Union[str, adaptix._internal.utils.Omitted] = Omitted(), vocabulary: Union[collections.abc.Mapping[str, bool], adaptix._internal.utils.Omitted] = Omitted(), id: Union[str, adaptix._internal.utils.Omitted] = Omitted(), anchor: Union[str, adaptix._internal.utils.Omitted] = Omitted(), dynamic_anchor: Union[str, adaptix._internal.utils.Omitted] = Omitted(), ref: Union[~RefT, adaptix._internal.utils.Omitted] = Omitted(), dynamic_ref: Union[str, adaptix._internal.utils.Omitted] = Omitted(), defs: Union[collections.abc.Mapping[str, ~JSONSchemaT], adaptix._internal.utils.Omitted] = Omitted(), comment: Union[str, adaptix._internal.utils.Omitted] = Omitted(), extra_keywords: collections.abc.Mapping[str, typing.Any] = <factory>)¶
Bases:
BaseJSONSchema[str,Annotated[ResolvedJSONSchema, <FwdRefMarker.VALUE: ‘VALUE’>] |bool]
- adaptix.json_schema.generate_json_schema(
- retort: ~adaptix._internal.morphing.facade.retort.AdornedRetort,
- tp: ~typing.Any,
- direction: ~adaptix._internal.definitions.Direction,
- *,
- resolver: ~adaptix._internal.morphing.json_schema.resolver.JSONSchemaResolver = <adaptix._internal.morphing.json_schema.resolver.BuiltinJSONSchemaResolver object>,
- local_ref_prefix: str = '#/$defs/',
- with_dialect_uri: bool = True,
- occupied_refs: ~collections.abc.Container[str] = (),
- adaptix.json_schema.generate_json_schemas_namespace(query: ~collections.abc.Iterable[tuple[~adaptix._internal.morphing.facade.retort.AdornedRetort, ~adaptix._internal.definitions.Direction, ~typing.Any]], *, resolver: ~adaptix._internal.morphing.json_schema.resolver.JSONSchemaResolver = <adaptix._internal.morphing.json_schema.resolver.BuiltinJSONSchemaResolver object>, local_ref_prefix: str = '#/$defs/', with_dialect_uri: bool = True, occupied_refs: ~collections.abc.Container[str] = ()) tuple[Mapping[str, Any], Sequence[Mapping[str, Any]]]¶
- adaptix.json_schema.json_schema(
- pred: Pred,
- value: Omittable[JSONSchemaOverride] = Omitted(),
- *,
- inline: Omittable[bool] = Omitted(),
- ref: Omittable[str] = Omitted(),
- adaptix.json_schema.load_json_schema( ) JSONSchema¶
Creates a
JSONSchemainstance from a raw dictionary. Field names and their possible values follow the JSON Schema specification.The
JSONSchemaclass fields comply with PEP8 and use enums. This function makes it possible to define schemas in their original notation.- Parameters:
data – Dict after JSON parsing
error_on_extra – When set to True, the function raises an error if unexpected fields are encountered. Otherwise, all unknown fields are stored in the
extra_keywordsfield.
- Returns:
JSONSchema instance