(*args)
With no arguments, return a dictionary of all configuration
    variables relevant for the current platform.

    On Unix, this means every variable defined in Python's installed Makefile;
    On Windows it's a much smaller set.

    With arguments, return a list of values that result from looking up
    each argument in the configuration variable dictionary.
With no arguments, return a dictionary of all configuration
    variables relevant for the current platform.
With no arguments return a dictionary of all configuration variables relevant for the current platform .
def get_config_vars(*args):
    """With no arguments, return a dictionary of all configuration
    variables relevant for the current platform.

    On Unix, this means every variable defined in Python's installed Makefile;
    On Windows it's a much smaller set.

    With arguments, return a list of values that result from looking up
    each argument in the configuration variable dictionary.
    """
    global _CONFIG_VARS
    if _CONFIG_VARS is None:
        _CONFIG_VARS = {}
        # Normalized versions of prefix and exec_prefix are handy to have;
        # in fact, these are the standard versions used most places in the
        # Distutils.
        _CONFIG_VARS['prefix'] = _PREFIX
        _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX
        _CONFIG_VARS['py_version'] = _PY_VERSION
        _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT
        _CONFIG_VARS['py_version_nodot'] = _PY_VERSION_SHORT_NO_DOT
        _CONFIG_VARS['installed_base'] = _BASE_PREFIX
        _CONFIG_VARS['base'] = _PREFIX
        _CONFIG_VARS['installed_platbase'] = _BASE_EXEC_PREFIX
        _CONFIG_VARS['platbase'] = _EXEC_PREFIX
        _CONFIG_VARS['projectbase'] = _PROJECT_BASE
        _CONFIG_VARS['platlibdir'] = sys.platlibdir
        try:
            _CONFIG_VARS['abiflags'] = sys.abiflags
        except AttributeError:
            # sys.abiflags may not be defined on all platforms.
            _CONFIG_VARS['abiflags'] = ''
        try:
            _CONFIG_VARS['py_version_nodot_plat'] = sys.winver.replace('.', '')
        except AttributeError:
            _CONFIG_VARS['py_version_nodot_plat'] = ''

        if os.name == 'nt':
            _init_non_posix(_CONFIG_VARS)
        if os.name == 'posix':
            _init_posix(_CONFIG_VARS)
        # For backward compatibility, see issue19555
        SO = _CONFIG_VARS.get('EXT_SUFFIX')
        if SO is not None:
            _CONFIG_VARS['SO'] = SO
        if _HAS_USER_BASE:
            # Setting 'userbase' is done below the call to the
            # init function to enable using 'get_config_var' in
            # the init-function.
            _CONFIG_VARS['userbase'] = _getuserbase()

        # Always convert srcdir to an absolute path
        srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE)
        if os.name == 'posix':
            if _PYTHON_BUILD:
                # If srcdir is a relative path (typically '.' or '..')
                # then it should be interpreted relative to the directory
                # containing Makefile.
                base = os.path.dirname(get_makefile_filename())
                srcdir = os.path.join(base, srcdir)
            else:
                # srcdir is not meaningful since the installation is
                # spread about the filesystem.  We choose the
                # directory containing the Makefile since we know it
                # exists.
                srcdir = os.path.dirname(get_makefile_filename())
        _CONFIG_VARS['srcdir'] = _safe_realpath(srcdir)

        # OS X platforms require special customization to handle
        # multi-architecture, multi-os-version installers
        if sys.platform == 'darwin':
            import _osx_support
            _osx_support.customize_config_vars(_CONFIG_VARS)

    if args:
        vals = []
        for name in args:
            vals.append(_CONFIG_VARS.get(name))
        return vals
    else:
        return _CONFIG_VARS
def get_config_vars ( * args ) : global _CONFIG_VARS if _CONFIG_VARS is None : _CONFIG_VARS = { } # Normalized versions of prefix and exec_prefix are handy to have; # in fact, these are the standard versions used most places in the # Distutils. _CONFIG_VARS [ 'prefix' ] = _PREFIX _CONFIG_VARS [ 'exec_prefix' ] = _EXEC_PREFIX _CONFIG_VARS [ 'py_version' ] = _PY_VERSION _CONFIG_VARS [ 'py_version_short' ] = _PY_VERSION_SHORT _CONFIG_VARS [ 'py_version_nodot' ] = _PY_VERSION_SHORT_NO_DOT _CONFIG_VARS [ 'installed_base' ] = _BASE_PREFIX _CONFIG_VARS [ 'base' ] = _PREFIX _CONFIG_VARS [ 'installed_platbase' ] = _BASE_EXEC_PREFIX _CONFIG_VARS [ 'platbase' ] = _EXEC_PREFIX _CONFIG_VARS [ 'projectbase' ] = _PROJECT_BASE _CONFIG_VARS [ 'platlibdir' ] = sys . platlibdir try : _CONFIG_VARS [ 'abiflags' ] = sys . abiflags except AttributeError : # sys.abiflags may not be defined on all platforms. _CONFIG_VARS [ 'abiflags' ] = '' try : _CONFIG_VARS [ 'py_version_nodot_plat' ] = sys . winver . replace ( '.' , '' ) except AttributeError : _CONFIG_VARS [ 'py_version_nodot_plat' ] = '' if os . name == 'nt' : _init_non_posix ( _CONFIG_VARS ) if os . name == 'posix' : _init_posix ( _CONFIG_VARS ) # For backward compatibility, see issue19555 SO = _CONFIG_VARS . get ( 'EXT_SUFFIX' ) if SO is not None : _CONFIG_VARS [ 'SO' ] = SO if _HAS_USER_BASE : # Setting 'userbase' is done below the call to the # init function to enable using 'get_config_var' in # the init-function. _CONFIG_VARS [ 'userbase' ] = _getuserbase ( ) # Always convert srcdir to an absolute path srcdir = _CONFIG_VARS . get ( 'srcdir' , _PROJECT_BASE ) if os . name == 'posix' : if _PYTHON_BUILD : # If srcdir is a relative path (typically '.' or '..') # then it should be interpreted relative to the directory # containing Makefile. base = os . path . dirname ( get_makefile_filename ( ) ) srcdir = os . path . join ( base , srcdir ) else : # srcdir is not meaningful since the installation is # spread about the filesystem.  We choose the # directory containing the Makefile since we know it # exists. srcdir = os . path . dirname ( get_makefile_filename ( ) ) _CONFIG_VARS [ 'srcdir' ] = _safe_realpath ( srcdir ) # OS X platforms require special customization to handle # multi-architecture, multi-os-version installers if sys . platform == 'darwin' : import _osx_support _osx_support . customize_config_vars ( _CONFIG_VARS ) if args : vals = [ ] for name in args : vals . append ( _CONFIG_VARS . get ( name ) ) return vals else : return _CONFIG_VARS