Source code for kappa_sdk.shutin_list

from __future__ import annotations
from .shutin import ShutIn
from typing import List, Optional, Iterator
from .data import Data
from .data_kind_enum import DataKindEnum
from .shut_in_categories_enum import ShutInCategoriesEnum
from .shut_in_types_enum import ShutInTypesEnum


[docs] class ShutInList(list): # type: ignore[type-arg] """ Class to store a List of Shut-in """
[docs] def __init__(self, shutins: Optional[List[ShutIn]] = None) -> None: if shutins is None: shutins = [] super().__init__(shutins)
def __iter__(self) -> Iterator[ShutIn]: return iter(list.__iter__(self))
[docs] @staticmethod def from_data(data: Data) -> ShutInList: """ Initialize a :class:`ShutInList` object from a :class:`Data` object Parameters ---------- data: a :class:`Data` object Returns ------- :class:`ShutInList` A list of :class:`ShutIn` objects """ if data.data_type == 'SI': cluster_apis = data._Data__cluster_apis # type: ignore[attr-defined] shutin_attributes = cluster_apis.data_api.get_shutin_attributes(data.vector_id) pressure_id = data.get_shutin_data_dto().input.xyVectorId if data.kind == DataKindEnum.shutin else None shutins: List[ShutIn] = list() for shutin in shutin_attributes.attributes: shutins.append(ShutIn(shutin.start, shutin.end, shutin.attributes.reference, pressure_id, ShutInCategoriesEnum(shutin.attributes.category.value), ShutInTypesEnum(shutin.attributes.type.value), shutin.attributes.rateMultiplier, shutin.attributes.comment, cluster_apis.kw_api, vector_id=data.vector_id, data_api=cluster_apis.data_api)) return ShutInList(shutins) else: raise ValueError(f"ShutInList object can only be initialize with {DataKindEnum.shutin} data")