docs: def _RunSingleHook(self, hook_cls, executed_set, required=None):
      """Run the single hook specified by resolving all its prerequisites."""
      # If we already ran do nothing.
      if hook_cls in executed_set:
        return
  
      # Ensure all the pre execution hooks are run.
      for pre_hook in hook_cls.pre:
        self._RunSingleHook(pre_hook, executed_set, required=hook_cls.__name__)
  
      # Now run this hook.
      cls_instance = hook_cls()
      if required:
        logging.debug("Initializing %s, required by %s", hook_cls.__name__,
                      required)
      else:
        logging.debug("Initializing %s", hook_cls.__name__)
  
      # Always call the Run hook.
      cls_instance.Run()
      executed_set.add(hook_cls)
  
      # Only call the RunOnce() hook if not already called.
      if hook_cls not in self.already_run_once:
        cls_instance.RunOnce()
        self.already_run_once.add(hook_cls)