code: def get_filter(filter_config, shape):
      # TODO(rliaw): move this into filter manager
      if filter_config == "MeanStdFilter":
          return MeanStdFilter(shape, clip=None)
      elif filter_config == "ConcurrentMeanStdFilter":
          return ConcurrentMeanStdFilter(shape, clip=None)
      elif filter_config == "NoFilter":
          return NoFilter()
      elif callable(filter_config):
          return filter_config(shape)
      else:
          raise Exception(
              "Unknown observation_filter: " + str(filter_config)
          )
  
imports: import logging
  import threading
  import numpy
  import tree
  from ray.rllib.utils.annotations import DeveloperAPI
  from ray.rllib.utils.deprecation import Deprecated
  from ray.rllib.utils.numpy import SMALL_NUMBER
  from ray.rllib.utils.typing import TensorStructType
  from ray.rllib.utils.serialization import _serialize_ndarray, _deserialize_ndarray
  from ray.rllib.utils.deprecation import deprecation_warning
label_desc: Use image node_id 1 for calling a global function with example usage: get_filter(filter_config, shape) and returns: MeanStdFilter, ConcurrentMeanStdFilter, NoFilter, filter_config