def test_convert_to_output_format_wrong_order(self): out = convert_to_output_format({"width": 1, "coeff": "a"}) expected_out = 'coeff_"a"__width_1' self.assertEqual(out, expected_out) out = convert_to_output_format({"c": 1, "b": 2, "a": 3}) expected_out = 'a_3__b_2__c_1' self.assertEqual(out, expected_out)
def test_convert_to_output_format(self): out = convert_to_output_format({"p1": 1, "p2": "a"}) expected_out = 'p1_1__p2_"a"' self.assertEqual(out, expected_out) out = convert_to_output_format({"list": [1, 2, 4]}) expected_out = 'list_[1, 2, 4]' self.assertEqual(out, expected_out) out = convert_to_output_format({"list": ["a", "b", "c"]}) expected_out = "list_['a', 'b', 'c']" self.assertEqual(out, expected_out)
def _f(): for function_name, parameter_list in fc_parameters.items(): func = getattr(feature_calculators, function_name) if func.fctype == "combiner": result = func(data, param=parameter_list) else: if parameter_list: result = ((convert_to_output_format(param), func(data, **param)) for param in parameter_list) else: result = [("", func(data))] for key, item in result: feature_name = str(kind) + "__" + func.__name__ if key: feature_name += "__" + str(key) yield {"variable": feature_name, "value": item, "id": sample_id}
def _f(): for function_name, parameter_list in fc_parameters.items(): func = getattr(feature_calculators, function_name) # If the function uses the index, pass is at as a pandas Series. # Otherwise, convert to numpy array if getattr(func, 'input', False) == 'pd.Series': # If it has a required index type, check that the data has the right index type. index_type = getattr(func, 'index_type', None) if index_type is not None: try: assert isinstance(data.index, index_type) except AssertionError: warnings.warn( "{} requires the data to have a index of type {}. Results will " "not be calculated".format(function_name, index_type)) continue x = data else: x = data.values if func.fctype == "combiner": result = func(x, param=parameter_list) else: if parameter_list: result = ((convert_to_output_format(param), func(x, **param)) for param in parameter_list) else: result = [("", func(x))] for key, item in result: feature_name = str(kind) + "__" + func.__name__ if key: feature_name += "__" + str(key) yield { "variable": feature_name, "value": item, "id": sample_id }