def allow_lazy(func, *resultclasses):
    def wrapper(*args, **kwargs):
        for arg in list(args) + kwargs.values():
            if isinstance(arg, Promise):
                break
        else:
            return func(*args, **kwargs)
        return lazy(func, *resultclasses)(*args, **kwargs)
    return wraps(func)(wrapper)
L{HTTP11ClientProtocol.request} accepts a L{Request} and calls its
dataset/ETHPy150Open CollabQ/CollabQ/vendor/django/utils/functional.py/allow_lazy--crossover with--dataset/ETHPy150Open twisted/twisted/twisted/web/test/test_newclient.py/HTTP11ClientProtocolTests.test_request