"""
The ska_oso_pdm.sb_definition.dish.dish_allocation module defines
a simple Python representation of the dish allocation
"""
from pydantic import Field
from ska_oso_pdm._shared import DishAllocationID, PdmObject, StableSet
from ..scan_definition import ScanDefinition
__all__ = ["DishAllocation"]
[docs]
class DishAllocation(PdmObject):
"""
Represents the required dish array for an observation described by an SBDefinition
:param dish_allocation_id: The identifier of this object within the SBDefinition
:param selected_subarray_definition: The subarray definition, e.g. AA1. This could be inferred from the
dish_ids but is stored here as well for UI purposes.
:param dish_ids: The identifier of the dishes in the allocation, e.g. SKA063
:param scan_sequence: list of ScanDefinitions to be observed by these dishes
"""
dish_allocation_id: DishAllocationID | None = None
selected_subarray_definition: str | None = None
dish_ids: StableSet[str] = frozenset()
reference_dishes: StableSet[str] = frozenset()
scan_sequence: list[ScanDefinition] = Field(default_factory=list)