Пример #1
0
    def _read(self, fp, filename):  # pylint: disable=arguments-differ
        # first pass
        ConfigParser._read(self, fp, filename)

        # let's expand it now if needed
        defaults = self.defaults()

        def _list(name):
            if name not in defaults:
                return []
            value = defaults[name]
            if not isinstance(value, list):
                value = [value]
            return value

        if 'extends' in defaults or 'overrides' in defaults:
            interpolate = self._interpolation.before_get

            for file_ in _list('extends'):
                file_ = interpolate(self, 'defaults', 'extends', file_, {})
                self._extend(file_)

            for file_ in _list('overrides'):
                file_ = interpolate(self, 'defaults', 'overrides', file_, {})
                self._extend(file_, override=True)
Пример #2
0
    def _read(self, fp, filename):  # pylint: disable=arguments-differ
        # first pass
        ConfigParser._read(self, fp, filename)

        # let's expand it now if needed
        defaults = self.defaults()

        def _list(name):
            if name not in defaults:
                return []
            value = defaults[name]
            if not isinstance(value, list):
                value = [value]
            return value

        if 'extends' in defaults or 'overrides' in defaults:
            interpolate = self._interpolation.before_get

            for file_ in _list('extends'):
                file_ = interpolate(self, 'defaults', 'extends', file_, {})
                self._extend(file_)

            for file_ in _list('overrides'):
                file_ = interpolate(self, 'defaults', 'overrides', file_, {})
                self._extend(file_, override=True)
Пример #3
0
def read_from_config_stream(config_fp, source="<stream>"):
    """
    Read config from config file (.ini, .cfg)
    """
    parser = ConfigParser()
    parser._read(config_fp, source)

    source = "config[{file_name}]".format(
        file_name=os.path.basename(str(source)))
    new_config = _ConfigStore()
    for section in parser.sections():
        for option in parser.options(section):
            value = parser.get(section, option)
            new_config.set_config_value(
                section, option, ConfigValue(value, source,
                                             require_parse=True))

    return new_config
Пример #4
0
 def _read(self, fp, fpname):
     self._sections.fp.fp = fp
     self._sections.fp.name = fpname
     self._sections.fp.lineno = 0
     ConfigParser._read(self, self._sections.fp, fpname)
     self._sections.fp.__init__()