title: Aggregating an async generator to a tuple
body: <p>In trying to aggregate the results from an asynchronous generator, like so:</p>
  
  <pre><code>async def result_tuple():
      async def result_generator():
          # some await things happening in here
          yield 1
          yield 2
      return tuple(num async for num in result_generator())
  </code></pre>
  
  <p>I get a</p>
  
  <blockquote>
    <p>TypeError: 'async_generator' object is not iterable</p>
  </blockquote>
  
  <p>when executing the <code>async for</code> line.</p>
  
  <p>But <a href="https://www.python.org/dev/peps/pep-0530/#asynchronous-comprehensions" rel="noreferrer">PEP 530</a> seems to suggest that it should be valid:</p>
  
  <blockquote>
    <h3>Asynchronous Comprehensions</h3>
    
    <p>We propose to allow using async for inside list, set and dict comprehensions. Pending PEP 525 approval, we can also allow creation of asynchronous generator expressions.</p>
    
    <p>Examples:</p>
    
    <ul>
    <li>set comprehension: {i async for i in agen()};</li>
    <li>list comprehension: [i async for i in agen()];</li>
    <li>dict comprehension: {i: i ** 2 async for i in agen()};</li>
    <li>generator expression: (i ** 2 async for i in agen()).</li>
    </ul>
  </blockquote>
  
  <p>What's going on, and how can I aggregate an asynchronous generator into a single <code>tuple</code>?</p>