def __get_generator(task, *args, **kwargs):
if args:
target = args[0]
args = args[1:]
else:
target = kwargs.pop('target', None)
args = kwargs.pop('args', ())
kwargs = kwargs.pop('kwargs', kwargs)
if not inspect.isgeneratorfunction(target):
raise Exception('%s is not a generator!' % target.__name__)
if target.func_defaults and \
'task' in target.func_code.co_varnames[:target.func_code.co_argcount][-len(target.func_defaults):]:
kwargs['task'] = task
return target(*args, **kwargs)
评论列表
文章目录