class_docstr: Batch together environments and simulate them in external processes.
  
  The environments are created in external processes by calling the provided
  callables. This can be an environment class, or a function creating the
  environment and potentially wrapping it. The returned environment should not
  access global variables.
class_docstr_tok: ["Batch","together","environments","and","simulate","them","in","external","processes",".","The","environments","are","created","in","external","processes","by","calling","the","provided","callables",".","This","can","be","an","environment","class",",","or","a","function","creating","the","environment","and","potentially","wrapping","it",".","The","returned","environment","should","not","access","global","variables","."]
docstr: Forward a batch of actions to the wrapped environments.
  
  Args:
    actions: Batched action, possibly nested, to apply to the environment.
  
  Raises:
    ValueError: Invalid actions.
  
  Returns:
    Batch of observations, rewards, and done flags.
docstr_tok: ["Forward","a","batch","of","actions","to","the","wrapped","environments",".","Args",":","actions",":","Batched","action",",","possibly","nested",",","to","apply","to","the","environment",".","Raises",":","ValueError",":","Invalid","actions",".","Returns",":","Batch","of","observations",",","rewards",",","and","done","flags","."]
code: def _step(self, actions):
      """Forward a batch of actions to the wrapped environments.
  
      Args:
        actions: Batched action, possibly nested, to apply to the environment.
  
      Raises:
        ValueError: Invalid actions.
  
      Returns:
        Batch of observations, rewards, and done flags.
      """
      time_steps = [
          env.step(action, self._blocking)
          for env, action in zip(
              self._envs, self._unstack_actions(actions)
          )
      ]
      # When blocking is False we get promises that need to be called.
      if not self._blocking:
          time_steps = [promise() for promise in time_steps]
      return self._stack_time_steps(time_steps)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import atexit
  import sys
  import traceback
  from typing import Any, Callable, Sequence, Text, Union
  from absl import logging
  import cloudpickle
  import gin
  import numpy
  import tensorflow
  from tf_agents.environments import py_environment
  from tf_agents.system import system_multiprocessing
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 10 for calling the ParallelPyEnvironment obj's underlying member method code with example usage: obj._step(actions) and returns: self