code: async def chunks(source, n):
      
      async with streamcontext(source) as streamer:
          async for first in streamer:
              xs = select.take(create.preserve(streamer), n-1)
              yield [first] + await aggregate.list(xs)
docs: Generate chunks of size ``n`` from an asynchronous sequence.
  
      The chunks are lists, and the last chunk might contain less than ``n``
      elements.