コード例 #1
0
    def insert_data(self, key_string: str, value, values: dict):
        """
        Speichert Daten unter `key_string`.

        Verwendet :func:`data_insert_pattern`, um Daten einzufügen.

        :param key_string: Pfad zu den Daten in self.data.
            Besteht aus den Keys zu den Daten, getrennt mit | (Pipe) Symbolen.
        :param value: Wert, der eingefügt werden soll
        :param values: Werte aus der JSON-Datei
        :raises: StepKeyError
        """
        key_string = self.__prepare_data_manipulation(key_string, values)

        data_insert_pattern(key_string, self.__data, value)

        self.__clean_up_data_manipulation()
コード例 #2
0
def select(values: dict, data: StepData):
    """Entfernt alle Keys, die nicht in `"relevant_keys"` stehen aus dem Dictionary.

    :param values: Werte aus der JSON-Datei
    :param data: Daten aus der API
    """
    root = values.get("_loop_states", {}).get("_loop", None)

    if root is None:
        # If root is data root
        old_root = dict(data.data)
        data.clear_data()
        root = data.data
    else:
        old_root = dict(root)
        root.clear()

    for key in values["relevant_keys"]:
        try:
            data_insert_pattern(key, root, data_get_pattern(key, old_root))
        except:
            if values.get("ignore_errors", False) is False:
                raise