code: def as_completed(objects, count=None, timeout=None):
      
      for obj in objects:
          if not hasattr(obj, 'add_done_callback'):
              raise TypeError('Expecting sequence of waitable objects')
      if count is None:
          count = len(objects)
      if count < 0 or count > len(objects):
          raise ValueError('count must be between 0 and len(objects)')
      if count == 0:
          return
      pending = list(objects)
      for obj in _wait(pending, timeout):
          yield obj
          count -= 1
          if count == 0:
              break
docs: Wait for one or more waitable objects, yielding them as they become
      ready.
  
      This is the iterator/generator version of :func:`wait`.