parameters: (
          self,
          interval_seconds: float,
          reader: Reader[DataT],
          listener: Listener[DataT],
          loop: Optional[asyncio.AbstractEventLoop] = None,
      )
docstring: Constructor.
  
          Args:
              interval_seconds: time in between polls.
              reader: The data reader.
              listener: event listener.
              loop: Optional event loop to use
docstring_summary: Constructor.
docstring_tokens: Constructor .
function: def __init__(
          self,
          interval_seconds: float,
          reader: Reader[DataT],
          listener: Listener[DataT],
          loop: Optional[asyncio.AbstractEventLoop] = None,
      ) -> None:
          """
          Constructor.
  
          Args:
              interval_seconds: time in between polls.
              reader: The data reader.
              listener: event listener.
              loop: Optional event loop to use
          """
          loop = loop or asyncio.get_running_loop()
          self._shutdown_event = asyncio.Event(loop=loop)
          self._interval = interval_seconds
          self._listener = listener
          self._reader = reader
          self._task = loop.create_task(self._poller())
function_tokens: def __init__ ( self , interval_seconds : float , reader : Reader [ DataT ] , listener : Listener [ DataT ] , loop : Optional [ asyncio . AbstractEventLoop ] = None , ) -> None : loop = loop or asyncio . get_running_loop ( ) self . _shutdown_event = asyncio . Event ( loop = loop ) self . _interval = interval_seconds self . _listener = listener self . _reader = reader self . _task = loop . create_task ( self . _poller ( ) )