class_docstr: Environment wrapper for OpenSpiel RL environments.
class_docstr_tok: ["Environment","wrapper","for","OpenSpiel","RL","environments","."]
code: def observation_spec(self) -> OLT:
      # Observation spec depends on whether the OpenSpiel environment is using
      # observation/information_state tensors.
      if self._environment.use_observation:
          return OLT(
              observation=specs.Array(
                  (self._environment.game.observation_tensor_size(),),
                  np.float32,
              ),
              legal_actions=specs.Array(
                  (self._environment.game.num_distinct_actions(),),
                  np.float32,
              ),
              terminal=specs.Array((1,), np.float32),
          )
      else:
          return OLT(
              observation=specs.Array(
                  (
                      self._environment.game.information_state_tensor_size(),
                  ),
                  np.float32,
              ),
              legal_actions=specs.Array(
                  (self._environment.game.num_distinct_actions(),),
                  np.float32,
              ),
              terminal=specs.Array((1,), np.float32),
          )
  
imports: from typing import List, NamedTuple
  from acme import specs
  from acme import types
  import dm_env
  import numpy
  from open_spiel.python import rl_environment
label_desc: Use image node_id 5 for calling the OpenSpielWrapper obj's underlying member method code with example usage: obj.observation_spec() and returns: OLT, OLT