docs: def _configspec_factory(self, section, module, infile):
          """
          ConfigObj(_inspec=True) factory method.
          ConfibObj instance that the "_inspec" argument is True
          is called "configspec".
  
          This method is called by ConfigReader._create_specs().
          Beforehand, you need to define
          type definitions and default values in "spec file" as follow:
          [memcached]
          module = string('memcached')
          host = string(default='127.0.0.1')
          port = integer(0, 65535, default=11211)
  
          Notes: Must be the same all The following values.
              "module" as the argument of _configspec_factory()
              "module" in the spec file
              section name in the spec file
                  (e.g: section name is [memcached] in the above case.)
  
          This method load the modules under the directories
          that is specified in config['global']['module_dir'] option,
          and return converted "configspec" for conf/defaults.cfg.
  
          Returned configspec is as follows:
          [local_memcached]
          module = string('memcached')
          host = string(default='127.0.0.1')
          port = integer(0, 65535, default=11211)
  
          In short Rename section name in spec file
          from [memcached] to specified [local_memcached] in conf/defaults.cfg.
          """
  
          configspec = self._configobj_factory(
              infile=infile,
              _inspec=True
          )
  
          # Override the name of section in spec file
          # by given module as argument.
          configspec.rename(module, section)
  
          return configspec