Edit File: sysconfig.cpython-38.opt-1.pyc
U �����`e@a������������������� ���@���s��d�Z�ddlZddlZddlmZmZ�dddddd d ddd dgZdhZddddddddd�ddddddddd�ddddddd dd�d!d!d"d"d#d$d%d&�d'd'd(d)d*d+d%d&�d,d,d-d-d.d+d%d&�d/�Zd&Z ej ���d�Zd0ej dd1���Zd2ej dd1���Zej�ej�Zej�ej�Zej�ej�Zej�ej�ZdadZd3d4��Zej�rVej�eej��Znee� ���Zej!d5k�r�e�"���#d6��r�eej�$eee��Zd7ej%k�r�eej%d7��Zd8d9��Z&e'ed:d�Z(ej!d5k�r�d;d<��Z)e)e�Ze)e(�Z(djd>d?�Z*e*d@�Z+e+�r dAD�]Z,dBee,�dC<�dDee,�dE<��q�dFdG��Z-dHdI��Z.dJdK��Z/dLdM��Z0dNdO��Z1dkdPdQ�Z2dRd��Z3dSdT��Z4dUdV��Z5dWdX��Z6dYdZ��Z7dld[d�Z8d\d��Z9d]d ��Z:d^d ��Z;e0��dd@fd_d �Z<e0��dd@fd`d�Z=dad��Z>dbd��Z?dcd��Z@ddd��ZAdedf��ZBdgdh��ZCeDdik�r�eC���dS�)mz-Access to Python's configuration information.�����N)�pardir�realpath�get_config_h_filename�get_config_var�get_config_vars�get_makefile_filename�get_path�get_path_names� get_paths�get_platform�get_python_version�get_scheme_names�parse_config_hZMACOSX_DEPLOYMENT_TARGETz/{installed_base}/lib64/python{py_version_short}z){platbase}/lib64/python{py_version_short}z1{base}/lib/python{py_version_short}/site-packagesz7{platbase}/lib64/python{py_version_short}/site-packagesz;{installed_base}/include/python{py_version_short}{abiflags}z?{installed_platbase}/include/python{py_version_short}{abiflags}z {base}/binz{base})�stdlib� platstdlib�purelib�platlib�include�platinclude�scripts�dataz{installed_base}/lib/pythonz{base}/lib/pythonz{installed_base}/include/pythonz{installed_base}/Libz {base}/Libz{base}/Lib/site-packagesz{installed_base}/Includez{base}/Scriptsz#{userbase}/Python{py_version_nodot}z1{userbase}/Python{py_version_nodot}/site-packagesz+{userbase}/Python{py_version_nodot}/Includez+{userbase}/Python{py_version_nodot}/Scriptsz {userbase})r���r���r���r���r���r���r���z){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}/binz{userbase}/lib/pythonz#{userbase}/lib/python/site-packagesz{userbase}/include)�posix_prefix� posix_home�ntZnt_userZ posix_userZosx_framework_user�%d.%d����z%d%dc�����������������C���s(���z t�|��W�S��tk r"���|��Y�S�X�d�S��N)r����OSError)�path��r����./opt/alt/python38/lib64/python3.8/sysconfig.py�_safe_realpathi���s���� r!���r���)z\pcbuild\win32z\pcbuild\amd64Z_PYTHON_PROJECT_BASEc�����������������C���s,���dD�]"}t�j�t�j�|�d|��r�dS�qdS�)N)ZSetupzSetup.localZModulesTF)�osr����isfile�join)�d�fnr���r���r ����_is_python_source_dir~���s����r'����_homec�����������������C���s0���|�r,t�j�|���t�j�t�j�td���r,tS�|�S�)NZPCbuild)r"���r����normcase� startswithr$����_PREFIX)r%���r���r���r ����_fix_pcbuild����s �����r,���Fc�����������������C���s���|�rt�rtt��S�tt�S�r���)� _sys_homer'���� _PROJECT_BASE)Z check_homer���r���r ����is_python_build����s����r/���T)r���r���z{srcdir}/Includer���z{projectbase}/.r���c�������������� ���C���sn���z|�j�f�|�W�S��tk rh���z|�j�f�tj�W��Y�S��tk rb�}�ztd|��d��W�5�d�}~X�Y�nX�Y�nX�d�S�)Nz{%s})�format�KeyErrorr"����environ�AttributeError)�sZ local_vars�varr���r���r ����_subst_vars����s����r6���c�����������������C���s0���|�����}|���D�]\}}||kr"q||�|<�qd�S�r���)�keys�items)Ztarget_dictZ other_dictZtarget_keys�key�valuer���r���r ����_extend_dict����s ����r;���c�����������������C���sb���i�}|d�kri�}t�|t����t|�����D�]4\}}tjdkrFtj�|�}tj�t ||��||<�q(|S�)N)�posixr���) r;���r����_INSTALL_SCHEMESr8���r"����namer���� expanduser�normpathr6���)�scheme�vars�resr9���r:���r���r���r ����_expand_vars����s���� rD���c�������������������C���s���t�jdkrdS�t�jS�)Nr<���r���)r"���r>���r���r���r���r ����_get_default_scheme����s���� rE���c������������������C���sz���t�j�dd��}�|�r|�S�dd��}t�jdkrBt�j�d�p6d}||d�S�tjdkrptjrp|dd tjd tjd�d����S�|dd�S�) N�PYTHONUSERBASEc������������������W���s���t�j�t�jj|����S�r���)r"���r���r?���r$���)�argsr���r���r ����joinuser����s����z_getuserbase.<locals>.joinuserr����APPDATA�~�Python�darwin�Libraryr���r���z.local)r"���r2����getr>����sys�platform� _framework�version_info)�env_baserH����baser���r���r ����_getuserbase����s���� �rU���c�������������� ���C���s`��ddl�}|�d�}|�d�}|�d�}|dkr2i�}i�}i�}t|�dd��}|���} W�5�Q�R�X�| D�]�} | �d�s^| ���d krzq^|�| �}|r^|�d d�\}} | ���} | �dd �}d |kr�| ||<�q^z|t kr�t �t| �} W�n$�t k r����| �dd �||<�Y�q^X�| ||<�q^t|� ���}d}t|�dk�r&t|�D��]�}||�}|�|�}|�|�}|�rv|�rv|���|���k��rp|n|}n|�r�|n|}|dk �r|�d �}d}||k�r�t||��}n�||k�r�d}nx|tjk�r�tj|�}n`||k�r0|�d��r |dd��|k�r d }n$d|�|k�rd}nt|d|���}nd �||<�}|�r||���d��}|d|�����|�|�}d |k�r~|||<�n�z|t k�r�t �t|�}W�n"�t k �r����|���||<�Y�n X�|||<�|�|��|�d��r|dd��|k�r|dd��}||k�r|||<�n|||<�|�|���q,�q|���D�]"\}} t| t��r.| ���||<��q.|�|��|S�)z�Parse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. r���Nz"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}�surrogateescape)�errors�#������r���z$$�$)ZCFLAGSZLDFLAGSZCPPFLAGSTFZPY_����)�re�compile�open� readlinesr*����strip�match�group�replace�_ALWAYS_STR� ValueError�int�listr7����len�tuple�search�start�strr"���r2����end�remover8���� isinstance�update)�filenamerB���r]���Z_variable_rxZ_findvar1_rxZ_findvar2_rxZdoneZnotdone�f�lines�line�m�n�vZtmpvZ variablesZrenamed_variablesr>���r:���Zm1Zm2�found�itemZafter�kr���r���r ����_parse_makefile����s����� � � r|���c������������������C���sd���t�rtj�tptd�S�ttd�r0dttj f�}�nd}�ttj d�rP|�dtj j�7�}�tj�td�|�d�S�)z Return the path of the Makefile.ZMakefile�abiflagszconfig-%s%sZconfig� _multiarchz-%sr���) � _PYTHON_BUILDr"���r���r$���r-���r.����hasattrrO����_PY_VERSION_SHORTr}����implementationr~���r���)Zconfig_dir_namer���r���r ���r���W��s���� c���������������� ���C���s(���t�j�ddjtjtjttjdd�d��S�)NZ_PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}r~���rY���)ZabirP���Z multiarch) r"���r2���rN���r0���rO���r}���rP����getattrr����r���r���r���r ����_get_sysconfigdata_named��s������r����c��������������� ���C���s���ddl�}�i�}t��}zt||��W�nJ�tk rj�}�z,d|�}t|d�rR|d|j��}t|��W�5�d}~X�Y�nX�t��}z"t|��}t||��W�5�Q�R�X�W�nJ�tk r��}�z,d|�}t|d�r�|d|j��}t|��W�5�d}~X�Y�nX�t r�|d�|d<�t ��}dtjk�r$ddl }|�|�} || _| tj|<�d t��tf�} ttd ��rF| d7�} tj| dd ��tj�| |d��}t|ddd��(}|�d��|�d��|�j�||d��W�5�Q�R�X�tdddd��}|�| ��W�5�Q�R�X�dS�)z;Generate the Python module containing build-time variables.r���Nz.invalid Python installation: unable to open %s�strerrorz (%s)ZLDSHAREDZ BLDSHAREDrL���zbuild/lib.%s-%sZgettotalrefcountz-pydebugT)�exist_okz.py�w�utf8)�encodingzB# system configuration generated and used by the sysconfig module zbuild_time_vars = )�streamzpybuilddir.txt)�pprintr���r|���r���r����r����r���r_���r���r���r����rO���rP����types� ModuleType�build_time_vars�modulesr���r����r"����makedirsr���r$����write)r����rB���Zmakefile�e�msgZconfig_hrs���r>���r�����moduleZ pybuilddirZdestfiler���r���r ����_generate_posix_varsm��sL���� r����c�����������������C���s0���t���}t|t��t��dgd�}|j}|��|��dS�)z7Initialize the module as appropriate for POSIX systems.r����r���N)r����� __import__�globals�localsr����rq���)rB���r>���Z_tempr����r���r���r ����_init_posix���s����r����c�����������������C���sf���ddl�}td�|�d<�td�|�d<�td�|�d<�|���d�|�d <�d |�d<�t|�d<�tj�ttj ��|�d <�dS�)z+Initialize the module as appropriate for NTr���Nr���ZLIBDESTr���Z BINLIBDESTr���Z INCLUDEPY� EXT_SUFFIXz.exeZEXEZVERSIONZBINDIR) �_impr����extension_suffixes�_PY_VERSION_SHORT_NO_DOTr"���r����dirnamer!���rO���� executable)rB���r����r���r���r ����_init_non_posix���s����r����c����������� ������C���s����|dkri�}ddl�}|�d�}|�d�}|����}|s6q�|�|�}|r�|�dd�\}}z|tkrbt�t|�}W�n�tk r����Y�nX�|||<�q(|�|�}|r(d||�d�<�q(|S�)z�Parse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. Nr���z"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ rZ���r���)r]���r^����readlinerb���rc���re���rf���rg���) �fprB���r]���Z define_rxZundef_rxru���rv���rw���rx���r���r���r ���r������s,���� c������������������C���sB���t�r,tjdkr"tj�tptd�}�q4tp(t}�ntd�}�tj�|�d�S�)zReturn the path of pyconfig.h.r���ZPCr���z pyconfig-64.h)r���r"���r>���r���r$���r-���r.���r���)Zinc_dirr���r���r ���r������s���� c�������������������C���s���t�tt��S�)z,Return a tuple containing the schemes names.)rj����sortedr=���r���r���r���r ���r ������s����c�������������������C���s���t�S�)z*Return a tuple containing the paths names.)�_SCHEME_KEYSr���r���r���r ���r ������s����c�����������������C���s���|rt�|�|�S�t|��S�dS�)z�Return a mapping containing an install scheme. ``scheme`` is the install scheme name. If not provided, it will return the default scheme for the current platform. N)rD���r=���)rA���rB����expandr���r���r ���r ������s���� c�����������������C���s���t�|||�|��S�)z[Return a path corresponding to the scheme. ``scheme`` is the install scheme name. )r ���)r>���rA���rB���r����r���r���r ���r��� ��s����c������������������G���sx��t�dk�rFi�a�tt�d<�tt�d<�tt�d<�tt�d<�tt�d<�tt�d<�tt�d<�tt�d <�tt�d <�tt�d<�zt j t�d<�W�n�tk r����d t�d<�Y�nX�tj dkr�tt���tj dkr�tt���t��d�}|dk r�|t�d<�t��t�d<�t��dt�}tj dk�rt�rtj�t���}tj�||�}ntj�t���}t|�t�d<�t jdk�rFddl}|�t���|��rpg�}|�D�]}|�t��|����qT|S�t�S�dS�)an��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. N�prefix�exec_prefixZ py_versionZpy_version_shortZpy_version_nodotZinstalled_baserT���Zinstalled_platbaseZplatbaseZprojectbaser}���rY���r���r<���r�����SO�userbase�srcdirrL���r���)�_CONFIG_VARSr+����_EXEC_PREFIX�_PY_VERSIONr����r�����_BASE_PREFIX�_BASE_EXEC_PREFIXr.���rO���r}���r3���r"���r>���r����r����rN���rU���r���r���r����r���r$���r!���rP����_osx_supportZcustomize_config_vars�append)rG���r����r����rT���r����Zvalsr>���r���r���r ���r�����sP���� c�����������������C���s*���|�dkrddl�}|�dtd��t���|��S�)z�Return the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) r����r���Nz SO is deprecated, use EXT_SUFFIXr���)�warnings�warn�DeprecationWarningr���rN���)r>���r����r���r���r ���r���^��s����c������������ ������C���s���t�jdkrFdtj���krdS�dtj���kr.dS�dtj���kr@dS�tjS�t�jdksZtt�d �s`tjS�d t�jkrtt�jd �S�t����\}�}}}}|����� dd�}�|� d d�}|� dd�}|�dd��dkr�d|�|f�S�|�dd��dk�r,|d�dk�r�d}�dt |d��d�|dd��f�}ddd�}|d|tj��7�}n�|�dd��dk�rLd |�||f�S�|�dd!��d"k�r�d"}�ddl}|� d#�}|�|�}|�r�|���}n2|�dd!��d$k�r�ddl} | �t��|�||�\}�}}d%|�||f�S�)&a���Return 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; on Linux, the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. r���Zamd64z win-amd64z(arm)z win-arm32z(arm64)z win-arm64r<����unameZ_PYTHON_HOST_PLATFORM�/rY���� �_�-N����Zlinuxz%s-%sZsunosr����5Zsolarisz%d.%sr\���r���Z32bitZ64bit)i���l��������z.%sZaixz%s-%s.%s�����cygwinz[\d.]+rL���z%s-%s-%s)r"���r>���rO����version�lowerrP���r����r2���r����rd���rg����maxsizer]���r^���rb���rc���r����Zget_platform_osxr���) ZosnameZhost�releaser�����machineZbitnessr]���Zrel_rerv���r����r���r���r ���r���j��sT���� ��� c�������������������C���s���t�S�r���)r����r���r���r���r ���r������s����c�����������������C���sF���t�t|�����D�]0\}\}}|dkr0td|����td||f���qd�S�)Nr���z%s: z %s = "%s")� enumerater����r8����print)�titler����indexr9���r:���r���r���r ����_print_dict���s����r����c�������������������C���sf���dt�jkrt���dS�tdt�����tdt�����tdt�����t���tdt����t���tdt ����dS�)z*Display all information sysconfig detains.z--generate-posix-varsNzPlatform: "%s"zPython version: "%s"z!Current installation scheme: "%s"ZPathsZ Variables) rO����argvr����r����r���r���rE���r����r ���r���r���r���r���r ����_main���s���� r�����__main__)F)N)N)E�__doc__r"���rO���Zos.pathr���r����__all__re���r=���r����r�����splitr����rR���r����r����r���r@���r����r+����base_prefixr����r����r�����base_exec_prefixr����r����Z _USER_BASEr!���r����r����r.����getcwdr>���r�����endswithr$���r2���r'���r����r-���r,���r/���r���rA���r6���r;���rD���rE���rU���r|���r���r����r����r����r����r���r���r ���r ���r ���r���r���r���r���r���r����r�����__name__r���r���r���r ����<module>���s������� ��� � ��?� � ? "MP