api.form ======== .. py:module:: api.form Attributes ---------- .. autoapisummary:: api.form.ValidatorAdapter api.form._A api.form._V api.form.registry api.form.REQUIRED_DEPENDENT api.form.validate_hostname Classes ------- .. autoapisummary:: api.form.AdapterRegistry api.form.BaseAdapter api.form.StringFieldAdapter api.form.EmailFieldAdapter api.form.URLFieldAdapter api.form.DateFieldAdapter api.form.DateTimeFieldAdapter api.form.TimeFieldAdapter api.form.DecimalFieldAdapter api.form.IntegerFieldAdapter api.form.RadioFieldAdapter api.form.MultiCheckboxFieldAdapter api.form.FileUpload api.form.UploadFieldAdapter api.form.UploadMultipleFieldAdapter Functions --------- .. autoapisummary:: api.form.adapt_length api.form.adapt_regexp api.form.adapt_number_range api.form.adapt_valid_date_range api.form.adapt_stdnum api.form.adapt_file_size_limit api.form.validate_and_coerce_url api.form.mimetypes_validator api.form.dependency_fulfilled api.form.model_from_form Module Contents --------------- .. py:type:: ValidatorAdapter :canonical: Callable[[T], Any] .. py:data:: _A .. py:data:: _V .. py:class:: AdapterRegistry Keeps track of all the adapters and WTForms field types they are registered for, making sure each adapter is only instantiated once. .. py:attribute:: adapter_map :type: dict[str, BaseAdapter] .. py:attribute:: validator_map :type: dict[type[Any], ValidatorAdapter[Any]] .. py:method:: register_for(*types: str) -> collections.abc.Callable[[type[_A]], type[_A]] Decorator to register a field adapter. .. py:method:: validator(validator: type[Any]) -> collections.abc.Callable[[_V], _V] Decorator to register a validator adapter. .. py:method:: adapt(field: wtforms.Field) -> collections.abc.Generator[Any] Adapts the WTForms field to a pydantic field yielding a sequence of values starting with a type form, followed by any number of pydantic metadata objects. This output will get unpacked into `Annotated`. .. py:method:: adapt_validator(validator: onegov.form.types.Validator[Any, Any]) -> Any .. py:data:: registry .. py:function:: adapt_length(validator: wtforms.validators.Length) -> Any .. py:function:: adapt_regexp(validator: wtforms.validators.Regexp) -> Any .. py:function:: adapt_number_range(validator: wtforms.validators.NumberRange) -> Any .. py:function:: adapt_valid_date_range(validator: onegov.form.validators.ValidDateRange) -> Any .. py:function:: adapt_stdnum(validator: onegov.form.validators.Stdnum) -> Any .. py:function:: adapt_file_size_limit(validator: onegov.form.validators.FileSizeLimit) -> Any .. py:data:: REQUIRED_DEPENDENT .. py:class:: BaseAdapter Bases: :py:obj:`abc.ABC` Provides utility functions for all adapters. .. py:method:: handle_scalar_field_type(t: TypeForm[Any], field: wtforms.Field) -> collections.abc.Generator[Any] .. py:method:: handle_sequence_field_type(t: TypeForm[Any], field: wtforms.Field) -> collections.abc.Generator[Any] .. py:method:: adapt_validators(validators: collections.abc.Sequence[onegov.form.types.Validator[Any, Any]] | None) -> collections.abc.Generator[Any] .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] :abstractmethod: .. py:class:: StringFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: EmailFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:data:: validate_hostname .. py:function:: validate_and_coerce_url(value: pydantic.HttpUrl | None) -> str | None .. py:class:: URLFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: DateFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: DateTimeFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: TimeFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: DecimalFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: IntegerFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: RadioFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: MultiCheckboxFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: FileUpload(/, **data: Any) Bases: :py:obj:`pydantic.BaseModel` !!! abstract "Usage Documentation" [Models](../concepts/models.md) A base class for creating Pydantic models. Attributes: __class_vars__: The names of the class variables defined on the model. __private_attributes__: Metadata about the private attributes of the model. __signature__: The synthesized `__init__` [`Signature`][inspect.Signature] of the model. __pydantic_complete__: Whether model building is completed, or if there are still undefined fields. __pydantic_core_schema__: The core schema of the model. __pydantic_custom_init__: Whether the model has a custom `__init__` function. __pydantic_decorators__: Metadata containing the decorators defined on the model. This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1. __pydantic_generic_metadata__: A dictionary containing metadata about generic Pydantic models. The `origin` and `args` items map to the [`__origin__`][genericalias.__origin__] and [`__args__`][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the `parameter` item maps to the `__parameter__` attribute of generic classes. __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models. __pydantic_post_init__: The name of the post-init method for the model, if defined. __pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel]. __pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model. __pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model. __pydantic_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra] is set to `'allow'`. __pydantic_fields_set__: The names of fields explicitly set during instantiation. __pydantic_private__: Values of private attributes set on the model instance. .. py:attribute:: filename :type: str .. py:attribute:: data :type: pydantic.Base64Bytes .. py:function:: mimetypes_validator(mimetypes: set[str]) -> collections.abc.Callable[[onegov.core.types.FileDict], onegov.core.types.FileDict] .. py:class:: UploadFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:class:: UploadMultipleFieldAdapter Bases: :py:obj:`BaseAdapter` Provides utility functions for all adapters. .. py:method:: __call__(field: wtforms.Field) -> collections.abc.Generator[Any] .. py:function:: dependency_fulfilled(self: onegov.form.core.FieldDependency, obj: object) -> bool .. py:function:: model_from_form(form: onegov.form.Form) -> type[pydantic.BaseModel]