def METHOD_NAME(self, files: Iterable[str]):
    # Escape the percent signs so that ConfigParser doesn't try to do
    # interpolation of the value as well.
    config = configparser.ConfigParser({f"ENV:{key}": val.replace("%", "%%") for key, val in os.environ.items()})
    try:
        config.read(files)
    except UnicodeDecodeError as e:
        print(
            bold(
                red(
                    f"please fix your config file(s): {', '.join(files)} - "
                    f"Pay attention for bytes c2 xa - {e.object}\n\n{e.reason}"
                )
            )
        )
        raise
    self.fullconfig = config._sections
    for section in config.sections():
        dct = Dictionary()
        for name, value in config.items(section):
            if name.startswith("env:"):
                continue
            try:
                # Ugly fix to avoid '0' and '1' to be parsed as a boolean value.
                # We raise an exception to parse it as an integer.
                if value in {"0", "1"}:
                    raise ValueError
                value = config.getboolean(section, name)
            except ValueError:
                try:
                    value = config.getint(section, name)
                except ValueError:
                    value = config.get(section, name)
            setattr(dct, name, value)
        setattr(self, section, dct)