/usr/lib/python3.9/site-packages/setuptools/__pycache__
NameSizeModeActions
archive_util.cpython-39.opt-1.pyc57800644editdlrm
archive_util.cpython-39.pyc57800644editdlrm
build_meta.cpython-39.opt-1.pyc88670644editdlrm
build_meta.cpython-39.pyc88850644editdlrm
config.cpython-39.opt-1.pyc192290644editdlrm
config.cpython-39.pyc192290644editdlrm
depends.cpython-39.opt-1.pyc52150644editdlrm
depends.cpython-39.pyc52150644editdlrm
dep_util.cpython-39.opt-1.pyc8230644editdlrm
dep_util.cpython-39.pyc8230644editdlrm
dist.cpython-39.opt-1.pyc337520644editdlrm
dist.cpython-39.pyc338330644editdlrm
errors.cpython-39.opt-1.pyc8160644editdlrm
errors.cpython-39.pyc8160644editdlrm
extension.cpython-39.opt-1.pyc19100644editdlrm
extension.cpython-39.pyc19100644editdlrm
glob.cpython-39.opt-1.pyc36310644editdlrm
glob.cpython-39.pyc36600644editdlrm
installer.cpython-39.opt-1.pyc27040644editdlrm
installer.cpython-39.pyc27370644editdlrm
launch.cpython-39.opt-1.pyc8670644editdlrm
launch.cpython-39.pyc8670644editdlrm
lib2to3_ex.cpython-39.opt-1.pyc26690644editdlrm
lib2to3_ex.cpython-39.pyc26690644editdlrm
monkey.cpython-39.opt-1.pyc45790644editdlrm
monkey.cpython-39.pyc45790644editdlrm
msvc.cpython-39.opt-1.pyc432360644editdlrm
msvc.cpython-39.pyc432360644editdlrm
namespaces.cpython-39.opt-1.pyc35660644editdlrm
namespaces.cpython-39.pyc35660644editdlrm
package_index.cpython-39.opt-1.pyc331120644editdlrm
package_index.cpython-39.pyc331120644editdlrm
py34compat.cpython-39.opt-1.pyc4460644editdlrm
py34compat.cpython-39.pyc4460644editdlrm
sandbox.cpython-39.opt-1.pyc157400644editdlrm
sandbox.cpython-39.pyc157400644editdlrm
ssl_support.cpython-39.opt-1.pyc68270644editdlrm
ssl_support.cpython-39.pyc68270644editdlrm
unicode_utils.cpython-39.opt-1.pyc10800644editdlrm
unicode_utils.cpython-39.pyc10800644editdlrm
version.cpython-39.opt-1.pyc2900644editdlrm
version.cpython-39.pyc2900644editdlrm
wheel.cpython-39.opt-1.pyc72360644editdlrm
wheel.cpython-39.pyc72460644editdlrm
windows_support.cpython-39.opt-1.pyc9890644editdlrm
windows_support.cpython-39.pyc9890644editdlrm
_deprecation_warning.cpython-39.opt-1.pyc5160644editdlrm
_deprecation_warning.cpython-39.pyc5160644editdlrm
_imp.cpython-39.opt-1.pyc20510644editdlrm
_imp.cpython-39.pyc20510644editdlrm
__init__.cpython-39.opt-1.pyc85900644editdlrm
__init__.cpython-39.pyc85900644editdlrm
Edit: /usr/lib/python3.9/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc (43236B)
a ˆåÏh¶Çã@s„dZddlZddlmZddlmZmZddlmZm Z m Z m Z ddl Z ddl Z ddlZddlZddlZddlZddlmZddlmZe ¡d krªddlZdd lmZnGd d „d ƒZeƒZeejjfZzdd lm Z WneyìYn0dd„Z!d.dd„Z"dd„Z#dd„Z$dddddœZ%dd„Z&dd„Z'dd „Z(d!d"„Z)d/d$d%„Z*Gd&d'„d'ƒZ+Gd(d)„d)ƒZ,Gd*d+„d+ƒZ-Gd,d-„d-ƒZ.dS)0a� Improved support for Microsoft Visual C++ compilers. Known supported compilers: -------------------------- Microsoft Visual C++ 9.0: Microsoft Visual C++ Compiler for Python 2.7 (x86, amd64) Microsoft Windows SDK 6.1 (x86, x64, ia64) Microsoft Windows SDK 7.0 (x86, x64, ia64) Microsoft Visual C++ 10.0: Microsoft Windows SDK 7.1 (x86, x64, ia64) Microsoft Visual C++ 14.X: Microsoft Visual C++ Build Tools 2015 (x86, x64, arm) Microsoft Visual Studio Build Tools 2017 (x86, x64, arm, arm64) Microsoft Visual Studio Build Tools 2019 (x86, x64, arm, arm64) This may also support compilers shipped with compatible Visual Studio versions. éN)Úopen)ÚlistdirÚpathsep)ÚjoinÚisfileÚisdirÚdirname)Ú LegacyVersioné)Ú get_unpatchedÚWindows)Úenvironc@seZdZdZdZdZdZdS)ÚwinregN)Ú__name__Ú __module__Ú __qualname__Ú HKEY_USERSÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINEÚHKEY_CLASSES_ROOT©rrú3/usr/lib/python3.9/site-packages/setuptools/msvc.pyr*sr)ÚRegc CsŽd}|d|f}zt |d¡}WnFtyfz|d|f}t |d¡}Wnty`d}Yn0Yn0|r‚t|dƒ}t|ƒr‚|Sttƒ|ƒS)aÍ Patched "distutils.msvc9compiler.find_vcvarsall" to use the standalone compiler build for Python (VCForPython / Microsoft Visual C++ Compiler for Python 2.7). Fall back to original behavior when the standalone compiler is not available. Redirect the path of "vcvarsall.bat". Parameters ---------- version: float Required Microsoft Visual C++ version. Return ------ str vcvarsall.bat path z-Software\%sMicrosoft\DevDiv\VCForPython\%0.1fÚÚ installdirz Wow6432Node\Nú vcvarsall.bat)rZ get_valueÚKeyErrorrrr Úmsvc9_find_vcvarsall)ÚversionZvc_baseÚkeyÚ productdirÚ vcvarsallrrrrAs     rÚx86c Os–z"ttƒ}|||g|¢Ri|¤ŽWStjjy8YntyHYn0zt||ƒ ¡WStjjy�}zt|||ƒ‚WYd}~n d}~00dS)ao Patched "distutils.msvc9compiler.query_vcvarsall" for support extra Microsoft Visual C++ 9.0 and 10.0 compilers. Set environment without use of "vcvarsall.bat". Parameters ---------- ver: float Required Microsoft Visual C++ version. arch: str Target architecture. Return ------ dict environment N) r Úmsvc9_query_vcvarsallÚ distutilsÚerrorsÚDistutilsPlatformErrorÚ ValueErrorÚEnvironmentInfoÚ return_envÚ_augment_exception)ÚverÚarchÚargsÚkwargsZorigÚexcrrrr#ks  r#c Cszt tjddtjtjB¡}Wnty2YdS0d}d}|�ªt ¡D]�}zt ||¡\}}}Wnty|YqÜYn0|rJ|tj krJt |ƒrJzt t |ƒƒ}Wnt tfy¾YqJYn0|dkrJ||krJ||}}qJWdƒn1sð0Y||fS)ú0Python 3.8 "distutils/_msvccompiler.py" backportz'Software\Microsoft\VisualStudio\SxS\VC7r©NNNé)rÚOpenKeyrÚKEY_READZKEY_WOW64_32KEYÚOSErrorÚ itertoolsÚcountÚ EnumValueZREG_SZrÚintÚfloatr'Ú TypeError)rÚ best_versionÚbest_dirÚiÚvZvc_dirZvtrrrrÚ_msvc14_find_vc2015‘s2 ü     *r@c Cs”t d¡pt d¡}|sdSz8t t|dddƒddd d d d d dg ¡jddd� ¡}Wntjtt fypYdS0t|dddƒ}t |ƒr�d|fSdS)a€Python 3.8 "distutils/_msvccompiler.py" backport Returns "15, path" based on the result of invoking vswhere.exe If no install is found, returns "None, None" The version is returned to avoid unnecessarily changing the function result. It may be ignored when the path is not None. If vswhere.exe is not available, by definition, VS 2017 is not installed. úProgramFiles(x86)Ú ProgramFilesr1zMicrosoft Visual StudioZ Installerz vswhere.exez-latestz -prereleasez -requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z -propertyÚinstallationPathz -productsÚ*ÚmbcsÚstrict)Úencodingr%ÚVCZ AuxiliaryZBuildé) r ÚgetÚ subprocessÚ check_outputrÚdecodeÚstripÚCalledProcessErrorr5ÚUnicodeDecodeErrorr)ÚrootÚpathrrrÚ_msvc14_find_vc2017¯s(  úùrSÚx64ZarmZarm64)r"Z x86_amd64Zx86_armZ x86_arm64c Csàtƒ\}}d}|tvr t|}nd|vr,dnd}|rˆt|ddddd|d d ƒ }zd dl}|j|d d �d}Wntttfy†d}Yn0|sªtƒ\}}|rªt|d|dd ƒ}|s²dSt|dƒ}t|ƒsÈdS|rÔt|ƒsØd}||fS)r0NÚamd64rTr"z..ÚredistZMSVCz**zMicrosoft.VC14*.CRTzvcruntime140.dllrT)Ú recursiveéÿÿÿÿzMicrosoft.VC140.CRTr1r) rSÚPLAT_SPEC_TO_RUNTIMErÚglobÚ ImportErrorr5Ú LookupErrorr@r) Ú plat_specÚ_r=Ú vcruntimeZvcruntime_platZvcredistrZr<r!rrrÚ_msvc14_find_vcvarsallÚs:  þ  ÿ  r`c CsÆdtvrdd„t ¡DƒSt|ƒ\}}|s6tj d¡‚z&tjd ||¡tj d�j ddd �}Wn<tj y˜}z"tj d  |j ¡¡|‚WYd }~n d }~00d d„d d„|  ¡DƒDƒ}|rÂ||d<|S)r0ZDISTUTILS_USE_SDKcSsi|]\}}| ¡|“qSr©Úlower)Ú.0rÚvaluerrrÚ sÿz&_msvc14_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)Ústderrzutf-16leÚreplace)r%zError executing {}NcSs$i|]\}}}|r|r| ¡|“qSrra)rcrr^rdrrrresýcss|]}| d¡VqdS)ú=N)Ú partition)rcÚlinerrrÚ óz%_msvc14_get_vc_env..Úpy_vcruntime_redist)r Úitemsr`r$r%r&rKrLÚformatZSTDOUTrMrOÚcmdÚ splitlines)r]r!r_Úoutr/ÚenvrrrÚ_msvc14_get_vc_envs8þ ÿ þý  ÿþýrtc CsDz t|ƒWStjjy>}zt|dƒ‚WYd}~n d}~00dS)a* Patched "distutils._msvccompiler._get_vc_env" for support extra Microsoft Visual C++ 14.X compilers. Set environment without use of "vcvarsall.bat". Parameters ---------- plat_spec: str Target architecture. Return ------ dict environment ç,@N)rtr$r%r&r*)r]r/rrrÚmsvc14_get_vc_env%s   rvcOsJdtjvr8ddl}t|jƒtdƒkr8|jjj|i|¤ŽStt ƒ|i|¤ŽS)z¦ Patched "distutils._msvccompiler.gen_lib_options" for fix compatibility between "numpy.distutils" and "distutils._msvccompiler" (for Numpy < 1.11.2) znumpy.distutilsrNz1.11.2) ÚsysÚmodulesZnumpyr Ú __version__r$Z ccompilerZgen_lib_optionsr Úmsvc14_gen_lib_options)r-r.Znprrrrz?s  rzrcCs¤|jd}d| ¡vs"d| ¡vr˜d}|jfitƒ¤Ž}d}|dkrj| ¡ d¡dkr`|d 7}q˜|d 7}n.|d krˆ|d 7}||d 7}n|dkr˜|d7}|f|_dS)zl Add details to the exception message to help guide the user as to what action will resolve it. rr!zvisual cz;Microsoft Visual C++ {version:0.1f} or greater is required.z-www.microsoft.com/download/details.aspx?id=%dç"@Zia64rXz( Get it with "Microsoft Windows SDK 7.0"z% Get it from http://aka.ms/vcpython27ç$@z* Get it with "Microsoft Windows SDK 7.1": iW ruzd Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/N)r-rbroÚlocalsÚfind)r/rr,ÚmessageZtmplZ msdownloadrrrr*Ls   r*c@sbeZdZdZe dd¡ ¡Zdd„Ze dd„ƒZ dd „Z d d „Z dd d„Z ddd„Zddd„ZdS)Ú PlatformInfoz� Current and Target Architectures information. Parameters ---------- arch: str Target architecture. Zprocessor_architecturercCs| ¡ dd¡|_dS)NrTrU)rbrgr,)Úselfr,rrrÚ__init__|szPlatformInfo.__init__cCs|j|j d¡dd…S)zs Return Target CPU architecture. Return ------ str Target CPU r^r N)r,r~©r�rrrÚ target_cpus zPlatformInfo.target_cpucCs |jdkS)z‡ Return True if target CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits r"©r„rƒrrrÚ target_is_x86‹s zPlatformInfo.target_is_x86cCs |jdkS)zˆ Return True if current CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits r"©Ú current_cpurƒrrrÚcurrent_is_x86–s zPlatformInfo.current_is_x86FcCs.|jdkr|rdS|jdkr$|r$dSd|jS)uk Current platform specific subfolder. Parameters ---------- hidex86: bool return '' and not '†' if architecture is x86. x64: bool return 'd' and not 'md64' if architecture is amd64. Return ------ str subfolder: ' arget', or '' (see hidex86 parameter) r"rrUú\x64ú\%sr‡©r�Úhidex86rTrrrÚ current_dir¡sýzPlatformInfo.current_dircCs.|jdkr|rdS|jdkr$|r$dSd|jS)ar Target platform specific subfolder. Parameters ---------- hidex86: bool return '' and not '\x86' if architecture is x86. x64: bool return '\x64' and not '\amd64' if architecture is amd64. Return ------ str subfolder: '\current', or '' (see hidex86 parameter) r"rrUrŠr‹r…rŒrrrÚ target_dir·sýzPlatformInfo.target_dircCs0|rdn|j}|j|krdS| ¡ dd|¡S)ap Cross platform specific subfolder. Parameters ---------- forcex86: bool Use 'x86' as current architecture even if current architecture is not x86. Return ------ str subfolder: '' if target architecture is current architecture, '\current_target' if not. r"rú\z\%s_)rˆr„r�rg)r�Úforcex86ÚcurrentrrrÚ cross_dirÍsþzPlatformInfo.cross_dirN)FF)FF)F)rrrÚ__doc__r rJrbrˆr‚Úpropertyr„r†r‰rŽr�r“rrrrr€qs    r€c@sªeZdZdZejejejejfZ dd„Z e dd„ƒZ e dd„ƒZ e dd „ƒZe d d „ƒZe d d „ƒZe dd„ƒZe dd„ƒZe dd„ƒZe dd„ƒZddd„Zdd„ZdS)Ú RegistryInfozŸ Microsoft Visual Studio related registry information. Parameters ---------- platform_info: PlatformInfo "PlatformInfo" instance. cCs ||_dS©N)Úpi)r�Z platform_inforrrr‚òszRegistryInfo.__init__cCsdS)z€ Microsoft Visual Studio root registry key. Return ------ str Registry key Z VisualStudiorrƒrrrÚ visualstudioõs zRegistryInfo.visualstudiocCs t|jdƒS)z Microsoft Visual Studio SxS registry key. Return ------ str Registry key ZSxS)rr™rƒrrrÚsxss zRegistryInfo.sxscCs t|jdƒS)z| Microsoft Visual C++ VC7 registry key. Return ------ str Registry key ZVC7©rršrƒrrrÚvc s zRegistryInfo.vccCs t|jdƒS)z Microsoft Visual Studio VS7 registry key. Return ------ str Registry key ZVS7r›rƒrrrÚvss zRegistryInfo.vscCsdS)zƒ Microsoft Visual C++ for Python registry key. Return ------ str Registry key zDevDiv\VCForPythonrrƒrrrÚ vc_for_python%s zRegistryInfo.vc_for_pythoncCsdS)zq Microsoft SDK registry key. Return ------ str Registry key zMicrosoft SDKsrrƒrrrÚ microsoft_sdk1s zRegistryInfo.microsoft_sdkcCs t|jdƒS)z‚ Microsoft Windows/Platform SDK registry key. Return ------ str Registry key r ©rrŸrƒrrrÚ windows_sdk=s zRegistryInfo.windows_sdkcCs t|jdƒS)z€ Microsoft .NET Framework SDK registry key. Return ------ str Registry key ZNETFXSDKr rƒrrrÚ netfx_sdkIs zRegistryInfo.netfx_sdkcCsdS)z€ Microsoft Windows Kits Roots registry key. Return ------ str Registry key zWindows Kits\Installed RootsrrƒrrrÚwindows_kits_rootsUs zRegistryInfo.windows_kits_rootsFcCs$|j ¡s|rdnd}td|d|ƒS)a Return key in Microsoft software registry. Parameters ---------- key: str Registry key path where look. x86: str Force x86 software registry. Return ------ str Registry key rZ Wow6432NodeZSoftwareZ Microsoft)r˜r‰r)r�rr"Znode64rrrÚ microsoftaszRegistryInfo.microsoftc Csütj}tj}tj}|j}|jD]Ø}d}z||||ƒd|ƒ}Wn\ttfy˜|j  ¡s�z||||dƒd|ƒ}Wq”ttfyŒYYqYq”0nYqYn0zLz$t  ||¡dWW|r¼||ƒSttfyÖYn0W|rö||ƒq|rô||ƒ0qdS)a Look for values in registry in Microsoft software registry. Parameters ---------- key: str Registry key path where look. name: str Value name to find. Return ------ str value NrT) rr4r3ZCloseKeyr¤ÚHKEYSr5ÚIOErrorr˜r‰Z QueryValueEx) r�rÚnameZkey_readZopenkeyZclosekeyÚmsÚhkeyÚbkeyrrrÚlookupts4   û ÿzRegistryInfo.lookupN)F)rrrr”rrrrrr¥r‚r•r™ršrœr�ržrŸr¡r¢r£r¤r«rrrrr–äs6ý         r–c@s<eZdZdZe dd¡Ze dd¡Ze de¡Zd7dd„Z d d „Z d d „Z d d„Z e dd„ƒZedd„ƒZedd„ƒZdd„Zdd„Zedd„ƒZedd„ƒZedd„ƒZedd „ƒZed!d"„ƒZed#d$„ƒZed%d&„ƒZed'd(„ƒZed)d*„ƒZed+d,„ƒZed-d.„ƒZed/d0„ƒZed1d2„ƒZ d3d4„Z!e d8d5d6„ƒZ"dS)9Ú SystemInfozê Microsoft Windows and Visual Studio related system information. Parameters ---------- registry_info: RegistryInfo "RegistryInfo" instance. vc_ver: float Required Microsoft Visual C++ version. ÚWinDirrrBrANcCs2||_|jj|_| ¡|_|p$| ¡|_|_dSr—)Úrir˜Úfind_programdata_vs_versÚknown_vs_pathsÚ_find_latest_available_vs_verÚvs_verÚvc_ver)r�Z registry_infor³rrrr‚¯s    ÿzSystemInfo.__init__cCs>| ¡}|s|jstj d¡‚t|ƒ}| |j¡t|ƒdS)zm Find the latest VC version Return ------ float version z%No Microsoft Visual C++ version foundrX)Úfind_reg_vs_versr°r$r%r&ÚsetÚupdateÚsorted)r�Z reg_vc_versZvc_versrrrr±¹s  ÿ z(SystemInfo._find_latest_available_vs_verc Csn|jj}|jj|jj|jjf}g}t |jj|¡D�]0\}}zt  |||ƒdtj ¡}Wnt t fypYq2Yn0|�Üt  |¡\}}} t|ƒD]T} t t¡�6tt || ¡dƒ} | |vrÆ| | ¡Wdƒq�1sÚ0Yq�t|ƒD]T} t t¡�4tt || ¡ƒ} | |v�r"| | ¡Wdƒqî1�s80YqîWdƒq21�sZ0Yq2t|ƒS)z˜ Find Microsoft Visual Studio versions available in registry. Return ------ list of float Versions rN)r®r¤rœržr�r6Úproductr¥rr3r4r5r¦Z QueryInfoKeyÚrangeÚ contextlibÚsuppressr'r:r8ÚappendZEnumKeyr·) r�r¨ZvckeysZvs_versr©rrªZsubkeysÚvaluesr^r>r+rrrr´Ìs*    *   NzSystemInfo.find_reg_vs_versc CsÌi}d}z t|ƒ}Wnttfy.|YS0|D]’}zpt||dƒ}t|ddd��}t |¡}Wdƒn1st0Y|d}tt|dƒƒ||| |d ¡<Wq4tttfyÄYq4Yq40q4|S) zé Find Visual studio 2017+ versions from information in "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances". Return ------ dict float version as key, path as value. z9C:\ProgramData\Microsoft\VisualStudio\Packages\_Instancesz state.jsonZrtzutf-8)rGNrCú VC\Tools\MSVCZinstallationVersion) rr5r¦rrÚjsonÚloadÚ_as_float_versionr) r�Z vs_versionsZ instances_dirZ hashed_namesr§Z state_pathZ state_fileÚstateZvs_pathrrrr¯ës* ÿ   (ÿÿ z#SystemInfo.find_programdata_vs_verscCstd | d¡dd…¡ƒS)zç Return a string version as a simplified float version (major.minor) Parameters ---------- version: str Version. Return ------ float version Ú.Né)r:rÚsplit)rrrrrÁszSystemInfo._as_float_versioncCs.t|jd|jƒ}|j |jjd|j¡p,|S)zp Microsoft Visual Studio directory. Return ------ str path zMicrosoft Visual Studio %0.1fú%0.1f)rÚProgramFilesx86r²r®r«r�)r�ÚdefaultrrrÚ VSInstallDir&s ÿzSystemInfo.VSInstallDircCs,| ¡p| ¡}t|ƒs(d}tj |¡‚|S)zm Microsoft Visual C++ directory. Return ------ str path z(Microsoft Visual C++ directory not found)Ú _guess_vcÚ_guess_vc_legacyrr$r%r&)r�rRÚmsgrrrÚ VCInstallDir7s  zSystemInfo.VCInstallDirc Cs†|jdkrdSz|j|j}Wnty6|j}Yn0t|dƒ}z$t|ƒd}| |¡|_t||ƒWStt t fy€YdS0dS)zl Locate Visual C++ for VS2017+. Return ------ str path rurr¾rXN) r²r°rrÉrrrÁr³r5r¦Ú IndexError)r�Zvs_dirZguess_vcr³rrrrÊIs       zSystemInfo._guess_vccCsbt|jd|jƒ}t|jjd|jƒ}|j |d¡}|rBt|dƒn|}|j |jjd|j¡p`|S)z{ Locate Visual C++ for versions prior to 2017. Return ------ str path z Microsoft Visual Studio %0.1f\VCrÆrrH)rrÇr²r®ržr«rœ)r�rÈZreg_pathZ python_vcZ default_vcrrrrËgs ÿzSystemInfo._guess_vc_legacycCsJ|jdkrdS|jdkrdS|jdkr*dS|jdkr8dS|jd krFd Sd S) z— Microsoft Windows SDK versions for specified MSVC++ version. Return ------ tuple of str versions r{)z7.0z6.1z6.0ar|)z7.1z7.0aç&@)z8.0z8.0aç(@)ú8.1z8.1aru)z10.0rÑN©r²rƒrrrÚWindowsSdkVersion{s     zSystemInfo.WindowsSdkVersioncCs| t|jdƒ¡S)zt Microsoft Windows SDK last version. Return ------ str version Úlib)Ú_use_last_dir_namerÚ WindowsSdkDirrƒrrrÚWindowsSdkLastVersion�s z SystemInfo.WindowsSdkLastVersioncCs d}|jD],}t|jjd|ƒ}|j |d¡}|r q8q |rDt|ƒstt|jjd|jƒ}|j |d¡}|rtt|dƒ}|r€t|ƒs¾|jD]6}|d| d¡…}d |}t|j |ƒ}t|ƒr†|}q†|rÊt|ƒsö|jD]$}d |}t|j |ƒ}t|ƒrÐ|}qÐ|�st|j d ƒ}|S) zn Microsoft Windows SDK directory. Return ------ str path rzv%sÚinstallationfolderrÆrZWinSDKNrÃzMicrosoft SDKs\Windows Kits\%szMicrosoft SDKs\Windows\v%sZ PlatformSDK) rÓrr®r¡r«rržr³ÚrfindrBrÍ)r�Úsdkdirr+ÚlocrRZ install_baseZintverÚdrrrrÖœs6           zSystemInfo.WindowsSdkDirc CsÌ|jdkrd}d}n&d}|jdkr&dnd}|jjd|d�}d || d d ¡f}g}|jd kr~|jD]}|t|jj||ƒg7}qb|jD]}|t|jj d ||ƒg7}q„|D]}|j  |d¡}|r¨|Sq¨dS)zy Microsoft Windows SDK executable directory. Return ------ str path rÏé#ré(rÐTF)rTr�zWinSDK-NetFx%dTools%sr�ú-ruzv%sArØN) r²r˜rŽrgÚNetFxSdkVersionrr®r¢rÓr¡r«) r�Znetfxverr,r�ZfxZregpathsr+rRZexecpathrrrÚWindowsSDKExecutablePathÇs"    z#SystemInfo.WindowsSDKExecutablePathcCs&t|jjd|jƒ}|j |d¡p$dS)zl Microsoft Visual F# directory. Return ------ str path z%0.1f\Setup\F#r r)rr®r™r²r«)r�rRrrrÚFSharpInstallDirês zSystemInfo.FSharpInstallDircCsF|jdkrdnd}|D]*}|j |jjd|¡}|r|p:dSqdS)zt Microsoft Universal CRT SDK directory. Return ------ str path ru)Z10Z81rz kitsroot%srN)r²r®r«r£)r�Zversr+rÚrrrÚUniversalCRTSdkDir÷s  ÿzSystemInfo.UniversalCRTSdkDircCs| t|jdƒ¡S)z€ Microsoft Universal C Runtime SDK last version. Return ------ str version rÔ)rÕrrãrƒrrrÚUniversalCRTSdkLastVersion s z%SystemInfo.UniversalCRTSdkLastVersioncCs|jdkrdSdS)z� Microsoft .NET Framework SDK versions. Return ------ tuple of str versions ru) z4.7.2z4.7.1z4.7z4.6.2z4.6.1z4.6z4.5.2z4.5.1z4.5rrÒrƒrrrràsýýzSystemInfo.NetFxSdkVersioncCs8d}|jD](}t|jj|ƒ}|j |d¡}|r q4q |S)zu Microsoft .NET Framework SDK directory. Return ------ str path rZkitsinstallationfolder)ràrr®r¢r«)r�rÚr+rÛrrrÚ NetFxSdkDir's  zSystemInfo.NetFxSdkDircCs"t|jdƒ}|j |jjd¡p |S)zw Microsoft .NET Framework 32bit directory. Return ------ str path zMicrosoft.NET\FrameworkZframeworkdir32©rr­r®r«rœ©r�Zguess_fwrrrÚFrameworkDir329s zSystemInfo.FrameworkDir32cCs"t|jdƒ}|j |jjd¡p |S)zw Microsoft .NET Framework 64bit directory. Return ------ str path zMicrosoft.NET\Framework64Zframeworkdir64rærçrrrÚFrameworkDir64Is zSystemInfo.FrameworkDir64cCs | d¡S)zƒ Microsoft .NET Framework 32bit versions. Return ------ tuple of str versions é ©Ú_find_dot_net_versionsrƒrrrÚFrameworkVersion32Ys zSystemInfo.FrameworkVersion32cCs | d¡S)zƒ Microsoft .NET Framework 64bit versions. Return ------ tuple of str versions é@rërƒrrrÚFrameworkVersion64es zSystemInfo.FrameworkVersion64cCs”|j |jjd|¡}t|d|ƒ}|p6| |d¡p6d}|jdkrJ|dfS|jdkrt| ¡dd …d krld n|d fS|jd kr‚dS|jdkr�dSdS)zê Find Microsoft .NET Framework versions. Parameters ---------- bits: int Platform number of bits: 32 or 64. Return ------ tuple of str versions zframeworkver%dzFrameworkDir%dr?rrÐzv4.0r|NrÄZv4z v4.0.30319úv3.5r{)rðú v2.0.50727g @)zv3.0rñ)r®r«rœÚgetattrrÕr²rb)r�ÚbitsZreg_verZ dot_net_dirr+rrrrìqs     z!SystemInfo._find_dot_net_versionscs*‡‡fdd„ttˆƒƒDƒ}t|dƒp(dS)a) Return name of the last dir in path or '' if no dir found. Parameters ---------- path: str Use dirs in this path prefix: str Use only dirs starting by this prefix Return ------ str name c3s*|]"}ttˆ|ƒƒr| ˆ¡r|VqdSr—)rrÚ startswith)rcZdir_name©rRÚprefixrrrkŸs ýz0SystemInfo._use_last_dir_name..Nr)ÚreversedrÚnext)rRröZ matching_dirsrrõrrÕŽs  þzSystemInfo._use_last_dir_name)N)r)#rrrr”r rJr­rBrÇr‚r±r´r¯Ú staticmethodrÁr•rÉrÍrÊrËrÓr×rÖrárârãräràrårèrérírïrìrÕrrrrr¬�sZ    *      * "         r¬c@sbeZdZdZd?dd„Zedd„ƒZedd „ƒZed d „ƒZed d „ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZdd„Zedd„ƒZed d!„ƒZed"d#„ƒZed$d%„ƒZed&d'„ƒZed(d)„ƒZed*d+„ƒZed,d-„ƒZed.d/„ƒZed0d1„ƒZed2d3„ƒZed4d5„ƒZed6d7„ƒZd@d9d:„Zd;d<„Z e!dAd=d>„ƒZ"dS)Br(aY Return environment variables for specified Microsoft Visual C++ version and platform : Lib, Include, Path and libpath. This function is compatible with Microsoft Visual C++ 9.0 to 14.X. Script created by analysing Microsoft environment configuration files like "vcvars[...].bat", "SetEnv.Cmd", "vcbuildtools.bat", ... Parameters ---------- arch: str Target architecture. vc_ver: float Required Microsoft Visual C++ version. If not set, autodetect the last version. vc_min_ver: float Minimum Microsoft Visual C++ version. NrcCsBt|ƒ|_t|jƒ|_t|j|ƒ|_|j|kr>d}tj  |¡‚dS)Nz.No suitable Microsoft Visual C++ version found) r€r˜r–r®r¬Úsir³r$r%r&)r�r,r³Z vc_min_verÚerrrrrr‚Às    zEnvironmentInfo.__init__cCs|jjS)zk Microsoft Visual Studio. Return ------ float version )rúr²rƒrrrr²És zEnvironmentInfo.vs_vercCs|jjS)zp Microsoft Visual C++ version. Return ------ float version )rúr³rƒrrrr³Õs zEnvironmentInfo.vc_vercsVddg}ˆjdkrDˆjjddd�}|dg7}|dg7}|d|g7}‡fd d „|DƒS) zu Microsoft Visual Studio Tools. Return ------ list of str paths z Common7\IDEz Common7\ToolsruT©r�rTz1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance ToolszTeam Tools\Performance Tools%scsg|]}tˆjj|ƒ‘qSr©rrúrÉ©rcrRrƒrrÚ órlz+EnvironmentInfo.VSTools..)r²r˜rŽ)r�ÚpathsÚ arch_subdirrrƒrÚVSToolsás    zEnvironmentInfo.VSToolscCst|jjdƒt|jjdƒgS)z’ Microsoft Visual C++ & Microsoft Foundation Class Includes. Return ------ list of str paths ZIncludezATLMFC\Include©rrúrÍrƒrrrÚ VCIncludesõs  ÿzEnvironmentInfo.VCIncludescsbˆjdkrˆjjdd�}nˆjjdd�}d|d|g}ˆjdkrP|d|g7}‡fd d „|DƒS) z“ Microsoft Visual C++ & Microsoft Foundation Class Libraries. Return ------ list of str paths ç.@T©rT©r�úLib%sz ATLMFC\Lib%sruz Lib\store%scsg|]}tˆjj|ƒ‘qSrrrþrƒrrrÿrlz/EnvironmentInfo.VCLibraries..)r²r˜r�)r�rrrrƒrÚ VCLibrariess  zEnvironmentInfo.VCLibrariescCs|jdkrgSt|jjdƒgS)z‡ Microsoft Visual C++ store references Libraries. Return ------ list of str paths ruzLib\store\references)r²rrúrÍrƒrrrÚ VCStoreRefss zEnvironmentInfo.VCStoreRefscCs|j}t|jdƒg}|jdkr"dnd}|j |¡}|rL|t|jd|ƒg7}|jdkr|d|jjdd�}|t|j|ƒg7}n€|jdkrê|j ¡r”d nd }|t|j||jjdd �ƒg7}|jj |jj krü|t|j||jjdd �ƒg7}n|t|jd ƒg7}|S) zr Microsoft Visual C++ Tools. Return ------ list of str paths Z VCPackagesr|TFúBin%srurrz bin\HostX86%sz bin\HostX64%srÚBin) rúrrÍr²r˜r“rŽr‰r�rˆr„)r�rúÚtoolsr‘rrRZhost_dirrrrÚVCTools%s,    ÿÿÿ zEnvironmentInfo.VCToolscCsh|jdkr.|jjddd�}t|jjd|ƒgS|jjdd�}t|jjdƒ}|j}t|d||fƒgSdS) zw Microsoft Windows SDK Libraries. Return ------ list of str paths r|TrürrrÔz%sum%sN)r²r˜r�rrúrÖÚ _sdk_subdir)r�rrÔZlibverrrrÚ OSLibrariesJs zEnvironmentInfo.OSLibrariescCsht|jjdƒ}|jdkr&|t|dƒgS|jdkr8|j}nd}t|d|ƒt|d|ƒt|d|ƒgSd S) zu Microsoft Windows SDK Include. Return ------ list of str paths Úincluder|Úglrurz%ssharedz%sumz%swinrtN)rrúrÖr²r)r�rÚsdkverrrrÚ OSIncludes^s      þzEnvironmentInfo.OSIncludescCsžt|jjdƒ}g}|jdkr&||j7}|jdkr@|t|dƒg7}|jdkrš||t|jjdƒt|ddƒt|d dƒt|d dƒt|jjd d d |jdddƒg7}|S)z} Microsoft Windows SDK Libraries Paths. Return ------ list of str paths Z Referencesr{rÏzCommonConfiguration\NeutralruZ UnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContractZ ExtensionSDKszMicrosoft.VCLibsrÆZCommonConfigurationZneutral)rrúrÖr²r)r�ÚrefÚlibpathrrrÚ OSLibpathvs2      ÿ þ  ý÷zEnvironmentInfo.OSLibpathcCs t| ¡ƒS)zs Microsoft Windows SDK Tools. Return ------ list of str paths )ÚlistÚ _sdk_toolsrƒrrrÚSdkToolsšs zEnvironmentInfo.SdkToolsccsø|jdkr,|jdkrdnd}t|jj|ƒV|j ¡s\|jjdd�}d|}t|jj|ƒV|jdvr |j ¡rvd }n|jjddd �}d |}t|jj|ƒVnB|jdkrât|jjdƒ}|jjdd�}|jj}t|d ||fƒV|jj rô|jj Vd S)zˆ Microsoft Windows SDK Tools paths generator. Return ------ generator of str paths rrÏr zBin\x86Trr )r|rÏrrüzBin\NETFX 4.0 Tools%sz%s%sN) r²rrúrÖr˜r‰rŽr†r×rá)r�Zbin_dirrrRrrrrr¦s(     zEnvironmentInfo._sdk_toolscCs|jj}|rd|SdS)zu Microsoft Windows SDK version subdir. Return ------ str subdir ú%s\r)rúrשr�ÚucrtverrrrrÉs zEnvironmentInfo._sdk_subdircCs|jdkrgSt|jjdƒgS)zs Microsoft Windows SDK Setup. Return ------ list of str paths r{ZSetup)r²rrúrÖrƒrrrÚSdkSetupÖs zEnvironmentInfo.SdkSetupcs”|j}|j‰|jdkr0d}| ¡ o,| ¡ }n$| ¡p>| ¡}|jdkpR|jdk}g}|rt|‡fdd„ˆjDƒ7}|r�|‡fdd„ˆjDƒ7}|S)zv Microsoft .NET Framework Tools. Return ------ list of str paths r|TrUcsg|]}tˆj|ƒ‘qSr)rrè©rcr+©rúrrrÿûsÿz+EnvironmentInfo.FxTools..csg|]}tˆj|ƒ‘qSr)rrérr rrrÿþsÿ) r˜rúr²r†r‰rˆr„rírï)r�r˜Z include32Z include64r rr rÚFxToolsås"   ÿ ÿzEnvironmentInfo.FxToolscCs8|jdks|jjsgS|jjdd�}t|jjd|ƒgS)z~ Microsoft .Net Framework SDK Libraries. Return ------ list of str paths ruTrzlib\um%s)r²rúrår˜r�r)r�rrrrÚNetFxSDKLibrariess z!EnvironmentInfo.NetFxSDKLibrariescCs&|jdks|jjsgSt|jjdƒgS)z} Microsoft .Net Framework SDK Includes. Return ------ list of str paths ruz include\um)r²rúrårrƒrrrÚNetFxSDKIncludess z EnvironmentInfo.NetFxSDKIncludescCst|jjdƒgS)z„ Microsoft Visual Studio Team System Database. Return ------ list of str paths z VSTSDB\DeployrýrƒrrrÚVsTDb!s zEnvironmentInfo.VsTDbcCsv|jdkrgS|jdkr0|jj}|jjdd�}n |jj}d}d|j|f}t||ƒg}|jdkrr|t||dƒg7}|S)zn Microsoft Build Engine. Return ------ list of str paths rÐrTrrzMSBuild\%0.1f\bin%sZRoslyn)r²rúrÇr˜rŽrÉr)r�Ú base_pathrrRZbuildrrrÚMSBuild-s    zEnvironmentInfo.MSBuildcCs|jdkrgSt|jjdƒgS)zt Microsoft HTML Help Workshop. Return ------ list of str paths rÏzHTML Help Workshop)r²rrúrÇrƒrrrÚHTMLHelpWorkshopIs z EnvironmentInfo.HTMLHelpWorkshopcCsD|jdkrgS|jjdd�}t|jjdƒ}|j}t|d||fƒgS)zƒ Microsoft Universal C Runtime SDK Libraries. Return ------ list of str paths ruTrrÔz%sucrt%s)r²r˜r�rrúrãÚ _ucrt_subdir)r�rrÔrrrrÚ UCRTLibrariesXs zEnvironmentInfo.UCRTLibrariescCs.|jdkrgSt|jjdƒ}t|d|jƒgS)z� Microsoft Universal C Runtime SDK Include. Return ------ list of str paths rurz%sucrt)r²rrúrãr()r�rrrrÚ UCRTIncludesjs zEnvironmentInfo.UCRTIncludescCs|jj}|rd|SdS)z� Microsoft Universal C Runtime SDK version subdir. Return ------ str subdir rr)rúrärrrrr(zs zEnvironmentInfo._ucrt_subdircCs(d|jkrdkrnngS|jjgS)zk Microsoft Visual F#. Return ------ list of str paths rÏrÐ)r²rúrârƒrrrÚFSharp‡s zEnvironmentInfo.FSharpc CsÎd|j}|jjdd� d¡}g}|jj}t| dd¡ƒ}t|ƒrft |t |ƒdƒ}||t |dƒg7}|t |d ƒg7}d |jd d t |j ƒd f}t  ||¡D]&\}}t ||||ƒ} t| ƒr¢| Sq¢d S) z Microsoft Visual C++ runtime redistributable dll. Return ------ str path zvcruntime%d0.dllTrr�z\Toolsz\RedistrXZonecorerVzMicrosoft.VC%d.CRTé N)r³r˜r�rNrúrÍrrgrrrr9r²r6r¸r) r�r_rÚprefixesZ tools_pathZ redist_pathZcrt_dirsröZcrt_dirrRrrrÚVCRuntimeRedist–s  þzEnvironmentInfo.VCRuntimeRedistTcCs²t| d|j|j|j|jg|¡| d|j|j|j|j |j g|¡| d|j|j|j |j g|¡| d|j |j|j|j|j|j|j|j|jg |¡d�}|jdkr®t|jƒr®|j|d<|S)zÛ Return environment dict. Parameters ---------- exists: bool It True, only return existing paths. Return ------ dict environment rrÔrrR)rrÔrrRr2rm)ÚdictÚ _build_pathsrrr*r#r rr!r)r"r rrrr$rrr&r'r+r²rr.)r�Úexistsrsrrrr)¹sVýûüúýûø öì  zEnvironmentInfo.return_envc Csptj |¡}t |d¡ t¡}t ||¡}|r A B C D _unique_everseen('ABBCcAD', str.lower) --> A B C D N)rµÚaddr6Ú filterfalseÚ __contains__)ÚiterablerÚseenZseen_addÚelementÚkrrrr6 s  z EnvironmentInfo._unique_everseen)Nr)T)N)#rrrr”r‚r•r²r³rrr r rrrrrrrrr!r"r#r$r&r'r)r*r(r+r.r)r0rùr6rrrrr(¨sn        $   # #             " 2"r()r")r)/r”r¿ÚiorÚosrrZos.pathrrrrrwrºÚplatformr6rKZdistutils.errorsr$Z#setuptools.extern.packaging.versionr Zmonkeyr Úsystemrr r/r[r%r&Z_msvc9_suppress_errorsZdistutils.msvc9compilerrrr#r@rSrYr`rtrvrzr*r€r–r¬r(rrrrÚs^    ú  * &$ü'$ %s: