code: async def get(self) -> InfoDict:
          
          if self._seen_kork:
              raise AnalysisComplete()
  
          info = await self._queue.get()
          if not info:
              # Empty dictionary marks end.
              self._seen_kork = True
              await self._finished
              raise AnalysisComplete()
  
          return info
docs: Waits for the next dictionary of information from the engine and
          returns it.
  
          It might be more convenient to use ``async for info in analysis: ...``.
  
          :raises: :exc:`chess.engine.AnalysisComplete` if the analysis is
              complete (or has been stopped) and all information has been
              consumed. Use :func:`~chess.engine.AnalysisResult.next()` if you
              prefer to get ``None`` instead of an exception.