apimodel.fields#
Field descriptors.
Module Contents#
- class apimodel.fields.FieldInfo(default: object = ..., *, default_factory: Optional[Callable[[], object]] = None, alias: Optional[str] = None, private: Optional[bool] = False, validators: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), **extra: Any)[source]#
Basic information about a field.
- default_factory :Optional[Callable[[], object]][source]#
Factory for the default value in case of mutables.
- alias :Optional[str][source]#
Key name in the JSON object. Similar to pydantic’s alias.
The attribute name by default.
- private :Optional[bool][source]#
Whether the field is private. Affects model.as_dict()
Set to True by default if the attribute name starts with an underscore.
- extra :Mapping[str, Any][source]#
Extra metadata about the field.
May be used by subclasses to store additional information.
- add_validators(self, *validators: Union[apimodel.validation.Validator, apimodel.tutils.AnyCallable]) None[source]#
Properly add validators to the field.
- class apimodel.fields.ModelFieldInfo(default: object = ..., *, default_factory: Optional[Callable[[], object]] = None, alias: Optional[str] = None, private: Optional[bool] = False, validators: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), **extra: Any)[source]#
Complete information about a field.
- classmethod from_annotation(cls, name: str, annotation: object, default: object = ..., *, model: Optional[type] = None) apimodel.tutils.Self[source]#
Create a new model field info from an annotation.
If the default is already a FieldInfo, the data is copied.
- class apimodel.fields.ExtraInfo(default: object = ..., *, alias: str = '')[source]#
Descriptor for a special extra attribute.
- class apimodel.fields.NamedProperty(fget: apimodel.tutils.AnyCallable, *, alias: Optional[str] = None, exclude: Optional[bool] = None)[source]#
Property with a public name.
- apimodel.fields.Field(default: object = ..., *, default_factory: Optional[Callable[[], object]] = None, alias: Optional[str] = None, private: Optional[bool] = None, validator: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), validators: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), **extra: Any) Any[source]#
Create a new FieldInfo.
- apimodel.fields.Aliased(alias: str, *, default: object = ..., default_factory: Optional[Callable[[], object]] = None, private: Optional[bool] = None, validator: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), validators: apimodel.tutils.MaybeSequence[apimodel.tutils.AnyCallable] = (), **extra: Any) Any[source]#
Create a new FieldInfo with an alias as the first argument.
- apimodel.fields.named_property(alias: Optional[str] = None, *, exclude: Optional[bool] = None) Type[NamedProperty][source]#
Create a named property.