Viewing File: /opt/alt/python37/lib64/python3.7/ctypes/__pycache__/util.cpython-37.pyc

B

� f76�@sBddlZddlZddlZddlZejdkrDdd�Zdd�Zdd�Zn�ejd	krnejd
krnddl	m
Zdd�Zn�ej�d
�r�ddl
mZn�ejd	k�r&ddlZddlZdd�Zdd�Zejdkr�dd�Zndd�Zej�d�r�dd�Zdd�Zn8ejdk�rdd�Zd'dd�Zndd �Zd!d"�Zd#d�Zd$d%�Zed&k�r>e�dS)(�N�ntcCs�d}tj�|�}|dkrdS|t|�}tj|d��dd�\}}t|dd��d}|dkrf|d7}t|d	d
��d}|dkr�d}|dkr�||SdS)
z�Return the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.����N� �����
��g$@r)�sys�version�find�len�split�int)�prefix�i�s�restZmajorVersionZminorVersion�r�0/opt/alt/python37/lib64/python3.7/ctypes/util.py�_get_build_version	srcCs^t�}|dkrdS|dkr d}n|dkr6d|d}ndSddl}d|jjkrV|d	7}|d
S)z%Return the name of the VC runtime dllNr�msvcrtrzmsvcr%d�
rz_d.pyd�dz.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)rZclibname�	importlibrrr�find_msvcrt"srcCst|dkrt�Sx`tjd�tj�D]J}tj�||�}tj�|�rD|S|���	d�rTq"|d}tj�|�r"|Sq"WdS)N)�c�m�PATHz.dll)
r�os�environr�pathsep�path�join�isfile�lower�endswith)�nameZ	directoryZfnamerrr�find_library7sr,�posix�darwin)�	dyld_findc	CsLd|d|d||fg}x,|D]$}yt|�Stk
rBw Yq Xq WdS)Nzlib%s.dylibz%s.dylibz%s.framework/%s)�
_dyld_find�
ValueError)r+�possiblerrrr,Hs
�aix)r,c	Cs(d}t|d��}|�d�|kSQRXdS)z,Return True if the given file is an ELF filesELF�br�N)�open�read)�filenameZ
elf_headerZthefilerrr�_is_elf`sr9c
Cst�dt�|��}t�d�}|s,t�d�}|s4dSt��}z||dd|jd|g}t	tj
�}d|d<d|d	<ytj|tj
tj|d
�}Wntk
r�dSX|�|j��}WdQRXWdy|��Wntk
r�YnXXt�||�}|s�dSx |D]}	t|	��sq�t�|	�SWdS)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*ZgccZccz-Wl,-tz-oz-l�C�LC_ALL�LANG)�stdout�stderr�env)r#�fsencode�re�escape�shutil�which�tempfileZNamedTemporaryFiler+�dictr$�
subprocess�Popen�PIPEZSTDOUT�OSErrorr=r7�close�FileNotFoundError�findallr9�fsdecode)
r+�exprZ
c_compilerZtemp�argsr?�procZtrace�res�filerrr�_findLib_gccfs@




rTZsunos5c	Csz|sdSytjdd|ftjtjd�}Wntk
r:dSX|�|j��}WdQRXt�d|�}|sjdSt	�
|�d��S)Nz/usr/ccs/bin/dumpz-Lpv)r=r>s\[.*\]\sSONAME\s+([^\s]+)r)rGrHrI�DEVNULLrJr=r7rA�searchr#rN�group)�frQ�datarRrrr�_get_soname�srZc	Cs�|sdSt�d�}|sdSy"tj|ddd|ftjtjd�}Wntk
rPdSX|�|j��}WdQRXt	�
d|�}|s�dSt�|�
d��S)N�objdumpz-pz-jz.dynamic)r=r>s\sSONAME\s+([^\s]+)r)rCrDrGrHrIrUrJr=r7rArVr#rNrW)rXr[rQ�dumprRrrrrZ�s"
)ZfreebsdZopenbsdZ	dragonflycCsR|�d�}g}y"x|r,|�dt|����qWWntk
rDYnX|pPtjgS)N�.r)r�insertr�popr1r�maxsize)Zlibname�partsZnumsrrr�_num_version�s
rbc	Cs�t�|�}d||f}t�|�}ytjdtjtjd�}Wntk
rPd}YnX|�|j	�
�}WdQRXt�||�}|s�tt
|��S|jtd�t�|d�S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+))z/sbin/ldconfigz-r)r=r>�)�keyr)rArBr#r@rGrHrIrUrJr=r7rMrZrT�sortrbrN)r+ZenamerOrQrYrRrrrr,�s 


c		Cs�tj�d�sdSttj�}d|d<|r,d}nd}d}ytj|tjtj|d�}Wnt	k
rbdSX|�:x2|j
D](}|��}|�d�rrt�
|���d}qrWWdQRX|s�dSx4|�d	�D]&}tj�|d
|�}tj�|�r�|Sq�WdS)Nz
/usr/bin/crler:r;)z
/usr/bin/crlez-64)z
/usr/bin/crle)r=r>r?sDefault Library Path (ELF):r5�:zlib%s.so)r#r&�existsrFr$rGrHrIrUrJr=�strip�
startswithrNrr')	r+�is64r?rP�pathsrQ�line�dirZlibfilerrr�
_findLib_crle�s6

 rnFcCstt||�pt|��S)N)rZrnrT)r+rjrrrr,	sc	Cs�ddl}|�d�dkr&t��jd}nt��jd}dddddd	�}|�|d
�}d}t�|t�|�|f�}yZt	j
dd
gt	jt	jt	jddd�d��,}t�
||j���}|r�t�|�d��SWdQRXWntk
r�YnXdS)Nr�lr5z-32z-64zlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-pr:)r;r<)�stdinr>r=r?r)�structZcalcsizer#�uname�machine�getr@rArBrGrHrUrIrVr=r7rNrWrJ)r+rqrsZmach_mapZabi_typeZregex�prRrrr�_findSoname_ldconfigs.
rvcCs�dt�|�}ddg}tj�d�}|rHx |�d�D]}|�d|g�q2W|�dtjd|g�d}yXtj	|tj
tj
d	d
�}|��\}}t�|t�
|��}	x|	D]}
t|
�s�q�t�
|
�SWWntk
r�YnX|S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*Zldz-tZLD_LIBRARY_PATHrfz-Lz-oz-l%sT)r=r>Zuniversal_newlines)rArBr#r$rtr�extend�devnullrGrHrIZcommunicaterMrNr9�	Exception)r+rO�cmdZlibpathr�resultru�out�_rRrSrrr�_findLib_ld,s*

r~cCs t|�ptt|��ptt|��S)N)rvrZrTr~)r+rrrr,GscCs�ddlm}tjdkr:t|j�t|�d��ttd��tjdk�r�ttd��ttd��ttd��tj	d	kr�t|�
d
��t|�
d��t|�
d��t|�
d
���ntj	�d��r�ddlm}tj
dk�rtd|dtj����td|�
d����ttd��t|�
d��n*td|dtj����td|�
d����tdtd����td|�
td�����tdtd����td|�
td�����n(t|�
d��t|�
d��ttd��dS)Nr)�cdllrrr-r!r �bz2r.z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemr3)�CDLLlz"Using CDLL(name, os.RTLD_MEMBER): z
libc.a(shr.o)zUsing cdll.LoadLibrary(): Zrpmz	librpm.sozlibc.a(shr_64.o)z	crypt	:: Zcryptz
crypto	:: Zcryptozlibm.sozlibcrypt.so)Zctypesrr#r+�printr�loadr,r�platformZLoadLibraryrir�r`ZRTLD_MEMBER)rr�rrr�testOs<


r��__main__)F)r#rCrGrr+rrr,r�Zctypes.macholib.dyldr/r0riZctypes._aixrArEr9rTrZrbrnrvr~r��__name__rrrr�<module>s>


2


$(

Back to Directory File Manager