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