docstr: Change the parent class of the agent.
  Additionally, updates the full name of the agent
  
  :param val: the new parent
  :return: None
docstr_tok: ["Change","the","parent","class","of","the","agent",".","Additionally",",","updates","the","full","name","of","the","agent",":","param","val",":","the","new","parent",":","return",":","None"]
code: def parent(self, val) -> None:
      """
      Change the parent class of the agent.
      Additionally, updates the full name of the agent
  
      :param val: the new parent
      :return: None
      """
      self._parent = val
      if self._parent is not None:
          if not hasattr(self._parent, "name"):
              raise ValueError(
                  "The parent of an agent must have a name"
              )
          self.full_name_id = self.ap.full_name_id = "{}/{}".format(
              self._parent.name, self.name
          )
  
imports: import copy
  import random
  from collections import OrderedDict
  from typing import Dict, List, Union, Tuple
  import numpy
  from six.moves import range
  from rl_coach.agents.agent_interface import AgentInterface
  from rl_coach.architectures.network_wrapper import NetworkWrapper
  from rl_coach.base_parameters import AgentParameters, Device, DeviceType, DistributedTaskParameters, Frameworks
  from rl_coach.core_types import RunPhase, PredictionType, EnvironmentEpisodes, ActionType, Batch, Episode, StateType
  from rl_coach.core_types import Transition, ActionInfo, TrainingSteps, EnvironmentSteps, EnvResponse
  from rl_coach.logger import screen, Logger, EpisodeLogger
  from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplay
  from rl_coach.saver import SaverCollection
  from rl_coach.spaces import SpacesDefinition, VectorObservationSpace, GoalsSpace, AttentionActionSpace
  from rl_coach.utils import Signal, force_list
  from rl_coach.utils import dynamic_import_and_instantiate_module_from_params
  from rl_coach.memories.backend.memory_impl import get_memory_backend
  from rl_coach.core_types import TimeTypes
  from rl_coach.off_policy_evaluators.ope_manager import OpeManager
  from rl_coach.core_types import PickledReplayBuffer, CsvDataset
label_desc: Use image node_id 3 for calling the Agent obj's underlying member method code with example usage: obj.parent(val) without return types