casys.report
Casys Toolbox report configuration and generation classes.
Functions
Classes
|
Class allowing to instantiate and customize a grid of plots. |
|
Marshmallow schema for the PlotGridMaker class. |
|
Class representing a Casys report. |
|
|
|
|
|
Marshmallow schema for the plugins data section. |
|
Casys' report's section base schema. |
|
|
|
AltiData section. |
|
Marshmallow schema for the ReportSection containing AltiData classes. |
|
Representation of a report section containing a grid of plots. |
|
Marshmallow schema for the ReportSection class. |
|
Representation of a section containing a plot. |
|
Marshmallow schema for the ReportSection class. |
|
Marshmallow schema for the ReportSection containing PlotTemplate classes. |
- class casys.report.PlotGridMaker(figure, figure_size, plots, rows_nb=None, columns_nb=None, save_path=None, dpi=100, **kwargs)
Bases:
object
Class allowing to instantiate and customize a grid of plots.
- Parameters:
figure_size (
tuple
[int
,int
]) – Figure size (width, height).rows_nb (
int
) – Number of rows in the grid.columns_nb (
int
) – Number of columns in the grid.save_path (
list
[str
]) – Save individual plot in the specified directory.dpi – Resulting image dpi.
kwargs – Additional parameters passed to the ‘pyplot.figure’ method.
figure (
Figure
)
- class casys.report.PlotGridMakerSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
BaseSchema
Marshmallow schema for the PlotGridMaker class.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_model()
Return the model associated to this schema.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- set_class
alias of
OrderedSet
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportAltiData(title=None, text=None, content=None, misc=<factory>, reference=None, sections=<factory>, level=None, context=<factory>)
Bases:
ReportSection
AltiData section.
- Parameters:
- property code: str
Transform the content into a code string. Required imports are added to the code_imports list.
- Returns:
Code as string.
- code_imports: list[str]
- content: Any = None
- context: dict[str, Any]
- property imports: str
Transform the list of required imports to an import code string.
- Returns:
Imports as string.
- instantiate()
Instantiate content’s object if a model is defined.
- Return type:
- Returns:
Content as an object.
- level: int | None = None
- link_imports(imports)
Link this section and subsections imports to the provided list.
Import strings will be added to it for generated code.
- Parameters:
imports (
list
) – List in which to add imports code.
- misc: dict[str, Any]
- reference: str | None = None
- report: wr.ReferenceType | None = None
- sections: list[ReportSection]
- property sections_list: list[str]
List of sections index number.
- Returns:
List of sections index number.
- set_report(report, chapter)
- Parameters:
report (
Report
)chapter (
ReportChapter
)
- set_schema(schema)
Set the schema of this section.
- Parameters:
schema (
type
[BaseSchema
]) – Section’s schema.
- text: str | None = None
- title: str | None = None
- class casys.report.ReportAltiDataSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
ReportDataCasysBaseSchema
Marshmallow schema for the ReportSection containing AltiData classes.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportCasys(metadata=None, data=<factory>, chapters=<factory>, misc=<factory>, level=100, ges_table_dir=None)
Bases:
Report
Class representing a Casys report.
- Parameters:
ges_table_dir (str | None) – GES_TABLE_DIR environment variable
metadata (ReportMetadata | None) – Report metadata (used in PDF exports).
data (dict[str, ReportSection]) – Dictionary of AltiData representations.
chapters (dict[str, ReportChapter]) – Dictionary of chapters. A chapter has a list of sections as a section’s parameter, each section containing a plot or a grid of plots.
misc (dict[str, Any]) – Dictionary of miscellaneous data.
level (int) – Report’s level. If the report level is 100 (default), only chapters and sections with a level less or equal to 100 will be included.
- DATA_SCHEMA
alias of
ReportDataCasysGenericSchema
- SECTION_SCHEMA
alias of
ReportSectionCasysGenericSchema
- classmethod chapter_schema()
Generate a marshmallow schema parsing a configuration file for this kind of report’s chapter.
- Return type:
- Returns:
Chapter marshmallow schema.
- chapters: dict[str, ReportChapter]
- data: dict[str, ReportSection]
- property data_code: list[str]
Transform the data content into a list of code strings.
Each element of the list correspond to a data element. Required imports are added to the data_code_imports list.
- Returns:
Code as a list of strings.
- data_code_imports: list[str]
- property data_imports: str
Transform the list of required data imports to an import code string.
- Returns:
Data imports as string.
- ges_table_dir: str | None = None
- instantiate_data()
Instantiate each data element.
Each element of the list correspond to a data element.
- last_read_chapter: ReportChapter | None = None
- last_read_section: ReportSection | None = None
- level: int = 100
- link_imports(imports)
Link this report data, chapters and sections imports to the provided list.
Import strings will be added to it for generated code.
- Parameters:
imports (
list
) – List in which to add imports code.
- classmethod load(config)
Instantiate a report using the provided configuration dictionary.
- metadata: ReportMetadata | None = None
- misc: dict[str, Any]
- classmethod report_schema()
Generate a marshmallow schema parsing a configuration file for this kind of report.
- Return type:
- Returns:
Report marshmallow schema.
- classmethod template(ttype=ReportTemplateType.PDF)
Generic template allowing to expand a report with up to 7 levels of subsections.
- Parameters:
ttype (
str
|ReportTemplateType
) –Report template type to get.
NOTEBOOK: Generic template allowing to fully expand a report to a notebook.
PDF: Template containing PDF specific instructions allowing to start chapters at the top of a new page.
- Return type:
NotebookNode
- Returns:
Template’s notebook.
- class casys.report.ReportDataCasysBaseSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
RegistryBaseSchema
,ReportSectionSchema
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportDataCasysGenericSchema(**kwargs)
Bases:
RegistryGenericSchema
- class Meta
Bases:
object
Options object for a Schema.
Example usage:
from marshmallow import Schema class MySchema(Schema): class Meta: fields = ("id", "email", "date_created") exclude = ("password", "secret_attribute")
A note on type checking
Type checkers will only check the attributes of the Meta <marshmallow.Schema.Meta> class if you explicitly subclass marshmallow.Schema.Meta.
from marshmallow import Schema class MySchema(Schema): # Not checked by type checkers class Meta: additional = True class MySchema2(Schema): # Type checkers will check attributes class Meta(Schema.Opts): additional = True # Incompatible types in assignment
Removed in version 3.0.0b7: Remove
strict
.Added in version 3.0.0b12: Add unknown.
Changed in version 3.0.0b17: Rename
dateformat
to datetimeformat.Added in version 3.9.0: Add timeformat.
Changed in version 3.26.0: Deprecate ordered. Field order is preserved by default.
-
additional:
ClassVar
[tuple
[str
,...
] |list
[str
]] Fields to include in addition to the explicitly declared fields. additional <marshmallow.Schema.Meta.additional> and fields <marshmallow.Schema.Meta.fields> are mutually-exclusive options.
-
exclude:
ClassVar
[tuple
[str
,...
] |list
[str
]] Fields to exclude in the serialized result. Nested fields can be represented with dot delimiters.
-
include:
ClassVar
[dict
[str
,Field
]] Dictionary of additional fields to include in the schema. It is usually better to define fields as class variables, but you may need to use this option, e.g., if your fields are Python keywords.
-
index_errors:
ClassVar
[bool
] If True, errors dictionaries will include the index of invalid items in a collection.
-
ordered:
ClassVar
[bool
] If True, Schema.dump <marshmallow.Schema.dump> is a collections.OrderedDict.
-
register:
ClassVar
[bool
] Whether to register the Schema <marshmallow.Schema> with marshmallow’s internal class registry. Must be True if you intend to refer to this Schema <marshmallow.Schema> by class name in Nested fields. Only set this to False when memory usage is critical. Defaults to True.
-
additional:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportPluginsDataSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
ReportDataCasysBaseSchema
Marshmallow schema for the plugins data section.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dump_fields: dict[str, Field]
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- exclude: set[typing.Any] | typing.MutableSet[typing.Any]
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- load_fields: dict[str, Field]
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportSectionCasysBaseSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
RegistryBaseSchema
,ReportSectionSchema
Casys’ report’s section base schema.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportSectionCasysGenericSchema(**kwargs)
Bases:
RegistryGenericSchema
- class Meta
Bases:
object
Options object for a Schema.
Example usage:
from marshmallow import Schema class MySchema(Schema): class Meta: fields = ("id", "email", "date_created") exclude = ("password", "secret_attribute")
A note on type checking
Type checkers will only check the attributes of the Meta <marshmallow.Schema.Meta> class if you explicitly subclass marshmallow.Schema.Meta.
from marshmallow import Schema class MySchema(Schema): # Not checked by type checkers class Meta: additional = True class MySchema2(Schema): # Type checkers will check attributes class Meta(Schema.Opts): additional = True # Incompatible types in assignment
Removed in version 3.0.0b7: Remove
strict
.Added in version 3.0.0b12: Add unknown.
Changed in version 3.0.0b17: Rename
dateformat
to datetimeformat.Added in version 3.9.0: Add timeformat.
Changed in version 3.26.0: Deprecate ordered. Field order is preserved by default.
-
additional:
ClassVar
[tuple
[str
,...
] |list
[str
]] Fields to include in addition to the explicitly declared fields. additional <marshmallow.Schema.Meta.additional> and fields <marshmallow.Schema.Meta.fields> are mutually-exclusive options.
-
exclude:
ClassVar
[tuple
[str
,...
] |list
[str
]] Fields to exclude in the serialized result. Nested fields can be represented with dot delimiters.
-
include:
ClassVar
[dict
[str
,Field
]] Dictionary of additional fields to include in the schema. It is usually better to define fields as class variables, but you may need to use this option, e.g., if your fields are Python keywords.
-
index_errors:
ClassVar
[bool
] If True, errors dictionaries will include the index of invalid items in a collection.
-
ordered:
ClassVar
[bool
] If True, Schema.dump <marshmallow.Schema.dump> is a collections.OrderedDict.
-
register:
ClassVar
[bool
] Whether to register the Schema <marshmallow.Schema> with marshmallow’s internal class registry. Must be True if you intend to refer to this Schema <marshmallow.Schema> by class name in Nested fields. Only set this to False when memory usage is critical. Defaults to True.
-
additional:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportSectionGrid(title=None, text=None, content=None, misc=<factory>, reference=None, sections=<factory>, level=None, context=<factory>)
Bases:
ReportSection
Representation of a report section containing a grid of plots.
- Parameters:
content (
Any
) – Grid’s representation. Should map the create_image_grid parameterssections (
list
[ReportSection
]) – List of subsections.level (
int
|None
) – Section’s level. Only sections with a level less or equal to the report’s level will be included.
- property code: str
Transform the content into a code string. Required imports are added to the code_imports list.
- Returns:
Code as string.
- code_imports: list[str]
- content: Any = None
- context: dict[str, Any]
- property imports: str
Transform the list of required imports to an import code string.
- Returns:
Imports as string.
- instantiate()
Instantiate content’s object if a model is defined.
- Return type:
- Returns:
Content as an object.
- level: int | None = None
- link_imports(imports)
Link this section and subsections imports to the provided list.
Import strings will be added to it for generated code.
- Parameters:
imports (
list
) – List in which to add imports code.
- misc: dict[str, Any]
- reference: str | None = None
- report: wr.ReferenceType | None = None
- sections: list[ReportSection]
- property sections_list: list[str]
List of sections index number.
- Returns:
List of sections index number.
- set_report(report, chapter)
- Parameters:
report (
Report
)chapter (
ReportChapter
)
- set_schema(schema)
Set the schema of this section.
- Parameters:
schema (
type
[BaseSchema
]) – Section’s schema.
- text: str | None = None
- title: str | None = None
- class casys.report.ReportSectionGridSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
ReportSectionCasysBaseSchema
Marshmallow schema for the ReportSection class.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dump_fields: dict[str, Field]
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- exclude: set[typing.Any] | typing.MutableSet[typing.Any]
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- load_fields: dict[str, Field]
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportSectionPlot(title=None, text=None, content=None, misc=<factory>, reference=None, sections=<factory>, level=None, context=<factory>)
Bases:
ReportSection
Representation of a section containing a plot.
- Parameters:
content (
Any
) – plot’s representation. Should map CasysPlot parameterssections (
list
[ReportSection
]) – List of subsections.level (
int
|None
) – Section’s level. Only sections with a level less or equal to the report’s level will be included.
- property code: str
Transform the content into a code string. Required imports are added to the code_imports list.
- Returns:
Code as string.
- code_imports: list[str]
- content: Any = None
- context: dict[str, Any]
- property imports: str
Transform the list of required imports to an import code string.
- Returns:
Imports as string.
- instantiate()
Instantiate content’s object if a model is defined.
- Return type:
- Returns:
Content as an object.
- level: int | None = None
- link_imports(imports)
Link this section and subsections imports to the provided list.
Import strings will be added to it for generated code.
- Parameters:
imports (
list
) – List in which to add imports code.
- misc: dict[str, Any]
- reference: str | None = None
- report: wr.ReferenceType | None = None
- sections: list[ReportSection]
- property sections_list: list[str]
List of sections index number.
- Returns:
List of sections index number.
- set_report(report, chapter)
- Parameters:
report (
Report
)chapter (
ReportChapter
)
- set_schema(schema)
Set the schema of this section.
- Parameters:
schema (
type
[BaseSchema
]) – Section’s schema.
- text: str | None = None
- title: str | None = None
- class casys.report.ReportSectionPlotSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
ReportSectionCasysBaseSchema
Marshmallow schema for the ReportSection class.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dump_fields: dict[str, Field]
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- exclude: set[typing.Any] | typing.MutableSet[typing.Any]
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- load_fields: dict[str, Field]
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- class casys.report.ReportTemplateDataSchema(*, only=None, exclude=(), many=None, context=None, load_only=(), dump_only=(), partial=None, unknown=None)
Bases:
ReportDataCasysBaseSchema
Marshmallow schema for the ReportSection containing PlotTemplate classes.
- Parameters:
- OPTIONS_CLASS
alias of
SchemaOpts
- TYPE_MAPPING: dict[type, type[Field]] = {<class 'bool'>: <class 'marshmallow.fields.Boolean'>, <class 'bytes'>: <class 'marshmallow.fields.String'>, <class 'datetime.date'>: <class 'marshmallow.fields.Date'>, <class 'datetime.datetime'>: <class 'marshmallow.fields.DateTime'>, <class 'datetime.time'>: <class 'marshmallow.fields.Time'>, <class 'datetime.timedelta'>: <class 'marshmallow.fields.TimeDelta'>, <class 'decimal.Decimal'>: <class 'marshmallow.fields.Decimal'>, <class 'float'>: <class 'marshmallow.fields.Float'>, <class 'int'>: <class 'marshmallow.fields.Integer'>, <class 'list'>: <class 'marshmallow.fields.Raw'>, <class 'set'>: <class 'marshmallow.fields.Raw'>, <class 'str'>: <class 'marshmallow.fields.String'>, <class 'tuple'>: <class 'marshmallow.fields.Raw'>, <class 'uuid.UUID'>: <class 'marshmallow.fields.UUID'>}
- classmethod clear_registry()
Clear everything from this schema’s registry.
- dump(obj, *, many=None)
Serialize an object to native Python data types according to this Schema’s fields.
- Parameters:
- Returns:
Serialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.Changed in version 3.0.0rc9: Validation no longer occurs upon serialization.
- dump_fields: dict[str, Field]
- dumps(obj, *args, many=None, **kwargs)
Same as
dump()
, except return a JSON-encoded string.- Parameters:
- Returns:
A
json
string
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the serialized data rather than a
(data, errors)
duple. AValidationError
is raised ifobj
is invalid.
- error_messages: dict[str, str] = {}
Overrides for default schema-level error messages
- exclude: set[typing.Any] | typing.MutableSet[typing.Any]
- fields: dict[str, Field]
Dictionary mapping field_names ->
Field
objects
- classmethod from_dict(fields, *, name='GeneratedSchema')
Generate a Schema <marshmallow.Schema> class given a dictionary of fields.
from marshmallow import Schema, fields PersonSchema = Schema.from_dict({"name": fields.Str()}) print(PersonSchema().load({"name": "David"})) # => {'name': 'David'}
Generated schemas are not added to the class registry and therefore cannot be referred to by name in Nested fields.
- Parameters:
- Return type:
type
[Schema
]
Added in version 3.0.0.
- get_attribute(obj, attr, default)
Defines how to pull values from an object to serialize.
Changed in version 3.0.0a1: Changed position of
obj
andattr
.
- classmethod get_class(name: str) type[RegistryBaseSchema]
Return the registered class associated with the provided name.
- Parameters:
name (str) – Identifier of the schema.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- classmethod get_model()
Return the model associated to this schema.
- classmethod get_model_schema(model: type) type[RegistryBaseSchema]
Return the registered class associated with the provided model.
- Parameters:
model (type) – Identifier of the model.
- Return type:
type[RegistryBaseSchema]
- Returns:
Corresponding schema class.
- handle_error(error, data, *, many, **kwargs)
Custom error handler function for the schema.
- Parameters:
Changed in version 3.0.0rc9: Receives many and partial (on deserialization) as keyword arguments.
- load(data, *, many=None, partial=None, unknown=None)
Deserialize a data structure to an object defined by this Schema’s fields.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to deserialize.many (
bool
|None
) – Whether to deserialize data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- load_fields: dict[str, Field]
- loads(json_data, *, many=None, partial=None, unknown=None, **kwargs)
Same as
load()
, except it uses marshmallow.Schema.Meta.render_module to deserialize the passed string before passing data toload()
.- Parameters:
json_data (
str
|bytes
|bytearray
) – A string of the data to deserialize.many (
bool
|None
) – Whether to deserialize obj as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.unknown (
str
|None
) – Whether to exclude, include, or raise an error for unknown fields in the data. Use EXCLUDE, INCLUDE or RAISE. If None, the value for self.unknown is used.
- Returns:
Deserialized data
Added in version 1.0.0.
Changed in version 3.0.0b7: This method returns the deserialized data rather than a
(data, errors)
duple. AValidationError
is raised if invalid data are passed.
- make_object(data, **_)
- on_bind_field(field_name, field_obj)
Hook to modify a field when it is bound to the Schema <marshmallow.Schema>.
No-op by default.
- opts: typing.Any = <marshmallow.schema.SchemaOpts object>
- post_dump(data, original_data, **_)
- pre_dump(data, **_)
- pre_load(data, **_)
- classmethod register()
Register the current class.
- classmethod register_schema(schema, exception)
Register the provided schema.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schema to register.exception (
type
[Exception
]) – Exception raised when an invalid operation is made.
- classmethod registry()
Returns a copy of the registry.
- Return type:
- set_class
alias of
OrderedSet
- classmethod update_registry(schema)
Update current registry with the provided one. An error is raised if the same name is used twice.
- Parameters:
schema (
type
[RegistryAbstractSchema
]) – Schemas to register.
- validate(data, *, many=None, partial=None)
Validate data against the schema, returning a dictionary of validation errors.
- Parameters:
data (
Union
[Mapping
[str
,Any
],Iterable
[Mapping
[str
,Any
]]]) – The data to validate.many (
bool
|None
) – Whether to validate data as a collection. If None, the value for self.many is used.partial (
Union
[bool
,Sequence
[str
],AbstractSet
[str
],None
]) – Whether to ignore missing fields and not require any fields declared. Propagates down toNested
fields 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.
- Return type:
- Returns:
A dictionary of validation errors.
Added in version 1.1.0.
- casys.report.register_sections()