| Server IP : 127.0.0.1 / Your IP : 216.73.216.109 Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10 System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64 User : SERVERWEB ( 0) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/cygwin64/lib/python3.9/site-packages/packaging/__pycache__/ |
Upload File : |
a
3p�a � @ st d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl m
Z
mZmZm
Z
mZ e
e eeedf d�dd�Ze
e e
e d�d d
�ZG dd� de�Zee
e d
�dd�Ze�� ee
e d�dd��Zeee d�dd�Zedk�rpddlZe�� Ze�d��sJ d��ede� edeej�� eddd� ee� dde�!d d!�d" ��D ]Z"ee"d#d� �q\dS )$z�PEP 656 support.
This module implements logic to detect if the currently running Python is
linked against musl, and what musl version is used.
� N)�IO�Iterator�
NamedTuple�Optional�Tuple.)�f�fmt�returnc C s t �|| �t �|���S �N)�struct�unpack�read�calcsize)r r � r �8/usr/lib/python3.9/site-packages/packaging/_musllinux.py�_read_unpacked s r )r r c C sh | � d� zt| d�}W n tjy. Y dS 0 |dd� td�krHdS | � t�d�d� zdd d
�|d \}}}W n ty� Y dS 0 tj|� }zt| |�\}}}}}}} W n tjy� Y dS 0 t | d �D ]�}
| � |||
� z|t| |��\}}}
W n tj�y Y dS 0 |dk�r,q�| � |� t
�| �|
���
d�}d
|v�r\ dS | S dS )z�Detect musl libc location by parsing the Python executable.
Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
r Z16BN� s ELFZHHI� )ZIIIIHHHZIIIIIIII)r r r )ZQQQIHHHZIIQQQQQQ)r � � )r r � � �musl)�seekr r �error�tupler �KeyError�operator�
itemgetter�range�os�fsdecoder
�strip)r �identZe_fmtZp_fmtZp_idxZp_get�_Ze_phoffZe_phentsizeZe_phnum�iZp_typeZp_offsetZp_fileszZinterpreterr r r �_parse_ld_musl_from_elf sF
��
r&