Source code for ska_oso_pdm.schemas.dish.dish_configuration

"""
The schemas.dish_configuration_schema defines a Marshmallow schema that maps
SKA MID dishes  to/from a JSON representation.
"""
from marshmallow import Schema, fields, post_load
from marshmallow_enum import EnumField

from ska_oso_pdm.entities.dish.dish_configuration import DishConfiguration, ReceiverBand

__all__ = ["DishConfigurationSchema"]


[docs]class DishConfigurationSchema(Schema): """ The dish configuration schema section of an SKA scheduling block """ dish_configuration_id = fields.String( required=True, data_key="dish_configuration_id" ) receiver_band = EnumField( ReceiverBand, dump_by=EnumField.VALUE, load_by=EnumField.VALUE, required=True, data_key="receiver_band", error="{input} not a valid ReceiverBand. Must be one of: {values}", )
[docs] @post_load def create_scan_definition(self, data, **_): # pylint: disable=no-self-use """ Convert parsed JSON back into a DishConfiguration :param data: dict containing parsed JSON values :param _: kwargs passed by Marshmallow :return: DishConfiguration instance populated to match JSON """ return DishConfiguration(**data)