code: def setup_system(self, system, name_from_system='', **kwargs):
          
  
          if not self.system:
              self.system = system
          name, traits = self._passed_arguments
          new_name = self.system.get_unique_name(self, name, name_from_system)
          if not self in self.system.reverse:
              self.name = new_name
          self.logger = self.system.logger.getChild('%s.%s' % (self.__class__.__name__, self.name))
          self.logger.setLevel(self.log_level)
          if name is None and 'name' in traits:  # Only __setstate__ sets name to None. Default is ''.
              del traits['name']
  
          for cname in self.callables:
              if cname in traits:
                  c = self._postponed_callables[cname] = traits.pop(cname)
                  c.setup_callable_system(self.system)
              getattr(self, cname).setup_callable_system(self.system)
  
          if not self.traits_inited():
              super().__init__(**traits)
          self.name_changed_event = True
          self.setup()
docs: Set system attribute and do some initialization. Used by System.