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
[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':
            shutin_attributes = data._Data__cluster_apis.data_api.get_shutin_attributes(data.vector_id)  # type: ignore[attr-defined]
            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, shutin.attributes.category.value, shutin.attributes.type.value, data._Data__cluster_apis.kw_api))  # type: ignore[attr-defined]
            return ShutInList(shutins)
        else:
            raise ValueError(f"ShutInList object can only be initialize with {DataKindEnum.shutin} data")