def compose(X, *args, **kwargs): if type(X) == FunctionType: # compose used as decorator def helper(*args, **kwargs): return _compose(X(*args, **kwargs)) return helper elif is_generator(X): return _compose(X, *args, **kwargs) raise TypeError("compose() expects generator, got %s" % repr(X))
def helper(*args, **kwargs): return _compose(X(*args, **kwargs))