Source code for kappa_sdk.workflow_settings
from enum import Enum
from typing import Optional, Dict, Any, List, Union
[docs]
class IptaParameter(Enum):
    C = "-C"
    Skin = "-Skin"
    k = "-k"
    h = "-h"
    phi = "-ɸ"
    S = "-S"
    E = "-E"
    N = "-N"
    W = "-W" 
[docs]
class IrtaParameter(Enum):
    Skin = "-Skin"
    Xmf = "-Xmf"
    Pi = '-Pi'
    k = "-k"
    h = "-h"
    phi = "-ɸ"
    zone_1_d = "Zone 1-d"
    zone_1_ri = "Zone 1-Ri"
    zone_2_d = "Zone 2-d" 
[docs]
class WorkflowImproveSettings:
[docs]
    def __init__(self, workflow_improve_parameters: List[Dict[str, Any]], use_all_parameters: bool = False, use_wide_search: bool = False,
                 update_values: bool = False,
                 update_bounds: bool = False):
        self.__parameters: List[Dict[str, Any]] = workflow_improve_parameters
        if use_all_parameters:
            for parameter in self.__parameters:
                parameter["isIncluded"] = True
        self.__wide_search_settings: Dict[str, Any] = {"useWideSearch": use_wide_search, "initialPopulation": 50, "boundsStretch": 10}
        self.__update_values: bool = update_values
        self.__update_bounds: bool = update_bounds 
[docs]
    def select_parameter(self, parameter: Union[IptaParameter, IrtaParameter], min_value: Optional[float] = None, max_value: Optional[float] = None) -> None:
        try:
            selected_parameter = next(x for x in self.__parameters if x["id"] == parameter.value)
        except StopIteration:
            raise ValueError(f"Cannot find {parameter.value} in the improve parameter list, make sure you are using the right type of parameter, could be IptaParameter or IrtaParameter")
        if min_value is not None:
            selected_parameter["minValue"] = min_value
        if max_value is not None:
            selected_parameter["maxValue"] = max_value
        selected_parameter["isIncluded"] = True 
[docs]
    def remove_parameter(self, parameter: Union[IptaParameter, IrtaParameter]) -> None:
        try:
            selected_parameter = next(x for x in self.__parameters if x["id"] == parameter.value)
        except StopIteration:
            raise ValueError(f"Cannot find {parameter.value} in the improve parameter list, make sure you are using the right type of parameter, could be IptaParameter or IrtaParameter")
        selected_parameter["isIncluded"] = False 
[docs]
    def update_wide_search_settings(self, initial_population: float = 50, bounds_stretch: float = 10) -> None:
        self.__wide_search_settings["initialPopulation"] = initial_population
        self.__wide_search_settings["boundsStretch"] = bounds_stretch 
[docs]
    def dump(self) -> Dict[str, Any]:
        return {"updateValues": self.__update_values, "updateBounds": self.__update_bounds, "nlrSettings": {"wideSearchSettings": self.__wide_search_settings},
                "parameters": self.__parameters}