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.__defaults__ and \
'task' in target.__code__.co_varnames[:target.__code__.co_argcount][-len(target.__defaults__):]:
kwargs['task'] = task
return target(*args, **kwargs)
评论列表
文章目录