class_docstr: Batch env.
  
  Batch of environments. Assumes that all throws "done" on the same step.
  
  Observations and rewards are returned as arrays, done as single value.
class_docstr_tok: ["Batch","env",".","Batch","of","environments",".","Assumes","that","all","throws","``","done","''","on","the","same","step",".","Observations","and","rewards","are","returned","as","arrays",",","done","as","single","value","."]
code: def __init__(self, envs):
      self.env_batch = envs
      self.batch_size = len(self.env_batch)
      self.max_steps = self.env_batch[0].max_steps
      assert np.all(
          self.max_steps == env.max_steps for env in self.env_batch
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import shutil
  from absl import flags
  from dopamine.discrete_domains import logger
  import mock
  import numpy
  from tensor2tensor.rl import dopamine_connector
  import tensorflow.compat.v1
label_desc: Use image node_id 1 to create a new BatchEnv object from inherited base classes: object with example: obj = BatchEnv(envs)