i f8` @sdZddlZddlZddlmZmZdddddd d d d d dg Ziidd6dd6dd6dd6dd6dd6dd6dd6d6id d6d!d6d!d6d!d6d"d6d"d6dd6dd6d#6id$d6d%d6d&d6d&d6d'd6d'd6d(d6dd6d)6id*d6d*d6d+d6d+d6d,d6d-d6d.d6d/6id0d6d0d6d1d6d2d6d3d6d4d6d.d6d56id6d6d6d6d7d6d7d6d8d6d4d6d.d6d96ZdqZej j dZ ej dd:Z e de d;Z ejjejZejjejZejjejZejjejZdadZd<d=ZejrejjeejZneejZejd)krd>edrdj kreejj!eeZnejd)kr>d@edsdj kr>eejj!eeeZnejd)krdBedtdj kreejj!eeeZndDej"kreej"dDZndEdFZ#e$edGdZ%e%r0ejd)kr0e%j j&dur0ejje%Z%e%j&d>r0ejje%Z%q0ndIdJdKZ'e'dLZ(e(rx-dvD]"Z)dMee)ddndoZ?e@dpkre?ndS)wz-Access to Python's configuration information.N)pardirrealpathget_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_pathget_path_names get_paths get_platformget_python_versionget_scheme_namesparse_config_hz/{installed_base}/lib64/python{py_version_short}stdlibz){platbase}/lib64/python{py_version_short} platstdlibz1{base}/lib/python{py_version_short}/site-packagespurelibz7{platbase}/lib64/python{py_version_short}/site-packagesplatlibz;{installed_base}/include/python{py_version_short}{abiflags}includez?{installed_platbase}/include/python{py_version_short}{abiflags} platincludez {base}/binscriptsz{base}data posix_prefixz{installed_base}/lib/pythonz{base}/lib/pythonz{installed_base}/include/python posix_homez{installed_base}/Libz {base}/Libz{base}/Lib/site-packagesz{installed_base}/Includez{base}/Scriptsntz#{userbase}/Python{py_version_nodot}z1{userbase}/Python{py_version_nodot}/site-packagesz+{userbase}/Python{py_version_nodot}/Includez{userbase}/Scriptsz {userbase}nt_userz){userbase}/lib64/python{py_version_short}z5{userbase}/lib/python{py_version_short}/site-packagesz7{userbase}/lib64/python{py_version_short}/site-packagesz+{userbase}/include/python{py_version_short}z{userbase}/bin posix_userz{userbase}/lib/pythonz#{userbase}/lib/python/site-packagesz{userbase}/includeosx_framework_userc Cs+yt|SWntk r&|SYnXdS)N)rOSError)pathr!./opt/alt/python34/lib64/python3.4/sysconfig.py_safe_realpathcs r#pcbuildz\pc\v z\pcbuild\amd64Z_PYTHON_PROJECT_BASEcCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)r(r))osr isfilejoin)dfnr!r!r"_is_python_source_dir}s $r0_home pcbuild\amd64FcCs |rtrttSttS)N) _sys_homer0 _PROJECT_BASE) check_homer!r!r"is_python_builds  r6Tz{srcdir}/Includez{projectbase}/.cCsvy|j|SWn^tk rqy|jtjSWn5tk rl}ztd|WYdd}~XnXYnXdS)Nz{%s})formatKeyErrorr+environAttributeError)s local_varsvarr!r!r" _subst_varss r>cCsI|j}x6|jD](\}}||kr7qn|||)schemevarsresrDrEr!r!r" _expand_varss  #rOcCstjdkrdStjS)NrGr)r+rIr!r!r!r"_get_default_schemesrPcCstjjdd}dd}tjdkrbtjjdpEd}|rR|S||dSntjdkrtd }|r|r|S|dd |d tjdd Sqn|r|S|dd SdS)NPYTHONUSERBASEcWstjjtjj|S)N)r+r rJr-)argsr!r!r"joinusersz_getuserbase..joinuserrAPPDATA~PythondarwinPYTHONFRAMEWORKLibraryz%d.%drz.local)r+r9getrIsysplatformr version_info)env_baserSbase frameworkr!r!r" _getuserbases"  racCs?ddl}|jd}|jd}|jd}|dkrNi}ni}i}t|dd}|j} WdQXx| D]} | jds| jd krqn|j| } | r| jd d \} } | j} | jd d }d |kr| || d|}t|drn|d|j}nt|WYdd}~XnXt}y&t|}t||WdQXWn^tk r}z>d|}t|dr|d|j}nt|WYdd}~XnXt r4|d|d|dkr.ddl}|jdtdntj|S)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) rrNz SO is deprecated, use EXT_SUFFIXr)warningswarnDeprecationWarningrrZ)rIrr!r!r"rGs  cCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjStjd ksttd  rtjSd tj krtj d Stj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}idd6dd6} |d | tj 7}qn|dd!d"krd||fS|ddd#kr"d$|||fS|dd%d&krd&}ddl} | jd'} | j|} | r| j}qnI|dd%d(krddl} | jt|||\}}}nd)|||fS)+aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. rz bit (rf)amd64z win-amd64itaniumzwin-ia64rGuname_PYTHON_HOST_PLATFORM/re _-Nlinuxz%s-%ssunosr5solarisz%d.%srr32biti64bitlz.%sirixaixz%s-%s.%scygwinz[\d.]+rWz%s-%s-%s)r+rIr[rfindr\rxlowerrr9rrtrumaxsizerlrmrrrsrget_platform_osxr)rijlookosnamehostreleasermachinebitnessrlrel_rerrr!r!r"r SsZ #   (  cCstS)N)rr!r!r!r"r scCsdx]tt|jD]C\}\}}|dkrHtd|ntd||fqWdS)Nrz%s: z %s = "%s") enumeraterr@print)titlerindexrDrEr!r!r" _print_dicts+ r cCsdtjkrtdStdttdttdtttdtttdt dS)z*Display all information sysconfig detains.z--generate-posix-varsNzPlatform: "%s"zPython version: "%s"z!Current installation scheme: "%s"Paths Variables) r[argvrr r r rPr r rr!r!r!r"_mainsr__main__)zstdlibz platstdlibzpurelibzplatlibzincludezscriptszdataiii)r$r2)z posix_prefixz posix_home)A__doc__r+r[Zos.pathrr__all__rHrrsplitrrrr rKrr base_prefixrrrbase_exec_prefixrr _USER_BASEr#rrr4getcwdrIrr-r9r0getattrr3endswithr6rrLr>rFrOrPrarrrrrrrr r r rrrr r r r__name__r!r!r!r"s          ++!+!      z ?      M [