Creating new action (czech)¶
Tento dokument popisuje vytvoření akce FunctionAction. Akce slouží k vyhodnocení funkce zadané jako parametr akce na základě předaných parametrů.
Předek třídy¶
Třída byla odvozena ze třídy ParametrizedActionType, protože jde o třídu která je parametrizovaná.
class FunctionAction(ParametrizedActionType):
Jméno a popis akce¶
Definujeme jméno a popis třídy.
name = "Function"
"""Display name of action"""
description = "Function"
"""Display description of action"""
Metoda __init__¶
Metoda __init__ bude přebírat parametry Params a Expressions. Dále je volána metoda __init__ předka.
def __init__(self, **kwargs):
"""
:param list of str Params: input parameters
example:
["x1", "x2", "x3"]
:param list of srt Expressions: function prescription
example:
["y1 = 1 * x1 + 2 * x2", "y2 = 3 * x1 + 4 * x2", "y3 = sin(x3)"]
:param action or DTT Input: action DTT variable
"""
super().__init__(**kwargs)
Metoda _inicialize¶
Metoda _inicialize inicializuje proměné akce. Nastaví stav akce na ActionStateType.initialized.
self._set_state(ActionStateType.initialized)
Zavolá metodu self._process_base_hash() pro vytvoření hashe ze základních údajů o třídě.
self._process_base_hash()
Přidá vlastní parametry do hashe.
if 'Params' in self._variables and \
isinstance(self._variables['Params'], list):
for par in self._variables['Params']:
self._hash.update(bytes(par, "utf-8"))
if 'Expressions' in self._variables and \
isinstance(self._variables['Expressions'], list):
for ex in self._variables['Expressions']:
self._hash.update(bytes(ex, "utf-8"))
A nastaví výstup akce.
self._output = self.__func_output()
Metoda _get_variables_script¶
Metoda slouží k vygenerování pythoního skriptu seznamu “_variables”. Nejprve je volána metoda předka.
var = super()._get_variables_script()
Dále jsou přidány proměné vlastní akce a výsledek je vrácen jako návratová hodnota.
Metoda _update¶
Tato metoda řeší vlastní provedení akce. V našem případě zavolá výpočet funkce.
self._output = self.__func_result()
Následně vrátí None.
Metoda _check_params¶
Metoda zkontroluje správnost zadání parametrů, včetně jejich typů. Vrátí seznam chyb, které nastaly při kontrole.
Metoda validate¶
Tato metoda slouží ke kontrole, jestli předchozí akce poskytuje na svém výstupu správný typ dat. Nejprve zavolá metodu předka.
err = super().validate()
Dále pak zkontroluje typ vrácený předchozí akcí. Vrací seznam zjistěných chyb.
Metoda __get_require_params¶
Slouží ke zjištění seznamu parametrů, které budou očekávány na vstupu akce. Tyto parametry získá z proměné “Params”.
Metoda __parse_expressions¶
Metoda slouží k předpřipravení předpisu funkce. Předpis rozdělí na výstupní proměnou a vlastní předpis. Metoda vrací seznam tuplů (výstupní proměná, předpis funkce).
Metoda __func_output¶
Tato metoda vygeneruje z předpisu funkce výstupní datový typ akce.
Metoda __func_result¶
Provede vlatní vyhodnocení funkce na základě parametrů předaných předchozí třídou.