Edit File: msvc.cpython-311.pyc
� ����u�d�����������������������������d�Z�ddlZddlmZ�ddlmZmZ�ddlmZm Z m Z mZ�ddlm Z �ddlZddlZddlZddlZddlZddlmZ��ej����������������������dk����rddlZdd lmZ�n�G�d ��d������������Z�e��������������Zd��Zd ��Zddddd�Zd��Zd��Zd��Zd d�Z�G�d��d������������Z �G�d��d������������Z!�G�d��d������������Z"�G�d��d������������Z#dS�)!a��� Improved support for Microsoft Visual C++ compilers. Known supported compilers: -------------------------- 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)�CalledProcessError)�unique_everseen�Windows)�environc�������������������������e�Zd�ZdZdZdZdZdS�)�winregN)�__name__� __module__�__qualname__� HKEY_USERS�HKEY_CURRENT_USER�HKEY_LOCAL_MACHINE�HKEY_CLASSES_ROOT��������F/opt/cloudlinux/venv/lib64/python3.11/site-packages/setuptools/msvc.pyr���r��� ���s'��������������� � ��!�� ���r���r���c�������������������,���� �t����������j��������t�����������j��������ddt�����������j��������t�����������j��������z��������������}�n#�t ����������$�r�Y�dS�w�xY�wd}d}|�5��t ����������j����������������������D�]�} �t����������j��������|�|������������\��}}}n#�t ����������$�r�Y��nkw�xY�w|rd|t�����������j ��������k����rTt����������|������������rE �t����������t����������|������������������������}n#�t����������t����������f$�r�Y���w�xY�w|dk����r ||k����r||}}��ddd�������������n#�1�swxY�w�Y���||fS�)�0Python 3.8 "distutils/_msvccompiler.py" backportz'Software\Microsoft\VisualStudio\SxS\VC7r����NNN����)r����OpenKeyr����KEY_READ�KEY_WOW64_32KEY�OSError� itertools�count� EnumValue�REG_SZr����int�float� ValueError� TypeError)�key�best_version�best_dir�i�v�vc_dir�vt�versions��� r����_msvc14_find_vc2015r2���)���s��������n��%�6� ��O�f�4�4� �� �������������z�z�������L��H� ��=��=���"�"�� =�� =�A� � &� 0��a� 8� 8� ��6�2�2���� �� �� ���� ������ =�R�6�=�(�(�U�6�]�]�(��!�%��(�(�m�m�G�G��"�I�.��������H������b�=�=�W�|�%;�%;�-4�f�(�L��=��=��=��=��=��=��=��=��=��=��=�����=��=��=��=����!�!si����8;�� A �A �D�)B�D� B� D�B�$D�6C�D�C'�$D�&C'�'D�D�Dc������������ �����������t����������j��������d������������pt����������j��������d������������}�|�sdS�d}|D�]�}t����������j��������t����������t ����������t����������������������5��t����������j��������t����������|�ddd������������dd d |ddd dg ������������� ��������������������dd������������������������������������������������}t����������|ddd������������}t����������|������������rd|fcddd�������������c�S� �ddd�������������n#�1�swxY�w�Y�����dS�)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)�ProgramFilesr���)z1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z)Microsoft.VisualStudio.Workload.WDExpresszMicrosoft Visual Studio� Installerzvswhere.exez-latestz-prereleasez -requiresz -property�installationPathz -products�*�mbcs�strict)�encoding�errors�VC� Auxiliary�Build����N) r ����get� contextlib�suppressr ���r!����UnicodeDecodeError� subprocess�check_outputr����decode�stripr���)�root�suitable_components� component�paths��� r����_msvc14_find_vc2017rM���G���s��������;�*�+�+�J�w�{�>�/J�/J�D�����z��� �)�� �� � � � �!3�W�>P� Q� Q�� �� ��'�� �";�[�-�����"�%�#�!�#�*�#������������9�9�����#� �(���d�K��9�9�D��T�{�{�� ��4�x�/ �� �� �� �� �� �� �� �� �� �, �- �� �� �� �� �� �� �� �� �� �� ����� �� �� �� ��2��:s����A9C-�-C1 �4C1 �x86�x64�arm�arm64)rN���� x86_amd64�x86_arm� x86_arm64c�����������������������t������������������������\��}}d}|�t����������v�rt����������|����������}nd|�v�rdnd}|rYt����������|ddddd|d d � ��� ��������} �ddl}|���������������������|d� ������������d���������}n#�t����������t ����������t����������f$�r�d}Y�nw�xY�w|s&t������������������������\��}}|rt����������|d|dd ������������}|sdS�t����������|d������������}t����������|������������sdS�|rt����������|������������sd}||fS�)r���N�amd64rO���rN���z..�redist�MSVCz**zMicrosoft.VC14*.CRTzvcruntime140.dllr���T)� recursive���zMicrosoft.VC140.CRTr���z vcvarsall.bat) rM����PLAT_SPEC_TO_RUNTIMEr����glob�ImportErrorr!����LookupErrorr2���r���) � plat_spec�_r,���� vcruntime�vcruntime_plat�vcredistr\���r+���� vcvarsalls ��� r����_msvc14_find_vcvarsallre�������sb�����%�'�'�K�A�x��I��(�(�(�-�i�8���")�Y�"6�"6���E�������������!�� �� �� ��K�K�K�� � �(�d� �;�;�B�?�I�I���W�k�2�� �� �� ��I�I�I� ������� �!4�!6�!6���h��� �����%�"����I������z��X��/�/�I��)������z����F�9�-�-���� ��i��s���� !A/��/B� Bc������������������J����dt�����������v�rd��t����������j����������������������D���������������S�t����������|�������������\��}}|st����������j�����������������������������d������������� �t ����������j��������d���������������������||�������������t����������j ���������������������� ��������������������dd�������������}nO#�t����������j��������$�r=}t����������j�����������������������������d ���������������������|j��������������������������������|�d }~ww�xY�wd��d��|� ����������������������������������D���������������D���������������}|r||d <���|S�)r����DISTUTILS_USE_SDKc������������������>�����i�|�]\��}}|������������������������������������|��S�r�����lower)�.0r*����values��� r���� <dictcomp>z&_msvc14_get_vc_env.<locals>.<dictcomp>����s&������E�E�E�z�s�E�� � ���U�E�E�Er���zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)�stderrzutf-16le�replace)r<���zError executing {}Nc������������������H�����i�|�]\��}}}|�|� |������������������������������������|�� S�r���ri���)rk���r*���r`���rl���s��� r���rm���z&_msvc14_get_vc_env.<locals>.<dictcomp>����sH�������������C��E������� � ���U�����r���c��������������3����@���K����|�]}|����������������������d�������������V����dS�)�=N)� partition)rk����lines��� r���� <genexpr>z%_msvc14_get_vc_env.<locals>.<genexpr>����s.����������O�O�d�d�n�n�S�1�1�O�O�O�O�O�Or����py_vcruntime_redist)r ����itemsre���� distutilsr<����DistutilsPlatformErrorrE���rF����format�STDOUTrG���r ����cmd� splitlines)r_���rd���ra����out�exc�envs��� r����_msvc14_get_vc_envr��������sL������g�%�%�E�E�W�]�_�_�E�E�E�E�1�)�<�<��I�y���V���5�5�6T�U�U�U���%�&�-�-�i��C�C��$� �� �� ���&��I�&� .� .�� �����(���������5�5� �'�'���0�0� �� �� ��������� ���O�O�c�n�n�>N�>N�O�O�O������C����/�%.��!�"��Js����A B%��%C1�48C,�,C1c������������������|����� �t����������|�������������S�#�t����������j��������j��������$�r}t ����������|d���������������d}~ww�xY�w)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)r����rx���r<���ry����_augment_exception)r_���r���s��� r����msvc14_get_vc_envr��������sM������&�!�)�,�,�,����2��������3��%�%�%� ��������s������;�6�;��c������������������z����|�j���������d���������}d|�����������������������������������v�sd|�����������������������������������v�ryd}�|j��������di�t��������������������������}d}|dk����r7|��������������������������������������������������������d������������dk����r|d z ��}n%|d z ��}n|dk����r|dz ��}||d z��z ��}n|dk����r|dz ��}|f|�_���������dS�)zl Add details to the exception message to help guide the user as to what action will resolve it. r���rd���zvisual cz;Microsoft Visual C++ {version:0.1f} or greater is required.z-www.microsoft.com/download/details.aspx?id=%d�������"@�ia64rZ���z( 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 ��r����zd Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/Nr���)�argsrj���rz����locals�find)r���r1����arch�message�tmpl� msdownloads��� r���r����r��������s���������h�q�k�G��g�m�m�o�o�%�%��w�}�}���)F�)F�L���$�+�)�)����)�)��D� ��c�>�>��z�z�|�|� � ��(�(�2�-�-���E�E��� ��B�B��� ��_�_��C�C�G��z�D�(�(�G�G� ��_�_��,� �G���z�C�H�H�Hr���c�������������������������e�Zd�ZdZ�ej��������dd�����������������������������������������������Zd��Ze d����������������Z d��Zd��Zd d �Z d d �Zdd�ZdS�)�PlatformInfoz� Current and Target Architectures information. Parameters ---------- arch: str Target architecture. �processor_architecturer����c������������������`�����|���������������������������������������������������������dd������������|�_��������d�S�)NrO���rV���)rj���ro���r����)�selfr����s��� r����__init__zPlatformInfo.__init__"��s%�������J�J�L�L�(�(���8�8�� � � r���c������������������V�����|�j���������|�j������������������������������d������������dz���d����������S�)zs Return Target CPU architecture. Return ------ str Target CPU r`�������N)r����r�����r����s��� r���� target_cpuzPlatformInfo.target_cpu%��s*��������y������,�,�q�0�2�2�3�3r���c�����������������������|�j���������dk����S�)z� Return True if target CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits rN����r����r����s��� r���� target_is_x86zPlatformInfo.target_is_x861��s���������%�'�'r���c�����������������������|�j���������dk����S�)z� Return True if current CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits rN�����current_cpur����s��� r����current_is_x86zPlatformInfo.current_is_x86<��s���������5�(�(r���Fc������������������R�����|�j���������dk����r|rdn|�j���������dk����r|rdn d|�j���������z��S�)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) rN���r����rV����\x64�\%sr�����r�����hidex86rO���s��� r����current_dirzPlatformInfo.current_dirG��sJ������$�� �E�)�)�g�)�� �B��� �G�+�+��+�����$�*�*� r���c������������������R�����|�j���������dk����r|rdn|�j���������dk����r|rdn d|�j���������z��S�)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) rN���r����rV���r����r����r����r����s��� r���� target_dirzPlatformInfo.target_dir_��sG������$���5�(�(�W�(�� �B����7�*�*�s�*�����$�/�)� r���c�����������������������|rdn|�j���������}|�j��������|k����rdn*|���������������������������������������������������������dd|z��������������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. rN���r�����\z\%s_)r����r����r����ro���)r�����forcex86�currents��� r���� cross_dirzPlatformInfo.cross_dirw��sR������ �$�9�%�%��)9�����'�)�)�� �B����"�"�*�*�4��7�1B�C�C� r���N)FF�F)r���r���r����__doc__r ���rA���rj���r����r�����propertyr����r����r����r����r����r����r���r���r���r����r������s��������������������'�+�6��;�;�A�A�C�C�K�9��9��9��� 4�� 4���X� 4� (�� (�� (� )�� )�� )� �� �� �� �0 �� �� �� �0 �� �� �� �� �� r���r����c�������������������� ����e�Zd�ZdZej��������ej��������ej��������ej��������fZ d��Z ed����������������Zed����������������Z ed����������������Zed����������������Zed����������������Zed����������������Zed ����������������Zed ����������������Zed����������������Zdd �Zd��ZdS�)�RegistryInfoz� Microsoft Visual Studio related registry information. Parameters ---------- platform_info: PlatformInfo "PlatformInfo" instance. c�����������������������||�_���������d�S��N)�pi)r����� platform_infos��� r���r����zRegistryInfo.__init__���s ����������r���c�����������������������dS�)z� Microsoft Visual Studio root registry key. Return ------ str Registry key �VisualStudior���r����s��� r����visualstudiozRegistryInfo.visualstudio���s ��������~r���c������������������,�����t����������|�j��������d������������S�)z Microsoft Visual Studio SxS registry key. Return ------ str Registry key �SxS)r���r����r����s��� r����sxszRegistryInfo.sxs���s��������D�%�u�-�-�-r���c������������������,�����t����������|�j��������d������������S�)z| Microsoft Visual C++ VC7 registry key. Return ------ str Registry key �VC7�r���r����r����s��� r����vczRegistryInfo.vc������������D�H�e�$�$�$r���c������������������,�����t����������|�j��������d������������S�)z Microsoft Visual Studio VS7 registry key. Return ------ str Registry key �VS7r����r����s��� r����vszRegistryInfo.vs���r����r���c�����������������������dS�)z� Microsoft Visual C++ for Python registry key. Return ------ str Registry key zDevDiv\VCForPythonr���r����s��� r���� vc_for_pythonzRegistryInfo.vc_for_python���s �������%�$r���c�����������������������dS�)zq Microsoft SDK registry key. Return ------ str Registry key zMicrosoft SDKsr���r����s��� r���� microsoft_sdkzRegistryInfo.microsoft_sdk���s ������� �r���c������������������,�����t����������|�j��������d������������S�)z� Microsoft Windows/Platform SDK registry key. Return ------ str Registry key r����r���r����r����s��� r����windows_sdkzRegistryInfo.windows_sdk���s��������D�&� �2�2�2r���c������������������,�����t����������|�j��������d������������S�)z� Microsoft .NET Framework SDK registry key. Return ------ str Registry key �NETFXSDKr����r����s��� r���� netfx_sdkzRegistryInfo.netfx_sdk���s��������D�&� �3�3�3r���c�����������������������dS�)z� Microsoft Windows Kits Roots registry key. Return ------ str Registry key zWindows Kits\Installed Rootsr���r����s��� r����windows_kits_rootszRegistryInfo.windows_kits_roots��s �������/�.r���Fc������������������d�����|�j��������������������������������������������s|rdnd}t����������d|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 r�����Wow6432Node�Software� Microsoft)r����r����r���)r����r*���rN����node64s��� r���� microsoftzRegistryInfo.microsoft��s9������ ��w�-�-�/�/�I�3�I���M���J���S�9�9�9r���c����������� �������:����t�����������j��������}t�����������j��������}t�����������j��������}|�j��������}|�j��������D�]�}d} ��||�||������������d|������������}nd#�t����������t����������f$�rP�|�j��������� ����������������������������������s2 ��||�||d������������d|������������}n#�t����������t����������f$�r�Y�Y��uw�xY�wY��{Y�nw�xY�w �t����������j ��������||������������d���������|r�||�������������c�S�c�S�#�t����������t����������f$�r�Y�nw�xY�w �|r�||���������������#�|r�||�������������w�w�xY�wdS�)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 Nr���T)r���r���r����CloseKeyr�����HKEYSr!����IOErrorr����r�����QueryValueEx) r����r*����name�key_read�openkey�closekey�ms�hkey�bkeys ��� r����lookupzRegistryInfo.lookup"��s������ ��?���.���?�� �^���J�� #�� #�D��D� ��w�t�R�R��W�W�a��:�:�����W�%�� �� �� ��w�-�-�/�/���!�&�w�t�R�R��T�]�]�A�x�H�H����#�W�-��!��!��!� ���!������H� ��� ���� #��*�4��6�6�q�9����#��H�T�N�N�N�N�N�N�#��#��#����W�%�� �� �� ��� �������#��H�T�N�N�N������#��H�T�N�N�N�N�#����# #�� #sY����A�*B1�;B�B1�B)�%B1�(B)�)B1�0B1�5C"�"C6�3D�5C6�6D�DNr����)r���r���r���r����r���r���r���r���r���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r����r�������sd����������������� ��� ��!�� � �E� �� �� ��� �� ���X� ��� .�� .���X� .��� %�� %���X� %��� %�� %���X� %��� %�� %���X� %��� �� ���X� ��� 3�� 3���X� 3��� 4�� 4���X� 4��� /�� /���X� /�:��:��:��:�&&#��&#��&#��&#��&#r���r����c������������������������e�Zd�ZdZ�ej��������dd������������Z�ej��������dd������������Z�ej��������de������������Zdd�Z d��Z d ��Zd ��Ze d����������������Zed����������������Zed ����������������Zd��Zd��Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Z d��Z!e d d���������������Z"dS�)!� SystemInfoz� Microsoft Windows and Visual Studio related system information. Parameters ---------- registry_info: RegistryInfo "RegistryInfo" instance. vc_ver: float Required Microsoft Visual C++ version. �WinDirr����r5���r4���Nc�����������������������||�_���������|�j���������j��������|�_��������|������������������������������������|�_��������|p|������������������������������������x|�_��������|�_��������d�S�r����)�rir�����find_programdata_vs_vers�known_vs_paths�_find_latest_available_vs_ver�vs_ver�vc_ver)r����� registry_infor����s��� r���r����zSystemInfo.__init__]��sM����������'�*���"�;�;�=�=����%+�$R�d�.P�.P�.R�.R�R���d�k�k�kr���c�����������������������|�������������������������������������}|s&|�j��������st����������j�����������������������������d�������������t����������|������������}|���������������������|�j���������������������t����������|������������d���������S�)zm Find the latest VC version Return ------ float version z%No Microsoft Visual C++ version foundrZ���)�find_reg_vs_versr����rx���r<���ry����set�update�sorted)r�����reg_vc_vers�vc_verss��� r���r����z(SystemInfo._find_latest_available_vs_verf��sz��������+�+�-�-���� �t�2�� ��"�9�9�7����� ���k�"�"�����t�*�+�+�+��g���r�"�"r���c����������� �����������|�j���������j��������}|�j���������j��������|�j���������j��������|�j���������j��������f}g�}t����������j��������|�j���������j��������|������������D��]~\��}} �t����������j ��������|�||������������dt����������j ��������������������}n#�t����������t����������f$�r�Y��Ew�xY�w|5��t����������j ��������|������������\��}}} t����������|������������D�]t} t����������j��������t"����������������������5��t%����������t����������j��������|| ������������d���������������������}||vr|���������������������|�������������ddd�������������n#�1�swxY�w�Y����ut����������|������������D�]n} t����������j��������t"����������������������5��t%����������t����������j��������|| ������������������������}||vr|���������������������|�������������ddd�������������n#�1�swxY�w�Y����o �ddd�������������n#�1�swxY�w�Y������t-����������|������������S�)z� Find Microsoft Visual Studio versions available in registry. Return ------ list of float Versions r���N)r����r����r����r����r����r"����productr����r���r���r���r!���r�����QueryInfoKey�rangerB���rC���r(���r'���r$����append�EnumKeyr����)r����r�����vckeys�vs_versr����r*���r�����subkeys�valuesr`���r-����vers��� r���r����zSystemInfo.find_reg_vs_versz��s��������W� ���'�*�d�g�3�T�W�Z�@����"�*�4�7�=�&�A�A�� 0�� 0�I�D�#� ��~�d�B�B�s�G�G�Q���H�H�����W�%�� �� �� ��� ������ 0�� 0�%+�%8��%>�%>�"�����v����0��0�A�#�,�Z�8�8��0��0�#�F�$4�T�1�$=�$=�a�$@�A�A���g�-�-�#�N�N�3�/�/�/�0��0��0��0��0��0��0��0��0��0��0�����0��0��0��0����w����0��0�A�#�,�Z�8�8��0��0�#�F�N�4��$;�$;�<�<���g�-�-�#�N�N�3�/�/�/�0��0��0��0��0��0��0��0��0��0��0�����0��0��0��0��0� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0����� 0�� 0�� 0�� 0����g���sn����*B�B�B�AG�AD- �!G�-D1 �1G�4D1 �5.G�#<F+ �G�+F/ �/G�2F/ �3G�G �G c�����������������������i�}d} �t����������|������������}n#�t����������t����������f$�r�|cY�S�w�xY�w|D�]�} �t����������||d������������}t ����������|dd�������������5�}t����������j��������|������������}ddd�������������n#�1�swxY�w�Y���|d���������}t����������t����������|d�������������������������|||����������������������|d ���������������������<�����#�t����������t����������t����������f$�r�Y���w�xY�w|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.json�rtzutf-8)r;���Nr7���� VC\Tools\MSVC�installationVersion) r���r!���r����r���r����json�load�_as_float_version�KeyError) r�����vs_versions� instances_dir�hashed_namesr����� state_path� state_file�state�vs_paths ��� r���r����z#SystemInfo.find_programdata_vs_vers���sm��������T� � �"�=�1�1�L�L����!�� �� �� ����� �����!�� �� �D� �!�-��|�D�D� ��*�d�W�=�=�=��2�� �I�j�1�1�E�2��2��2��2��2��2��2��2��2��2��2�����2��2��2��2�� 2�3�����W�&6�7�7�8�8�8� �����*�*�5�1F�+G�H�H�������W�h�/�� �� �� ��� ������sB������,�,�#C�A8�,C�8A< �<C�?A< ��AC�C!� C!c������������������|�����t����������d���������������������|����������������������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)r1���s��� r���r ��zSystemInfo._as_float_version���s3��������S�X�X�g�m�m�C�0�0��!��4�5�5�6�6�6r���c�����������������������t����������|�j��������d|�j��������z��������������}|�j�����������������������������|�j��������j��������d|�j��������z��������������p|S�)zp Microsoft Visual Studio directory. Return ------ str path zMicrosoft Visual Studio %0.1f�%0.1f)r����ProgramFilesx86r����r����r����r����)r�����defaults��� r����VSInstallDirzSystemInfo.VSInstallDir���sK��������� �"A�D�K�"O� �� �� ��w�~�~�d�g�j�'�D�K�*?�@�@�K�G�Kr���c�����������������������|�������������������������������������p|������������������������������������}t����������|������������s!d}t����������j�����������������������������|�������������|S�)zm Microsoft Visual C++ directory. Return ------ str path z(Microsoft Visual C++ directory not found)� _guess_vc�_guess_vc_legacyr���rx���r<���ry���)r����rL����msgs��� r����VCInstallDirzSystemInfo.VCInstallDir���sS��������~�~���:�4�#8�#8�#:�#:���T�{�{�� ?�<�C��"�9�9�#�>�>�>��r���c������������������N����|�j���������dk����rdS� �|�j��������|�j������������������}n#�t����������$�r �|�j��������}Y�nw�xY�wt ����������|d������������} �t����������|������������d���������}|����������������������|������������|�_��������t ����������||������������S�#�t����������t����������t����������f$�r�Y�dS�w�xY�w)zl Locate Visual C++ for VS2017+. Return ------ str path r����r����r��rZ���)r����r����r ��r��r���r���r ��r����r!���r����� IndexError)r�����vs_dir�guess_vcr����s��� r���r��zSystemInfo._guess_vc���s���������;�$����2� '��(���5�F�F���� '�� '�� '��&�F�F�F� '������� 0�1�1�� ��X�&�&�r�*�F��0�0��8�8�D�K���&�)�)�)����*�-�� �� �� ��2�2� ���s����"��6�6� >B �� B$�#B$c������������������<����t����������|�j��������d|�j��������z��������������}t����������|�j��������j��������d|�j��������z��������������}|�j�����������������������������|d������������}|rt����������|d������������n|}|�j�����������������������������|�j��������j��������d|�j��������z��������������p|S�)z{ Locate Visual C++ for versions prior to 2017. Return ------ str path z Microsoft Visual Studio %0.1f\VCr��� installdirr=���)r���r��r����r����r����r����r����)r����r���reg_path� python_vc� default_vcs��� r���r��zSystemInfo._guess_vc_legacy��s���������� �"E���"S� �� �� ����-�w���/D�E�E���G�N�N�8�\�:�:� �.7�D�T�)�T�*�*�*�W� ���w�~�~�d�g�j�'�D�K�*?�@�@�N�J�Nr���c�����������������������|�j���������dk����rdS�|�j���������dk����rdS�|�j���������dk����rdS�|�j���������dk����rdS�|�j���������d k����rd S�dS�)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.1ar����)z10.0r,��N�r����r����s��� r����WindowsSdkVersionzSystemInfo.WindowsSdkVersion+��sg��������;�#���'�'� �[�D� � � �=� �[�D� � � �=� �[�D� � � �=� �[�D� � � �=��!� r���c������������������R�����|�����������������������t����������|�j��������d������������������������S�)zt Microsoft Windows SDK last version. Return ------ str version �lib)�_use_last_dir_namer���� WindowsSdkDirr����s��� r����WindowsSdkLastVersionz SystemInfo.WindowsSdkLastVersion@��s%��������&�&�t�D�,>��'F�'F�G�G�Gr���c�����������������������d}|�j���������D�]>}t����������|�j��������j��������d|z��������������}|�j�����������������������������|d������������}|r�n�?|rt����������|������������sOt����������|�j��������j��������d|�j��������z��������������}|�j�����������������������������|d������������}|rt����������|d������������}|rt����������|������������sR|�j���������D�]J}|d|���������������������d����������������������}d |z��}t����������|�j ��������|������������}t����������|������������r|}�K|rt����������|������������s5|�j���������D�]-}d |z��}t����������|�j ��������|������������}t����������|������������r|}�.|st����������|�j ��������d������������}|S�)zn Microsoft Windows SDK directory. Return ------ str path r����zv%s�installationfolderr��r%���WinSDKNr��zMicrosoft SDKs\Windows Kits\%szMicrosoft SDKs\Windows\v%s�PlatformSDK)r.��r���r����r����r����r���r����r�����rfindr5���r��)r�����sdkdirr���locrL����install_base�intver�ds��� r���r2��zSystemInfo.WindowsSdkDirL��s����������)�� �� �C��t�w�*�E�C�K�8�8�C��W�^�^�C�)=�>�>�F��� ��� ��� 6�U�6�]�]�� 6����-�w���/D�E�E�D��7�>�>�$��=�=�L��� 6��l�H�5�5���� �U�6�]�]�� ��-�� �� ���-�s�y�y��~�~�-�.��8�6�A����*�D�1�1����8�8����F���� �U�6�]�]�� ��-�� �� ��4�s�:����*�D�1�1����8�8����F���� <��$�+�]�;�;�F�� r���c�����������������������|�j���������dk����rd}d}n-d}|�j���������dk����rdnd}|�j�����������������������������d|�������������}d ||���������������������d d������������fz��}g�}|�j���������dk����r)|�j��������D�]!}|t����������|�j��������j��������||������������gz ��}�"|�j��������D�]$}|t����������|�j��������j ��������d |z��|������������gz ��}�%|D�]#}|�j��������� ��������������������|d������������}|r|c�S��$dS�)zy Microsoft Windows SDK executable directory. Return ------ str path r*���#���r�����(���r+��TF)rO���r����zWinSDK-NetFx%dTools%sr�����-r����zv%sAr5��N)r����r����r����ro����NetFxSdkVersionr���r����r����r.��r����r����) r�����netfxverr����r�����fx�regpathsr��rL����execpaths ��� r����WindowsSDKExecutablePathz#SystemInfo.WindowsSDKExecutablePathw��s3�������;�$����H��D�D��H�"�k�T�1�1�d�d�u�G��7�&�&�4��&�A�A�D� $��$�,�,�t�S�2I�2I�'J� J������;�$����+�� ?�� ?���T�$�'�"3�S�"�=�=�>�>����)�� F�� F�C���d�g�1�6�C�<��D�D�E�E�H�H���� �� �D��w�~�~�d�,@�A�A�H��� ����� � �� r���c�����������������������t����������|�j��������j��������d|�j��������z��������������}|�j�����������������������������|d������������pdS�)zl Microsoft Visual F# directory. Return ------ str path z%0.1f\Setup\F#� productdirr����)r���r����r����r����r����)r����rL���s��� r����FSharpInstallDirzSystemInfo.FSharpInstallDir���s;��������D�G�(�*;�d�k�*I�J�J���w�~�~�d�L�1�1�7�R�7r���c�����������������������|�j���������dk����rdnd}|D�]2}|�j�����������������������������|�j��������j��������d|z��������������}|r|pdc�S��3dS�)zt Microsoft Universal CRT SDK directory. Return ------ str path r����)�10�81r���z kitsroot%sr����N)r����r����r����r����)r�����versr��r9��s��� r����UniversalCRTSdkDirzSystemInfo.UniversalCRTSdkDir���sp������� $�{�d�2�2�|�|������ $�� $�C��W�^�^�D�G�$>��s�@R�S�S�F��� $��|��#�#�#� $� $�� $r���c������������������R�����|�����������������������t����������|�j��������d������������������������S�)z� Microsoft Universal C Runtime SDK last version. Return ------ str version r0��)r1��r���rO��r����s��� r����UniversalCRTSdkLastVersionz%SystemInfo.UniversalCRTSdkLastVersion���s%��������&�&�t�D�,C�U�'K�'K�L�L�Lr���c������������������ �����|�j���������dk����rdndS�)z� Microsoft .NET Framework SDK versions. Return ------ tuple of str versions r����) z4.7.2z4.7.1z4.7z4.6.2z4.6.1z4.6z4.5.2z4.5.1z4.5r���r-��r����s��� r���rB��zSystemInfo.NetFxSdkVersion���s"��������{�d�"�"�� X�W�� r���c�����������������������d}|�j���������D�];}t����������|�j��������j��������|������������}|�j�����������������������������|d������������}|r�n�<|S�)zu Microsoft .NET Framework SDK directory. Return ------ str path r�����kitsinstallationfolder)rB��r���r����r����r����)r����r9��r��r:��s��� r����NetFxSdkDirzSystemInfo.NetFxSdkDir���s\����������'�� �� �C��t�w�(�#�.�.�C��W�^�^�C�)A�B�B�F��� ��� �� r���c������������������z�����t����������|�j��������d������������}|�j�����������������������������|�j��������j��������d������������p|S�)zw Microsoft .NET Framework 32bit directory. Return ------ str path zMicrosoft.NET\Framework�frameworkdir32�r���r����r����r����r�����r�����guess_fws��� r����FrameworkDir32zSystemInfo.FrameworkDir32���s8����������%?�@�@����w�~�~�d�g�j�*:�;�;�G�x�Gr���c������������������z�����t����������|�j��������d������������}|�j�����������������������������|�j��������j��������d������������p|S�)zw Microsoft .NET Framework 64bit directory. Return ------ str path zMicrosoft.NET\Framework64�frameworkdir64rX��rY��s��� r����FrameworkDir64zSystemInfo.FrameworkDir64���s8����������%A�B�B����w�~�~�d�g�j�*:�;�;�G�x�Gr���c������������������,�����|�����������������������d������������S�)z� Microsoft .NET Framework 32bit versions. Return ------ tuple of str versions � �����_find_dot_net_versionsr����s��� r����FrameworkVersion32zSystemInfo.FrameworkVersion32 �����������*�*�2�.�.�.r���c������������������,�����|�����������������������d������������S�)z� Microsoft .NET Framework 64bit versions. Return ------ tuple of str versions �@���ra��r����s��� r����FrameworkVersion64zSystemInfo.FrameworkVersion64��rd��r���c������������������d����|�j������������������������������|�j���������j��������d|z��������������}t����������|�d|z��������������}|p|����������������������|d������������pd}|�j��������dk����r|dfS�|�j��������dk����r&|�����������������������������������dd ����������d k����rdn|dfS�|�j��������d k����rdS�|�j��������dk����rdS�dS�)z� Find Microsoft .NET Framework versions. Parameters ---------- bits: int Platform number of bits: 32 or 64. Return ------ tuple of str versions zframeworkver%dzFrameworkDir%dr.���r����r+��zv4.0r����Nr���v4z v4.0.30319�v3.5r����)rj��� v2.0.50727g������ @)zv3.0rk��)r����r����r�����getattrr1��r����rj���)r�����bits�reg_ver�dot_net_dirr��s��� r���rb��z!SystemInfo._find_dot_net_versions!��s���������'�.�.����-=��-D�E�E���d�$4�t�$;�<�<���H��0�0��c�B�B�H�b����;�$�����;�� �[�D� � �#&�9�9�;�;�r��r�?�d�#:�#:�<�<��V�K�K� �[�C� � �'�'� �[�C� � �'�'�� � r���c������������������|�����������fd�t����������t������������������������������������D���������������}t����������|d������������pdS�)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 c��������������3��������K����|�]8}t����������t�����������|�������������������������|�����������������������������������4|V����9d�S�r����)r���r���� startswith)rk����dir_namerL����prefixs��� ��r���ru���z0SystemInfo._use_last_dir_name.<locals>.<genexpr>O��sg������������ �� ���T�$��)�)�*�*� ��08�/B�/B�6�/J�/J� �� �� �� �� �� �� r���Nr����)�reversedr����next)rL���rt��� matching_dirss���`` r���r1��zSystemInfo._use_last_dir_name>��sV��������" �� �� �� �� �$�W�T�]�]�3�3� �� �� � � ��M�4�(�(�.�B�.r���r�����r����)#r���r���r���r����r ���rA���r����r5���r��r����r����r����r�����staticmethodr ��r����r��r��r��r��r.��r3��r2��rG��rJ��rO��rQ��rB��rU��r[��r^��rc��rg��rb��r1��r���r���r���r����r����K��s�������������� �� ���W�[��2� &� &�F��7�;�~�r�2�2�L�!�g�k�"5�|�D�D�O�S��S��S��S�#��#��#�(�����>(��(��(�T��7��7���\�7� ��L��L���X�L�"�������X��"�����<O��O��O�*��!��!���X�!�(�� H�� H���X� H���(��(���X�(�T�� �� ���X� �D�� 8�� 8���X� 8���$��$���X�$�$�� M�� M���X� M��� �� ���X� � �������X��"�� H�� H���X� H��� H�� H���X� H��� /�� /���X� /��� /�� /���X� /�(��(��(�:��/��/��/���\�/��/��/r���r����c��������������������>����e�Zd�ZdZd!d�Zed����������������Zed����������������Zed����������������Zed����������������Z ed ����������������Z ed ����������������Zed����������������Zed����������������Z ed ����������������Zed����������������Zed����������������Zd��Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zed����������������Zd"d�Zd ��Z dS�)#�EnvironmentInfoaY�� 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. Nr���c������������������������t����������|������������|�_��������t����������|�j��������������������|�_��������t ����������|�j��������|������������|�_��������|�j��������|k�����r!d}t����������j��������� ��������������������|�������������d�S�)Nz.No suitable Microsoft Visual C++ version found) r����r����r����r����r�����sir����rx���r<���ry���)r����r����r����� vc_min_ver�errs��� r���r����zEnvironmentInfo.__init__o��sf�������t�$�$����t�w�'�'����T�W�f�-�-����;��#�#�B�C��"�9�9�#�>�>�>��$�#r���c�����������������������|�j���������j��������S�)zk Microsoft Visual Studio. Return ------ float version )r}��r����r����s��� r���r����zEnvironmentInfo.vs_verx�����������w�~�r���c�����������������������|�j���������j��������S�)zp Microsoft Visual C++ version. Return ------ float version )r}��r����r����s��� r���r����zEnvironmentInfo.vc_ver���r���r���c�������������������������ddg}��j���������dk����r1��j�����������������������������dd�������������}|dgz ��}|dgz ��}|d|z��gz ��}��fd �|D���������������S�) zu Microsoft Visual Studio Tools. Return ------ list of str paths zCommon7\IDEz Common7\Toolsr����T�r����rO���z1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance ToolszTeam Tools\Performance Tools%sc������������������D������g�|�]}t�����������j��������j��������|��������������S�r����r���r}��r���rk���rL���r����s��� �r���� <listcomp>z+EnvironmentInfo.VSTools.<locals>.<listcomp>����(�������C�C�C�T��T�W�)�4�0�0�C�C�Cr���)r����r����r����)r�����paths�arch_subdirs���` r����VSToolszEnvironmentInfo.VSTools���s��������� �!1�2���;�$����'�-�-�d��-�E�E�K��J�K�K�E��5�6�6�E��7�+�E�F�F�E�C�C�C�C�U�C�C�C�Cr���c������������������j�����t����������|�j��������j��������d������������t����������|�j��������j��������d������������gS�)z� Microsoft Visual C++ & Microsoft Foundation Class Includes. Return ------ list of str paths �IncludezATLMFC\Include�r���r}��r��r����s��� r���� VCIncludeszEnvironmentInfo.VCIncludes���s3������� ���%�y�1�1����%�'8�9�9� �� r���c����������������������������j���������dk����r��j�����������������������������d�������������}n��j�����������������������������d�������������}d|z��d|z��g}��j���������dk����r |d|z��gz ��}��fd �|D���������������S�) z� Microsoft Visual C++ & Microsoft Foundation Class Libraries. Return ------ list of str paths �������.@T�rO����r�����Lib%szATLMFC\Lib%sr����zLib\store%sc������������������D������g�|�]}t�����������j��������j��������|��������������S�r���r���r���s��� �r���r���z/EnvironmentInfo.VCLibraries.<locals>.<listcomp>���r���r���)r����r����r����)r����r���r���s���` r����VCLibrarieszEnvironmentInfo.VCLibraries���s����������;�$����'�,�,��,�6�6�K�K��'�,�,�T�,�:�:�K��;�&��+�(E�F���;�$����n�{�2�3�3�E�C�C�C�C�U�C�C�C�Cr���c������������������R�����|�j���������dk�����rg�S�t����������|�j��������j��������d������������gS�)z� Microsoft Visual C++ store references Libraries. Return ------ list of str paths r����zLib\store\references)r����r���r}��r��r����s��� r����VCStoreRefszEnvironmentInfo.VCStoreRefs���s/��������;�����I��T�W�)�+B�C�C�D�Dr���c�����������������������|�j���������}t����������|j��������d������������g}|�j��������dk����rdnd}|�j�����������������������������|������������}|r|t����������|j��������d|z��������������gz ��}|�j��������dk����r8d|�j�����������������������������d�������������z��}|t����������|j��������|������������gz ��}n�|�j��������dk����r�|�j�������������������������������������������rd nd }|t����������|j��������||�j�����������������������������d�������������z��������������gz ��}|�j��������j ��������|�j��������j ��������k����r5|t����������|j��������||�j�����������������������������d�������������z��������������gz ��}n|t����������|j��������d������������gz ��}|S�) zr Microsoft Visual C++ Tools. Return ------ list of str paths � VCPackagesr����TF�Bin%sr����r���r���z bin\HostX86%sz bin\HostX64%sr����Bin)r}��r���r��r����r����r����r����r����r����r����r����)r����r}���toolsr����r���rL����host_dirs��� r����VCToolszEnvironmentInfo.VCTools���s��������W���b�o�|�4�4�5���;�$�.�.�4�4�E���g�'�'��1�1���� D��d�2�?�G�k�,A�B�B�C�C�E��;�$����T�W�0�0��0�>�>�>�D��d�2�?�D�1�1�2�2�E�E� �[�D� � �$(�G�$:�$:�$<�$<�R� � �BR�� �� �d�2�?�H�t�w�7I�7I�d�7I�7S�7S�,S�T�T�U�U�E��w�"�d�g�&8�8�8�����(�T�W�5H�5H�T�5H�5R�5R�*R�S�S������ � �d�2�?�E�2�2�3�3�E��r���c������������������0����|�j���������dk����r:|�j�����������������������������dd�������������}t����������|�j��������j��������d|z��������������gS�|�j�����������������������������d�������������}t����������|�j��������j��������d������������}|�j��������}t����������||�d|��������������gS�)zw Microsoft Windows SDK Libraries. Return ------ list of str paths r����Tr���r���r���r0���um)r����r����r����r���r}��r2���_sdk_subdir)r����r���r0���libvers��� r����OSLibrarieszEnvironmentInfo.OSLibraries���s���������;�$����'�,�,�T�t�,�D�D�K����.��+�0E�F�F�G�G���'�,�,��,�6�6�K��t�w�,�e�4�4�C��%�F���&�&�&�+�+�>�?�?�@�@r���c������������������ ����t����������|�j��������j��������d������������}|�j��������dk����r|t����������|d������������gS�|�j��������dk����r|�j��������}nd}t����������|d|z��������������t����������|d|z��������������t����������|d|z��������������gS�) zu Microsoft Windows SDK Include. Return ------ list of str paths �includer�����glr����r����z%ssharedz%sumz%swinrt)r���r}��r2��r����r���)r����r����sdkvers��� r���� OSIncludeszEnvironmentInfo.OSIncludes��s���������t�w�,�i�8�8���;�$����T�'�4�0�0�1�1���{�d�"�"��)������W�j�6�1�2�2��W�f�v�o�.�.��W�i�&�0�1�1��� r���c����������������������t����������|�j��������j��������d������������}g�}|�j��������dk����r ||�j��������z ��}|�j��������dk����r|t����������|d������������gz ��}|�j��������dk����ru||t����������|�j��������j��������d������������t����������|dd������������t����������|d d������������t����������|d d������������t����������|�j��������j��������ddd |�j��������z��ddd������������gz ��}|S�)z} Microsoft Windows SDK Libraries Paths. Return ------ list of str paths � Referencesr����r*��zCommonConfiguration\Neutralr����� UnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContract� ExtensionSDKszMicrosoft.VCLibsr���CommonConfiguration�neutral)r���r}��r2��r����r���)r�����ref�libpaths��� r���� OSLibpathzEnvironmentInfo.OSLibpath*��s���������4�7�(�,�7�7�����;�#����t�'�'�G��;�$�����S�"@�A�A�B�B�G��;�$������T�W�*�O�<�<��S�C�Y�O�O��S�A�9�M�M��S�H�)�T�T���G�)�#�&��d�k�)� �)����� �� �G� ��r���c������������������D�����t����������|������������������������������������������������S�)zs Microsoft Windows SDK Tools. Return ------ list of str paths )�list� _sdk_toolsr����s��� r����SdkToolszEnvironmentInfo.SdkToolsP��s��������D�O�O�%�%�&�&�&r���c��������������#�������K����|�j���������dk�����r+|�j���������dk����rdnd}t����������|�j��������j��������|������������V���|�j�������������������������������������������s<|�j�����������������������������d�������������}d|z��}t����������|�j��������j��������|������������V���|�j���������dv�rZ|�j�������������������������������������������rd }n|�j�����������������������������dd� ������������}d|z��}t����������|�j��������j��������|������������V���nb|�j���������dk����rWt����������|�j��������j��������d������������}|�j�����������������������������d�������������}|�j��������j��������}t����������||�|��������������V���|�j��������j ��������r|�j��������j ��������V���dS�dS�) z� Microsoft Windows SDK Tools paths generator. Return ------ generator of str paths r���r*��r���zBin\x86Tr���r���)r����r*��r����r���zBin\NETFX 4.0 Tools%sN) r����r���r}��r2��r����r����r����r����r3��rG��)r�����bin_dirr���rL���r���s��� r���r���zEnvironmentInfo._sdk_tools\��s������������;����#�{�d�2�2�e�e� �G��t�w�,�g�6�6�6�6�6��w�%�%�'�'�� 4��'�-�-�$�-�7�7�K��[�(�D��t�w�,�d�3�3�3�3�3��;�,�&�&��w�$�$�&�&�� J� ���"�g�1�1�$�D�1�I�I��+�k�9�D��t�w�,�d�3�3�3�3�3�3� �[�D� � ����-�u�5�5�D��'�-�-�$�-�7�7�K��W�2�F��t�v�v�{�{�;�<�<�<�<�<��7�+�� 3��'�2�2�2�2�2�2� 3�� 3r���c������������������,�����|�j���������j��������}|rd|z��ndS�)zu Microsoft Windows SDK version subdir. Return ------ str subdir �%s\r����)r}��r3���r�����ucrtvers��� r���r���zEnvironmentInfo._sdk_subdir��s#��������'�/��%,�4��� � �"�4r���c������������������R�����|�j���������dk����rg�S�t����������|�j��������j��������d������������gS�)zs Microsoft Windows SDK Setup. Return ------ list of str paths r�����Setup)r����r���r}��r2��r����s��� r����SdkSetupzEnvironmentInfo.SdkSetup���s.��������;�����I��T�W�*�G�4�4�5�5r���c������������������t�����|�j���������}|�j���������|�j��������dk����r-d}|������������������������������������o|������������������������������������}n>|�����������������������������������p|�����������������������������������}|j��������dk����p |j��������dk����}g�}|r|�fd��j��������D���������������z ��}|r|�fd��j��������D���������������z ��}|S�)zv Microsoft .NET Framework Tools. Return ------ list of str paths r����TrV���c������������������:������g�|�]}t�����������j��������|��������������S�r���)r���r[���rk���r��r}��s��� �r���r���z+EnvironmentInfo.FxTools.<locals>.<listcomp>����&�������T�T�T�s�d�2�,�c�2�2�T�T�Tr���c������������������:������g�|�]}t�����������j��������|��������������S�r���)r���r^��r���s��� �r���r���z+EnvironmentInfo.FxTools.<locals>.<listcomp>���r���r���) r����r}��r����r����r����r����r����rc��rg��)r����r����� include32� include64r���r}��s��� @r����FxToolszEnvironmentInfo.FxTools���s����������W�� �W���;�$����I��,�,�.�.�.�J�r�7H�7H�7J�7J�3J�I�I��(�(�*�*�A�b�.?�.?�.A�.A�I���'�1�M�R�]�g�5M�I����� U��T�T�T�T�b�>S�T�T�T�T�E��� U��T�T�T�T�b�>S�T�T�T�T�E��r���c�����������������������|�j���������dk�����s|�j��������j��������sg�S�|�j�����������������������������d�������������}t����������|�j��������j��������d|z��������������gS�)z~ Microsoft .Net Framework SDK Libraries. Return ------ list of str paths r����Tr���zlib\um%s)r����r}��rU��r����r����r���)r����r���s��� r����NetFxSDKLibrariesz!EnvironmentInfo.NetFxSDKLibraries���sU��������;����T�W�%8���I��g�(�(�T�(�2�2���T�W�(�+��*C�D�D�E�Er���c������������������j�����|�j���������dk�����s|�j��������j��������sg�S�t����������|�j��������j��������d������������gS�)z} Microsoft .Net Framework SDK Includes. Return ------ list of str paths r����z include\um)r����r}��rU��r���r����s��� r����NetFxSDKIncludesz EnvironmentInfo.NetFxSDKIncludes���s8��������;����T�W�%8���I��T�W�(�-�8�8�9�9r���c������������������8�����t����������|�j��������j��������d������������gS�)z� Microsoft Visual Studio Team System Database. Return ------ list of str paths z VSTSDB\Deployr���r����s��� r����VsTDbzEnvironmentInfo.VsTDb���s��������T�W�)�+;�<�<�=�=r���c����������������������|�j���������dk�����rg�S�|�j���������dk�����r(|�j��������j��������}|�j�����������������������������d�������������}n|�j��������j��������}d}d|�j���������|fz��}t ����������||������������g}|�j���������dk����r|t ����������||d������������gz ��}|S�)zn Microsoft Build Engine. Return ------ list of str paths r+��r���Tr���r����zMSBuild\%0.1f\bin%s�Roslyn)r����r}��r��r����r����r��r���)r����� base_pathr���rL����builds��� r����MSBuildzEnvironmentInfo.MSBuild���s���������;�����I� �[�4� � ���/�I��'�-�-�d�-�;�;�K�K���,�I��K�%���k�(B�B���i��&�&�'���;�$����d�9�d�H�5�5�6�6�E��r���c������������������R�����|�j���������dk�����rg�S�t����������|�j��������j��������d������������gS�)zt Microsoft HTML Help Workshop. Return ------ list of str paths r*��zHTML Help Workshop)r����r���r}��r��r����s��� r����HTMLHelpWorkshopz EnvironmentInfo.HTMLHelpWorkshop���s/��������;�����I��T�W�,�.B�C�C�D�Dr���c�����������������������|�j���������dk�����rg�S�|�j�����������������������������d�������������}t����������|�j��������j��������d������������}|�j��������}t����������||�d|��������������gS�)z� Microsoft Universal C Runtime SDK Libraries. Return ------ list of str paths r����Tr���r0���ucrt)r����r����r����r���r}��rO���_ucrt_subdir)r����r���r0��r���s��� r���� UCRTLibrarieszEnvironmentInfo.UCRTLibraries��sh��������;�����I��g�(�(�T�(�2�2���4�7�-�u�5�5���#���S������=�>�>�?�?r���c�����������������������|�j���������dk�����rg�S�t����������|�j��������j��������d������������}t����������|d|�j��������z��������������gS�)z� Microsoft Universal C Runtime SDK Include. Return ------ list of str paths r����r���z%sucrt)r����r���r}��rO��r���)r����r���s��� r����UCRTIncludeszEnvironmentInfo.UCRTIncludes��sE��������;�����I��t�w�1�9�=�=���W�h��):�:�;�;�<�<r���c������������������,�����|�j���������j��������}|rd|z��ndS�)z� Microsoft Universal C Runtime SDK version subdir. Return ------ str subdir r���r����)r}��rQ��r���s��� r���r���zEnvironmentInfo._ucrt_subdir.��s#��������'�4��%,�4��� � �"�4r���c������������������J�����d|�j���������cxk����rdk����rn�ng�S�|�j��������j��������gS�)zk Microsoft Visual F#. Return ------ list of str paths r*��r+��)r����r}��rJ��r����s��� r����FSharpzEnvironmentInfo.FSharp;��s;��������$�+�$�$�$�$��$�$�$�$�$��I���(�)�)r���c������������������\����d|�j���������z��}|�j�����������������������������d����������������������������������d������������}g�}|�j��������j��������}t ����������|���������������������dd������������������������}t����������|������������r8t����������|t����������|������������d���������������������}||t����������|d������������gz ��}|t����������|d ������������gz ��}d |�j���������dz��z��d t����������|�j��������������������dz��z��f}t����������j��������||������������D�]*\��}}t����������||||������������} t����������| ������������r| c�S��+dS�) z Microsoft Visual C++ runtime redistributable dll. Return ------ str path zvcruntime%d0.dllTr���r����z\Toolsz\RedistrZ����onecorerW���zMicrosoft.VC%d.CRT� ���N)r����r����r����rH���r}��r��r ���ro���r���r���r���r&���r����r"���r����r���) r����ra���r����prefixes� tools_path�redist_path�crt_dirsrt���crt_dirrL���s ��� r����VCRuntimeRedistzEnvironmentInfo.VCRuntimeRedistJ��sK������'���4� ��g�(�(�T�(�2�2�8�8��>�>������W�)� ��j�0�0��J�G�G�H�H������� D��{�G�K�,@�,@��,D�E�E�K���d�;� �&B�&B�C�C�H��T�*�h�/�/�0�0��� !�D�K�"�$4�5� �C���$4�$4�r�$9�:� ��� )�0��8�D�D�� �� �O�F�G����W�i�@�@�D��d�|�|�� ����� � �� r���Tc������������������.����t����������|����������������������d|�j��������|�j��������|�j��������|�j��������g|������������|����������������������d|�j��������|�j��������|�j��������|�j ��������|�j ��������g|������������|����������������������d|�j��������|�j��������|�j��������|�j��������g|������������|����������������������d|�j ��������|�j��������|�j��������|�j��������|�j��������|�j��������|�j��������|�j��������|�j��������g |�������������������������}|�j��������dk����rt-����������|�j��������������������r |�j��������|d<���|S�)z� Return environment dict. Parameters ---------- exists: bool It True, only return existing paths. Return ------ dict environment r���r0��r���rL���)r���r0��r���rL���r���rv���)�dict�_build_pathsr���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r����r���r���)r�����existsr����s��� r���� return_envzEnvironmentInfo.return_envo��sA��������%�%���O��O��%��)� ��� �� ���!�!���$��$��L��&��*���� �� ���%�%���!�4�<��1A�4�>�R����� ��"�"���L��L��J��M��M��L��L��)��K� ������7* ��* ��* ��V��;�"�����(<�!=�!=��)-�)=�C�%�&�� r���c�����������������������t�����������j�����������������������������|������������}t����������j��������|d���������������������������������t����������������������}t����������j��������||������������}|r"t����������t����������t����������|������������������������n|}|s6d|� ����������������������������������z��}t����������j��������� ��������������������|�������������t����������|������������} t ����������j��������| ������������S�)aC�� Given an environment variable name and specified paths, return a pathsep-separated string of paths containing unique, extant, directories from those paths and from the environment variable. Raise an error if no paths are resolved. Parameters ---------- name: str Environment variable name spec_path_lists: list of str Paths exists: bool It True, only return existing paths. Return ------ str Pathsep-separated paths r����z %s environment variable is empty)r"����chain� from_iterabler ���rA���r��r���r����filterr����upperrx���r<���ry���r���r���) r����r�����spec_path_listsr���� spec_paths� env_pathsr����extant_pathsr���unique_pathss ��� r���r���zEnvironmentInfo._build_paths���s�������.��_�2�2�?�C�C� ��K��b�)�)�/�/��8�8� ��� �I�6�6��5;�F�t�F�5�%�0�0�1�1�1����� ?�4�t�z�z�|�|�C�C��"�9�9�#�>�>�>�&�|�4�4���|�L�)�)�)r���)Nr���)T)!r���r���r���r����r����r����r����r����r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r{��r{��W��s����������������.?��?��?��?��� �� ���X� ��� �� ���X� ���D��D���X�D�&�� �� ���X� ���D��D���X�D�(��E��E���X�E���#��#���X�#�J��A��A���X�A�&�������X��2��#��#���X�#�J�� '�� '���X� '�!3��!3��!3�F�� 5�� 5���X� 5���6��6���X�6��������X��4�� F�� F���X� F���:��:���X�:��� >�� >���X� >��������X��6��E��E���X�E���@��@���X�@�"�� =�� =���X� =��� 5�� 5���X� 5���*��*���X�*���"��"���X�"�H;��;��;��;�z*��*��*��*��*r���r{��rx��)$r����r���ior����osr���r����os.pathr���r���r���r ���rE���r ���rB����platformr"����distutils.errorsrx���� setuptools.extern.more_itertoolsr����systemr���r ���r���r2���rM���r[���re���r����r����r����r����r����r����r{��r���r���r����<module>r������sy�����������������������������������������0��0��0��0��0��0��0��0��0��0��0��0��)��)��)��)��)��)���������������������������������������<��<��<��<��<��<��8�?��� �!�!��M�M�M��������!��!��!��!��!��!��!��!���d�f�f�G�"��"��"�<0��0��0�h����� �����2 ��2 ��2 �j�����<�����4$��$��$��$�Nv ��v ��v ��v ��v ��v ��v ��v �ry#��y#��y#��y#��y#��y#��y#��y#�xI/��I/��I/��I/��I/��I/��I/��I/�Xt *��t *��t *��t *��t *��t *��t *��t *��t *��t *r���