def get_input_values(self, f_inputs, output): """ Scans the whole conditions object looking for input values, adds them with the function inputs. :param f_inputs: function inputs. :param output: the output of the row. :return: All possible inputs that are not keywords. """ remove_elements = KEYWORDS.values() f_inputs = list(f_inputs) input_values = [] for row in self: if KEYWORDS[OUTPUT] in row and row[KEYWORDS[OUTPUT]] == output: keys = helpers.remove_list_from_list(row.keys(), f_inputs) keys = helpers.remove_list_from_list(keys, remove_elements) input_values += [row[k] for k in keys] return f_inputs + input_values
def get_input_keys(self, f_inputs, output): """ Scans the whole conditions object looking for input keys. Will add inputs such as code pieces, that are not explicitly declared as function inputs. :param f_inputs: function inputs. :param output: the output of the row. :return: All possible inputs that are not keywords. """ f_inputs = list(f_inputs) new_inputs = [] for row in self: if KEYWORDS[OUTPUT] in row and row[KEYWORDS[OUTPUT]] == output: new_inputs += helpers.remove_list_from_list(row.keys(), f_inputs) all_elements = f_inputs + new_inputs remove_elements = KEYWORDS.values() return helpers.remove_list_from_list(all_elements, remove_elements)