code: async def cycle(source):
      
      while True:
          async with streamcontext(source) as streamer:
              async for item in streamer:
                  yield item
              # Prevent blocking while loop if the stream is empty
              await asyncio.sleep(0)
docs: Iterate indefinitely over an asynchronous sequence.
  
      Note: it does not perform any buffering, but re-iterate over
      the same given sequence instead. If the sequence is not
      re-iterable, the generator might end up looping indefinitely
      without yielding any item.