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

from pydantic import Field

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

from .csp.csp_configuration import CSPConfiguration
from .dish.dish_allocation import DishAllocation
from .mccs.mccs_allocation import MCCSAllocation
from .procedures import ProcedureUnion
from .scan_definition import ScanDefinition
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: str | None = SBD_SCHEMA_URI sbd_id: SBDefinitionID | None = None name: str | None = None description: str | None = None telescope: TelescopeType | None = None metadata: Metadata | None = None prj_ref: ProjectID | None = None activities: Dict[str, ProcedureUnion] | None = Field(default_factory=dict) targets: List[Target] | None = Field(default_factory=list) scan_definitions: List[ScanDefinition] | None = Field(default_factory=list) scan_sequence: List[ScanDefinitionID] | None = Field(default_factory=list) sdp_configuration: SDPConfiguration | None = None csp_configurations: List[CSPConfiguration] | None = Field(default_factory=list) dish_allocations: DishAllocation | None = None mccs_allocation: MCCSAllocation | None = None