docs: def AddOption(self, descriptor, constant=False):
      """Registers an option with the configuration system.
  
      Args:
        descriptor: A TypeInfoObject instance describing the option.
        constant: If this is set, the option is treated as a constant - it can be
          read at any time (before parsing the configuration) and it's an error to
          try to override it in a config file.
  
      Raises:
        RuntimeError: The descriptor's name must contain a . to denote the section
           name, otherwise we raise.
        AlreadyInitializedError: If the config has already been read it's too late
           to define new options.
      """
      if self.initialized:
        raise AlreadyInitializedError(
            "Config was already initialized when defining %s" % descriptor.name)
  
      descriptor.section = descriptor.name.split(".")[0]
      if descriptor.name in self.type_infos:
        logging.warning("Config Option %s multiply defined!", descriptor.name)
  
      self.type_infos.Append(descriptor)
      if constant:
        self.constants.add(descriptor.name)
  
      # Register this option's default value.
      self.defaults[descriptor.name] = descriptor.GetDefault()
      self.FlushCache()