code: def __check_atari_obs_space(obs):
      # TODO(Artur): Remove this after we have migrated deepmind style preprocessing into
      #  connectors (and don't auto-wrap in RW anymore)
      if any(
          o.shape == ATARI_OBS_SHAPE
          if isinstance(o, np.ndarray)
          else False
          for o in tree.flatten(obs)
      ):
          if log_once("warn_about_possibly_non_wrapped_atari_env"):
              logger.warning(
                  "The observation you fed into local_policy_inference() has "
                  "dimensions (210, 160, 3), which is the standard for atari "
                  "environments. If RLlib raises an error including a related "
                  "dimensionality mismatch, you may need to use "
                  "ray.rllib.env.wrappers.atari_wrappers.wrap_deepmind to wrap "
                  "you environment."
              )
  
imports: import gymnasium
  import logging
  import numpy
  import re
  from typing import Callable, Dict, List, Mapping, Optional, Tuple, Type, Union, TYPE_CHECKING
  import tree
  import ray.cloudpickle
  from ray.rllib.models.preprocessors import ATARI_OBS_SHAPE
  from ray.rllib.policy.policy import PolicySpec
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.deprecation import Deprecated
  from ray.rllib.utils.framework import try_import_tf
  from ray.rllib.utils.typing import ActionConnectorDataType, AgentConnectorDataType, AgentConnectorsOutput, PartialAlgorithmConfigDict, PolicyState, TensorStructType, TensorType
  from ray.util import log_once
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 7 for calling a global function with example usage: __check_atari_obs_space(obs) without return types