parameters: (self,
                   hostname: str = "localhost",
                   lidar_port: int = 7502,
                   imu_port: int = 7503,
                   *,
                   metadata: Optional[SensorInfo] = None,
                   buf_size: int = 128,
                   timeout: Optional[float] = 1.0,
                   _overflow_err: bool = False,
                   _flush_before_read: bool = True,
                   _legacy_format: bool = True)
docstring: Neither the ports nor udp destination configuration on the sensor will
          be updated. The metadata will be fetched over the network from the
          sensor unless explicitly provided using the ``metadata`` parameter.
  
          Args:
              hostname: hostname or IP address of the sensor
              lidar_port: UDP port to listen on for lidar data
              imu_port: UDP port to listen on for imu data
              metadata: explicitly provide metadata for the stream
              buf_size: number of packets to buffer before dropping data
              timeout: seconds to wait for packets before signaling error or None
              _overflow_err: if True, raise ClientOverflow
              _flush_before_read: if True, try to clear buffers before reading
              _legacy_format: if True, use legacy metadata format
  
          Raises:
              ClientError: If initializing the client fails.
docstring_summary: Neither the ports nor udp destination configuration on the sensor will
          be updated. The metadata will be fetched over the network from the
          sensor unless explicitly provided using the ``metadata`` parameter.
docstring_tokens: Neither the ports nor udp destination configuration on the sensor will be updated . The metadata will be fetched over the network from the sensor unless explicitly provided using the metadata parameter .
function: def __init__(self,
                   hostname: str = "localhost",
                   lidar_port: int = 7502,
                   imu_port: int = 7503,
                   *,
                   metadata: Optional[SensorInfo] = None,
                   buf_size: int = 128,
                   timeout: Optional[float] = 1.0,
                   _overflow_err: bool = False,
                   _flush_before_read: bool = True,
                   _legacy_format: bool = True) -> None:
          """
          Neither the ports nor udp destination configuration on the sensor will
          be updated. The metadata will be fetched over the network from the
          sensor unless explicitly provided using the ``metadata`` parameter.
  
          Args:
              hostname: hostname or IP address of the sensor
              lidar_port: UDP port to listen on for lidar data
              imu_port: UDP port to listen on for imu data
              metadata: explicitly provide metadata for the stream
              buf_size: number of packets to buffer before dropping data
              timeout: seconds to wait for packets before signaling error or None
              _overflow_err: if True, raise ClientOverflow
              _flush_before_read: if True, try to clear buffers before reading
              _legacy_format: if True, use legacy metadata format
  
          Raises:
              ClientError: If initializing the client fails.
          """
          self._cli = _client.Client(hostname, lidar_port, imu_port, buf_size)
          self._timeout = timeout
          self._overflow_err = _overflow_err
          self._flush_before_read = _flush_before_read
          self._cache = None
          self._fetched_meta = ""
          self._legacy_format = _legacy_format
  
          # Fetch from sensor if not explicitly provided
          if metadata:
              self._metadata = metadata
          else:
              self._fetch_metadata()
              self._metadata = SensorInfo(self._fetched_meta)
          self._pf = _client.PacketFormat.from_info(self._metadata)
  
          # Use args to avoid capturing self causing circular reference
          self._producer = Thread(target=lambda cli, pf: cli.produce(pf),
                                  args=(self._cli, self._pf))
          self._producer.start()
function_tokens: def __init__ ( self , hostname : str = "localhost" , lidar_port : int = 7502 , imu_port : int = 7503 , * , metadata : Optional [ SensorInfo ] = None , buf_size : int = 128 , timeout : Optional [ float ] = 1.0 , _overflow_err : bool = False , _flush_before_read : bool = True , _legacy_format : bool = True ) -> None : self . _cli = _client . Client ( hostname , lidar_port , imu_port , buf_size ) self . _timeout = timeout self . _overflow_err = _overflow_err self . _flush_before_read = _flush_before_read self . _cache = None self . _fetched_meta = "" self . _legacy_format = _legacy_format # Fetch from sensor if not explicitly provided if metadata : self . _metadata = metadata else : self . _fetch_metadata ( ) self . _metadata = SensorInfo ( self . _fetched_meta ) self . _pf = _client . PacketFormat . from_info ( self . _metadata ) # Use args to avoid capturing self causing circular reference self . _producer = Thread ( target = lambda cli , pf : cli . produce ( pf ) , args = ( self . _cli , self . _pf ) ) self . _producer . start ( )