def removed_functions(): # all these functions do not exist anymore, but we need to give a hint # to users upgrading to_remove = [ ('countlink', Count), ('sumlink', Sum), ('avglink', Avg), ('minlink', Min), ('maxlink', Max) ] return {name: removed(func, "%s(link, ...)" % name, "link.%s(...)" % name[:-4]) for name, func in to_remove}
# force float to avoid overflows with integer input expressions cumsum = np.cumsum(sorted_values, dtype=float) values_sum = cumsum[-1] if values_sum == 0: print("gini(%s, filter=%s): expression is all zeros (or nan) " "for filter" % (self.args[0], filter)) return (n + 1 - 2 * np.sum(cumsum) / values_sum) / n dtype = always(float) def make_dispatcher(agg_func, elem_func): def dispatcher(*args, **kwargs): func = agg_func if len(args) == 1 else elem_func return func(*args, **kwargs) return dispatcher functions = { 'all': All, 'any': Any, 'count': Count, 'min': make_dispatcher(Min, exprmisc.Min), 'max': make_dispatcher(Max, exprmisc.Max), 'sum': Sum, 'avg': Average, 'std': Std, 'median': Median, 'percentile': Percentile, 'gini': Gini } for k, v in functions.items(): functions['grp' + k] = removed(v, 'grp' + k, k)
"for filter" % (self.args[0], filter)) return (n + 1 - 2 * np.sum(cumsum) / values_sum) / n dtype = always(float) def make_dispatcher(agg_func, elem_func): def dispatcher(*args, **kwargs): func = agg_func if len(args) == 1 else elem_func return func(*args, **kwargs) return dispatcher functions = { 'all': All, 'any': Any, 'count': Count, 'min': make_dispatcher(Min, exprmisc.Min), 'max': make_dispatcher(Max, exprmisc.Max), 'sum': Sum, 'avg': Average, 'std': Std, 'median': Median, 'percentile': Percentile, 'gini': Gini } for k, v in functions.items(): functions['grp' + k] = removed(v, 'grp' + k, k)