title: Python async AttributeError aexit
body: <p>I keep getting error <code>AttributeError: __aexit__</code> on the code below, but I don't really understand why this happens.  </p>
  
  <p>My Python version is: <code>3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]</code></p>
  
  <pre><code>import aiohttp
  import asyncio
  import tqdm
  
  
  async def fetch_url(session_, url_, timeout_=10):
      with aiohttp.Timeout(timeout_):
          async with session_.get(url_) as response:
              text = await response.text()
              print("URL: {} - TEXT: {}".format(url_, len(text)))
              return text
  
  
  async def parse_url(session, url, timeout=10):
      # get doc from url
      async with await fetch_url(session, url, timeout) as doc:
          print("DOC: {}".format(doc, len(doc)))
          return doc
  
  
  async def parse_urls(session, urls, loop):
      tasks = [parse_url(session, url) for url in urls]
      responses = [await f for f in tqdm.tqdm(asyncio.as_completed(tasks), total = len(tasks))]
      return responses
  
  
  if __name__ == '__main__':
  
      tickers = ['CTXS', 'MSFT', 'AAPL', 'GPRO', 'G', 'INTC', 'SYNC', 'SYNA']
      urls = ["https://finance.yahoo.com/quote/{}".format(ticker) for ticker in tickers]
  
      loop = asyncio.get_event_loop()
      with aiohttp.ClientSession(loop=loop) as session:
          parsed_data = loop.run_until_complete(parse_urls(session, urls, loop))
          print(parsed_data)
  </code></pre>
  
  <p>Error callstack:</p>
  
  <pre><code>C:\Python\Python36\python.exe C:/Users/me/.PyCharmCE2017.3/config/scratches/scratch_4.py
    0%|          | 0/8 [00:00&lt;?, ?it/s]Traceback (most recent call last):
  URL: https://finance.yahoo.com/quote/CTXS - TEXT: 462138
    File "C:/Users/me/.PyCharmCE2017.3/config/scratches/scratch_4.py", line 34, in &lt;module&gt;
      parsed_data = loop.run_until_complete(parse_urls(session, urls, loop))
    File "C:\Python\Python36\lib\asyncio\base_events.py", line 467, in run_until_complete
      return future.result()
    File "C:/Users/me/.PyCharmCE2017.3/config/scratches/scratch_4.py", line 23, in parse_urls
      responses = [await f for f in tqdm.tqdm(asyncio.as_completed(tasks), total = len(tasks))]
    File "C:/Users/me/.PyCharmCE2017.3/config/scratches/scratch_4.py", line 23, in &lt;listcomp&gt;
      responses = [await f for f in tqdm.tqdm(asyncio.as_completed(tasks), total = len(tasks))]
    File "C:\Python\Python36\lib\asyncio\tasks.py", line 458, in _wait_for_one
      return f.result()  # May raise f.exception().
    File "C:/Users/me/.PyCharmCE2017.3/config/scratches/scratch_4.py", line 16, in parse_url
      async with await fetch_url(session, url, timeout) as doc:
  AttributeError: __aexit__
  
  
  Process finished with exit code 1
  </code></pre>