class_docstr: A connector that wraps around existing RLlib observation preprocessors.
  
  This includes:
  - OneHotPreprocessor for Discrete and Multi-Discrete spaces.
  - GenericPixelPreprocessor and AtariRamPreprocessor for Atari spaces.
  - TupleFlatteningPreprocessor and DictFlatteningPreprocessor for flattening
    arbitrary nested input observations.
  - RepeatedValuesPreprocessor for padding observations from RLlib Repeated
    observation space.
class_docstr_tok: ["A","connector","that","wraps","around","existing","RLlib","observation","preprocessors",".","This","includes",":","-","OneHotPreprocessor","for","Discrete","and","Multi-Discrete","spaces",".","-","GenericPixelPreprocessor","and","AtariRamPreprocessor","for","Atari","spaces",".","-","TupleFlatteningPreprocessor","and","DictFlatteningPreprocessor","for","flattening","arbitrary","nested","input","observations",".","-","RepeatedValuesPreprocessor","for","padding","observations","from","RLlib","Repeated","observation","space","."]
code: def from_state(ctx: ConnectorContext, params: Any):
      return ObsPreprocessorConnector(ctx)
  
file_path: ray/rllib/connectors/agent/obs_preproc.py
imports: from typing import Any
  from ray.rllib.connectors.connector import AgentConnector, ConnectorContext
  from ray.rllib.connectors.registry import register_connector
  from ray.rllib.models.preprocessors import get_preprocessor, NoPreprocessor
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.typing import AgentConnectorDataType
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 5 for calling the ObsPreprocessorConnector obj's underlying member method code with example usage: obj.from_state(ctx, params) and returns: ObsPreprocessorConnector