Exemple #1
0
def fetch(method, url, loop):
    session = ClientSession(loop=loop)

    if hasattr(session, '__aenter__'):
        yield from session.__aenter__()
    else:
        session.__enter__()

    try:
        _method = getattr(session, method)
        try:
            response = yield from asyncio.wait_for(_method(url),
                                                   timeout=None,
                                                   loop=loop)
        except TypeError:
            response = yield from asyncio.wait_for(_method(url), timeout=None)
        text = yield from response.text()

    finally:
        if hasattr(session, '__aexit__'):
            yield from session.__aexit__(*sys.exc_info())
        else:
            session.__exit__(*sys.exc_info())

    return text