def make_arg_reduction(func, argfunc, is_nan_func=False):
 chunk = partial(arg_chunk, func, argfunc)
 combine = partial(arg_combine, func, argfunc)
 if is_nan_func:
  agg = partial(nanarg_agg, func, argfunc)
 else:
  agg = partial(arg_agg, func, argfunc)
 @wraps(argfunc)
 def _(x, axis=None, split_every=None):
  return arg_reduction(x, chunk, combine, agg, axis, split_every)
 return _

def make_arg_reduction ( func , argfunc , is_nan_func = False ) : chunk = partial ( arg_chunk , func , argfunc ) combine = partial ( arg_combine , func , argfunc ) if is_nan_func : agg = partial ( nanarg_agg , func , argfunc ) else : agg = partial ( arg_agg , func , argfunc ) @ wraps ( argfunc ) def _ ( x , axis = None , split_every = None ) : return arg_reduction ( x , chunk , combine , agg , axis , split_every ) return _
create a argreduction callable .