Source code for ska_oso_pdm.schemas.sdp.sdp_configuration

"""
The schemas.sdp.sdp_configuration module defines Marshmallow schemas .
"""
from marshmallow import Schema, fields, post_load

from ska_oso_pdm.entities.sdp.sdp_configuration import SDPConfiguration

from .processing_block import ProcessingBlockSchema
from .scan_type import ScanTypeSchema

__all__ = ["SDPConfigurationSchema"]


[docs]class SDPConfigurationSchema(Schema): """ Marshmallow class for the SDPConfiguration class """ eb_id = fields.String(data_key="eb_id", required=True) max_length = fields.Float(data_key="max_length", required=True) scan_types = fields.Nested(ScanTypeSchema, many=True) processing_blocks = fields.Nested(ProcessingBlockSchema, many=True)
[docs] @post_load def create_sdp_config(self, data, **_): # pylint: disable=no-self-use """ Convert parsed JSON back into a SDPConfiguration object. :param data: Marshmallow-provided dict containing parsed JSON values :param _: kwargs passed by Marshmallow :return: SDPConfiguration object populated from data """ return SDPConfiguration(**data)