code: def obs_space_info(obs_space):
      
      if isinstance(obs_space, gym.spaces.Dict):
          assert isinstance(obs_space.spaces, OrderedDict)
          subspaces = obs_space.spaces
      else:
          subspaces = {None: obs_space}
      keys = []
      shapes = {}
      dtypes = {}
      for key, box in subspaces.items():
          keys.append(key)
          shapes[key] = box.shape
          dtypes[key] = box.dtype
      return keys, shapes, dtypes
docs: Get dict-structured information about a gym.Space.
  
      Returns:
        A tuple (keys, shapes, dtypes):
          keys: a list of dict keys.
          shapes: a dict mapping keys to shapes.
          dtypes: a dict mapping keys to dtypes.