def decorator(fun): _keygetter = keygetter if _keygetter is None: original_fn = get_original_fn(fun) argspec = inspect2.getfullargspec(original_fn) arg_names = argspec.args + argspec.kwonlyargs kwargs_defaults = get_kwargs_defaults(argspec) _keygetter = lambda args, kwargs: get_args_tuple( args, kwargs, arg_names, kwargs_defaults) return decorate(DeduplicateDecorator, fun.task_cls, _keygetter)(fun)
def cache_key(args, kwargs): return get_args_tuple(args, kwargs, arg_names, kwargs_defaults)