bases - base classes¶
- TYPES: dict[str, type[Union[kaiju_models.bases.Field, kaiju_models.bases.Model]]] = {'AnyOfField': <class 'kaiju_models.fields.AnyOfField'>, 'BooleanField': <class 'kaiju_models.fields.BooleanField'>, 'ByteField': <class 'kaiju_models.fields.ByteField'>, 'DateField': <class 'kaiju_models.fields.DateField'>, 'DateTimeField': <class 'kaiju_models.fields.DateTimeField'>, 'DecimalField': <class 'kaiju_models.fields.DecimalField'>, 'EmailField': <class 'kaiju_models.fields.EmailField'>, 'EnumField': <class 'kaiju_models.fields.EnumField'>, 'IntegerField': <class 'kaiju_models.fields.IntegerField'>, 'JsonListField': <class 'kaiju_models.fields.JsonListField'>, 'JsonMapField': <class 'kaiju_models.fields.JsonMapField'>, 'ListField': <class 'kaiju_models.fields.ListField'>, 'MixedListField': <class 'kaiju_models.fields.MixedListField'>, 'Model': <class 'kaiju_models.bases.Model'>, 'PasswordField': <class 'kaiju_models.fields.PasswordField'>, 'SetField': <class 'kaiju_models.fields.SetField'>, 'StringField': <class 'kaiju_models.fields.StringField'>, 'TextField': <class 'kaiju_models.fields.TextField'>, 'UUIDField': <class 'kaiju_models.fields.UUIDField'>}¶
registry of all model and field types
- class ErrorCode[source]¶
Bases:
EnumStandard validation error codes.
- INVALID_ENUM_VALUE = 'INVALID_ENUM_VALUE'¶
- INVALID_FORMAT = 'INVALID_FORMAT'¶
- LENGTH_CONSTRAINT = 'LENGTH_CONSTRAINT'¶
- MISSING = 'MISSING'¶
- NUMBER_CONSTRAINT = 'NUMBER_CONSTRAINT'¶
- PATTERN_MISMATCH = 'PATTERN_MISMATCH'¶
- TYPE_MISMATCH = 'TYPE_MISMATCH'¶
- UNKNOWN = 'UNKNOWN'¶
- class ErrorData[source]¶
Bases:
TypedDictError data object.
- constraint: int | None¶
Constraint value for constraint-related errors.
- expected_type: str | None¶
Expected data type in this field.
- field: str¶
Field name.
- model: str¶
Model class name where error happened.
- operator: str | None¶
Comparison operator for constraint-related errors.
- pattern: str | None¶
Matching pattern for pattern-match errors.
- provided_type: str | None¶
Provided data type.
- value: str | None¶
Provided value.
- class Field[source]¶
Bases:
_Field[BaseTypeT]Base field type.
- default: BaseTypeT¶
Default value for this field.
- description: str¶
Field description.
- required: bool¶
Field is required.
- title: str¶
Field short title.
- ui_visible: bool¶
Is this field visible in UI schema.
- class FieldRepr[source]¶
Bases:
StructDictionary representation of a field.
Can be used to reconstruct models and fields using
create_from_repr()function.- properties: dict[str, Union[kaiju_models.bases.FieldRepr, kaiju_models.bases.ModelRepr, Any]]¶
- type: str¶
- class FormProperties[source]¶
Bases:
objectUI form properties.
- disable_label: bool¶
- disabled: bool¶
- extra_params: dict[str, Any]¶
- has_feedback: bool¶
- mark_required: bool¶
- placeholder: str | None¶
- class MetaData[source]¶
Bases:
objectAdditional model / field meta-attributes.
- form_properties: FormProperties¶
- class Model[source]¶
Bases:
Field,Generic[_Fields]Base model class.
- default: BaseTypeT¶
Default value for this field.
- description: str¶
Field description.
- required: bool¶
Field is required.
- title: str¶
Field short title.
- ui_visible: bool¶
Is this field visible in UI schema.
- classmethod decode_msgpack(data: bytes, /) _Fields[source]¶
Decode msgpack data to a struct using this model.
- get_schema() ModelSchemaType[source]¶
Get UI schema for this object.
- classmethod get_struct(data: dict[str, Any] | object, /) _Fields[source]¶
Validate structured data and return a new msgspec.Struct object.
- Raises:
ModelValidationError – on invalid struct
- class ModelFormProperties[source]¶
Bases:
FormPropertiesUI form properties for nested models.
- display_frame: bool¶
- class ModelRepr[source]¶
Bases:
StructDictionary representation of a model.
Can be used to reconstruct models and fields using
create_from_repr()function.- fields: list[kaiju_models.bases._ModelField]¶
- properties: dict[str, Union[kaiju_models.bases.FieldRepr, kaiju_models.bases.ModelRepr, Any]]¶
- type: str¶
- class ModelResponse[source]¶
Bases:
objectUI model schema data.
- data: dict[str, Any] | None¶
- model: ModelSchemaType¶
- class ModelSchemaType[source]¶
Bases:
TypedDictModel UI schema for form objects.
- meta: dict[str, Any]¶
- ordering: list[str]¶
- schema: list[dict[str, Any]]¶
- title: str¶
- type: str¶
- exception ModelValidationError[source]¶
Bases:
ValidationErrorModel data validation error.
- message: str¶
Error message.
- classmethod from_error_message(model: type[kaiju_models.bases.Model], msg: str, /) ModelValidationError[source]¶
Create an error object from a msgspec error message.
- create_model_type(name: str, fields: list[tuple[str, kaiju_models.bases.Field]], base: type[kaiju_models.bases.Model] = Model, **properties) type[kaiju_models.bases.Model][source]¶
Create a model class dynamically from a list of fields.
- Parameters:
name – class name
fields – list of tuples of (field name, field)
base – base class
properties – msgspec model properties, see msgspec.defstruct for detail
- decode_model(data: bytes, /, name: str = None, *, types: dict[str, type[kaiju_models.bases.Field | kaiju_models.bases.Model]] = TYPES) Field | Model[source]¶
Decode a model schema from bytes.
Shortcut for msgpack.decode + from_repr.
- encode_model(model: Model, /) bytes[source]¶
Encode a model schema to bytes.
Shortcut for repr + msgpack.encode
- from_repr(data: FieldRepr | ModelRepr, /, name: str = None, *, types: dict[str, type[kaiju_models.bases.Field | kaiju_models.bases.Model]] = TYPES, fallback_model_type: type[kaiju_models.bases.Model] = Model) Field | Model[source]¶
Create a model or field from its serialized representation.
- Parameters:
data – The serialized representation.
name – Class name which is only used for new model types, by default the model type name is used.
types – optional custom mapping of model and field data types onto their names
fallback_model_type – which base model type to use if types dict doesn’t have an expected model type