Source code for kappa_sdk.field_well_properties_catalog
from .well_property import WellProperty
from typing import List, Iterator, SupportsIndex, Optional
from ._private._field_api import FieldAPI
from ._private.dto_converters._field_well_property_catalog_dto_converter import FieldWellPropertyCatalogDtoConverter
[docs]
class FieldWellPropertiesCatalog(List[WellProperty]):
    """Field Well Properties catalog"""
[docs]
    def __init__(self, field_id: Optional[str], well_property_catalog: List[WellProperty], field_api: FieldAPI,
                 dto_converter: FieldWellPropertyCatalogDtoConverter) -> None:
        super().__init__(well_property_catalog)
        self.__field_id: Optional[str] = field_id
        self.__field_api: FieldAPI = field_api
        self.__dto_converter: FieldWellPropertyCatalogDtoConverter = dto_converter 
    def __iter__(self) -> Iterator[WellProperty]:
        return iter(list.__iter__(self))
[docs]
    def append(self, well_property: WellProperty) -> None:
        self.__field_api.add_well_property_to_field_catalog(self.__field_id, [self.__dto_converter.get_well_property_dto(well_property)])
        super().append(well_property) 
    def __setitem__(self, index: SupportsIndex, well_property: WellProperty) -> None:  # type:ignore[override]
        super().__setitem__(index, well_property)
[docs]
    def insert(self, index: SupportsIndex, well_property: WellProperty) -> None:
        self.__field_api.add_well_property_to_field_catalog(self.__field_id, [self.__dto_converter.get_well_property_dto(well_property)])
        super().insert(index, well_property) 
[docs]
    def extend(self, well_property_list: List[WellProperty]) -> None:  # type:ignore[override]
        properties = [self.__dto_converter.get_well_property_dto(x) for x in well_property_list]
        self.__field_api.add_well_property_to_field_catalog(self.__field_id, properties)
        super().extend(well_property_list) 
[docs]
    def remove(self, well_property: WellProperty) -> None:
        raise ValueError("You are not allowed to remove any element from Well Property type Catalog")