docs: def load_addon_packages(self, config_data):
          """
          Loads the module paths from which the configuration will attempt to
          load sanitizers from. These must be stored as a list of strings under
          "config.addons" section of the configuration data.
  
          :param config_data: Already parsed configuration data, as dictionary.
          :type config_data: dict[str,any]
          """
          section_config = config_data.get("config")
          if not isinstance(section_config, dict):
              if section_config is None:
                  return
              raise ConfigurationError(
                  "'config' is %s instead of dict" % (
                      type(section_config),
                  ),
              )
  
          section_addons = section_config.get("addons", [])
          if not isinstance(section_addons, list):
              raise ConfigurationError(
                  "'config.addons' is %s instead of list" % (
                      type(section_addons),
                  ),
              )
  
          for index, module_path in enumerate(section_addons):
              if not isinstance(module_path, six.text_type):
                  raise ConfigurationError(
                      "Item %d in 'config.addons' is %s instead of string" % (
                          index,
                          type(module_path),
                      ),
                  )
  
          self.addon_packages = list(section_addons)