(self, filenames=None)
Adapted from distutils.dist.Distribution.parse_config_files,
        this method provides the same functionality in subtly-improved
        ways.
Adapted from distutils.dist.Distribution.parse_config_files,
        this method provides the same functionality in subtly-improved
        ways.
Adapted from distutils . dist . Distribution . parse_config_files this method provides the same functionality in subtly - improved ways .
def _parse_config_files(self, filenames=None):
        """
        Adapted from distutils.dist.Distribution.parse_config_files,
        this method provides the same functionality in subtly-improved
        ways.
        """
        from setuptools.extern.six.moves.configparser import ConfigParser

        # Ignore install directory options if we have a venv
        if six.PY3 and sys.prefix != sys.base_prefix:
            ignore_options = [
                'install-base', 'install-platbase', 'install-lib',
                'install-platlib', 'install-purelib', 'install-headers',
                'install-scripts', 'install-data', 'prefix', 'exec-prefix',
                'home', 'user', 'root']
        else:
            ignore_options = []

        ignore_options = frozenset(ignore_options)

        if filenames is None:
            filenames = self.find_config_files()

        if DEBUG:
            self.announce("Distribution.parse_config_files():")

        parser = ConfigParser()
        for filename in filenames:
            with io.open(filename, encoding='utf-8') as reader:
                if DEBUG:
                    self.announce("  reading {filename}".format(**locals()))
                (parser.read_file if six.PY3 else parser.readfp)(reader)
            for section in parser.sections():
                options = parser.options(section)
                opt_dict = self.get_option_dict(section)

                for opt in options:
                    if opt != '__name__' and opt not in ignore_options:
                        val = self._try_str(parser.get(section, opt))
                        opt = opt.replace('-', '_')
                        opt_dict[opt] = (filename, val)

            # Make the ConfigParser forget everything (so we retain
            # the original filenames that options come from)
            parser.__init__()

        # If there was a "global" section in the config file, use it
        # to set Distribution options.

        if 'global' in self.command_options:
            for (opt, (src, val)) in self.command_options['global'].items():
                alias = self.negative_opt.get(opt)
                try:
                    if alias:
                        setattr(self, alias, not strtobool(val))
                    elif opt in ('verbose', 'dry_run'):  # ugh!
                        setattr(self, opt, strtobool(val))
                    else:
                        setattr(self, opt, val)
                except ValueError as msg:
                    raise DistutilsOptionError(msg)
def _parse_config_files ( self , filenames = None ) : from setuptools . extern . six . moves . configparser import ConfigParser # Ignore install directory options if we have a venv if six . PY3 and sys . prefix != sys . base_prefix : ignore_options = [ 'install-base' , 'install-platbase' , 'install-lib' , 'install-platlib' , 'install-purelib' , 'install-headers' , 'install-scripts' , 'install-data' , 'prefix' , 'exec-prefix' , 'home' , 'user' , 'root' ] else : ignore_options = [ ] ignore_options = frozenset ( ignore_options ) if filenames is None : filenames = self . find_config_files ( ) if DEBUG : self . announce ( "Distribution.parse_config_files():" ) parser = ConfigParser ( ) for filename in filenames : with io . open ( filename , encoding = 'utf-8' ) as reader : if DEBUG : self . announce ( "  reading {filename}" . format ( * * locals ( ) ) ) ( parser . read_file if six . PY3 else parser . readfp ) ( reader ) for section in parser . sections ( ) : options = parser . options ( section ) opt_dict = self . get_option_dict ( section ) for opt in options : if opt != '__name__' and opt not in ignore_options : val = self . _try_str ( parser . get ( section , opt ) ) opt = opt . replace ( '-' , '_' ) opt_dict [ opt ] = ( filename , val ) # Make the ConfigParser forget everything (so we retain # the original filenames that options come from) parser . __init__ ( ) # If there was a "global" section in the config file, use it # to set Distribution options. if 'global' in self . command_options : for ( opt , ( src , val ) ) in self . command_options [ 'global' ] . items ( ) : alias = self . negative_opt . get ( opt ) try : if alias : setattr ( self , alias , not strtobool ( val ) ) elif opt in ( 'verbose' , 'dry_run' ) : # ugh! setattr ( self , opt , strtobool ( val ) ) else : setattr ( self , opt , val ) except ValueError as msg : raise DistutilsOptionError ( msg )