Module licenseware.common.serializers.event_schema
Expand source code
from marshmallow import Schema, fields, validate
from licenseware.common.validators import validate_uuid4
class EventSchema(Schema):
tenant_id = fields.Str(required=True, validate=validate_uuid4)
event_id = fields.Str(required=True, validate=validate_uuid4)
uploader_id = fields.Str(required=True, validate=validate.Length(min=3))
filepaths = fields.List(fields.Str, required=True)
flask_request = fields.Dict(required=False, allow_none=True)
validation_response = fields.Dict(required=False, allow_none=True)
Classes
class EventSchema (*, only: Union[Sequence[str], Set[str], None] = None, exclude: Union[Sequence[str], Set[str]] = (), many: bool = False, context: Optional[Dict[~KT, ~VT]] = None, load_only: Union[Sequence[str], Set[str]] = (), dump_only: Union[Sequence[str], Set[str]] = (), partial: Union[bool, Sequence[str], Set[str]] = False, unknown: Optional[str] = None)-
Base schema class with which to define custom schemas.
Example usage:
.. code-block:: python
import datetime as dt from dataclasses import dataclass from marshmallow import Schema, fields @dataclass class Album: title: str release_date: dt.date class AlbumSchema(Schema): title = fields.Str() release_date = fields.Date() album = Album("Beggars Banquet", dt.date(1968, 12, 6)) schema = AlbumSchema() data = schema.dump(album) data # {'release_date': '1968-12-06', 'title': 'Beggars Banquet'}:param only: Whitelist of the declared fields to select when instantiating the Schema. If None, all fields are used. Nested fields can be represented with dot delimiters. :param exclude: Blacklist of the declared fields to exclude when instantiating the Schema. If a field appears in both
onlyandexclude, it is not used. Nested fields can be represented with dot delimiters. :param many: Should be set toTrueifobjis a collection so that the object will be serialized to a list. :param context: Optional context passed to :class:fields.Methodand :class:fields.Functionfields. :param load_only: Fields to skip during serialization (write-only fields) :param dump_only: Fields to skip during deserialization (read-only fields) :param partial: Whether to ignore missing fields and not require any fields declared. Propagates down toNestedfields as well. If its value is an iterable, only missing fields listed in that iterable will be ignored. Use dot delimiters to specify nested fields. :param unknown: Whether to exclude, include, or raise an error for unknown fields in the data. UseEXCLUDE,INCLUDEorRAISE.Changed in version: 3.0.0
prefixparameter removed.Changed in version: 2.0.0
__validators__,__preprocessors__, and__data_handlers__are removed in favor ofmarshmallow.decorators.validates_schema,marshmallow.decorators.pre_loadandmarshmallow.decorators.post_dump.__accessor__and__error_handler__are deprecated. Implement thehandle_errorandget_attributemethods instead.Expand source code
class EventSchema(Schema): tenant_id = fields.Str(required=True, validate=validate_uuid4) event_id = fields.Str(required=True, validate=validate_uuid4) uploader_id = fields.Str(required=True, validate=validate.Length(min=3)) filepaths = fields.List(fields.Str, required=True) flask_request = fields.Dict(required=False, allow_none=True) validation_response = fields.Dict(required=False, allow_none=True)Ancestors
- marshmallow.schema.Schema
- marshmallow.base.SchemaABC
Class variables
var event_idvar filepathsvar flask_requestvar optsvar tenant_idvar uploader_idvar validation_response