Source code for ska_oso_pdm.sb_definition.sb_definition

"""
The ska_oso_pdm.sb_definition_sb_definition module defines
a simple Python representation of the scheduling block
that contains the details of the observation
"""
from typing import Dict, List, Optional

from pydantic import Field

from ska_oso_pdm._shared import (
    Metadata,
    PdmObject,
    ProjectID,
    SBDefinitionID,
    Target,
    TelescopeType,
)

from .csp.csp_configuration import CSPConfiguration
from .dish.dish_allocation import DishAllocation
from .dish.dish_configuration import DishConfiguration
from .mccs.mccs_allocation import MCCSAllocation
from .mccs.subarray_beam_configuration import SubarrayBeamConfiguration
from .mccs.target_beam_configuration import TargetBeamConfiguration
from .procedures import ProcedureUnion
from .scan_definition import ScanDefinition, ScanDefinitionID
from .sdp.sdp_configuration import SDPConfiguration

__all__ = ["SBDefinition"]

# URI of the Scheduling Block definition. Not currently part of telescope model.
SBD_SCHEMA_URI = "https://schema.skao.int/ska-oso-pdm-sbd/0.1"


[docs] class SBDefinition(PdmObject): """ SKA scheduling block """ interface: Optional[str] = SBD_SCHEMA_URI sbd_id: Optional[SBDefinitionID] = None name: Optional[str] = None description: Optional[str] = None telescope: Optional[TelescopeType] = None metadata: Optional[Metadata] = None prj_ref: Optional[ProjectID] = None activities: Optional[Dict[str, ProcedureUnion]] = Field(default_factory=dict) targets: Optional[List[Target]] = Field(default_factory=list) scan_definitions: Optional[List[ScanDefinition]] = Field(default_factory=list) scan_sequence: Optional[List[ScanDefinitionID]] = Field(default_factory=list) sdp_configuration: Optional[SDPConfiguration] = None dish_configurations: Optional[List[DishConfiguration]] = Field(default_factory=list) csp_configurations: Optional[List[CSPConfiguration]] = Field(default_factory=list) dish_allocations: Optional[DishAllocation] = None mccs_allocation: Optional[MCCSAllocation] = None subarray_beam_configurations: Optional[List[SubarrayBeamConfiguration]] = Field( default_factory=list ) target_beam_configurations: Optional[List[TargetBeamConfiguration]] = Field( default_factory=list )