class_docstr: Implements random noop starts to episodes.
  
  This introduces randomness into an otherwise deterministic environment.
  
  Note that the base environment must support a no-op action and the value
  of this action must be known and provided to this wrapper.
docstr: Resets environment and provides the first timestep.
code: def reset(self) -> dm_env.TimeStep:
      """Resets environment and provides the first timestep."""
      noops = self.np_random.randint(self._noop_max + 1)
      timestep = self.environment.reset()
      for _ in range(noops):
          timestep = self.environment.step(self._noop_action)
          if timestep.last():
              timestep = self.environment.reset()
  
      return timestep._replace(step_type=dm_env.StepType.FIRST)
  
file_path: acme/acme/wrappers/noop_starts.py
imports: from typing import Optional
  from acme import types
  from acme.wrappers import base
  import dm_env
  import numpy
label_desc: Use image node_id 2 for calling the NoopStartsWrapper obj's underlying member method code with example usage: obj.reset() and returns: timestep