Advanced Web Server Manager
Complete File Manager & Terminal - Standalone Version
By Sid Gifari | Gifari Industries
Current path:
/
/
usr
/
local
/
lib
/
python3.6
/
site-packages
/
setuptools
/
_vendor
/
packaging
/
__pycache__
✏️
Editing: _musllinux.cpython-36.pyc
3 ���e � @ sx 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�Zej� ee e d�dd��Zeee d�dd�Zedk�rtddlZej� Zejd��std��ede� edeej �� eddd� x4eej!ddej"d d!�d# ��D ]Z#ee#d"d� �q^W 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 j|| jt j|���S )N)�struct�unpack�read�calcsize)r r � r �M/tmp/pip-build-vlmub77e/setuptools/setuptools/_vendor/packaging/_musllinux.py�_read_unpacked s r )r r c $ C sd | j d� yt| d�}W n tjk r. dS X |dd� td�krHdS | j tjd�d� yddd�|d \}}}W n tk r� dS X tj|� }yt| |�\}}}}}}} W n tjk r� dS X x�t | d �D ]�} | j ||| � y|t| |��\}}} W n tjk �r dS X |dk�r,q�| j |� t j| j| ��j d�}d|k�rZdS |S W 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� �IIIIHHH�IIIIIIII�QQQIHHH�IIQQQQQQ� � )r r � � �musl�r r r )r r r �r r r )r r r )�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 sB r+ c @ s e Zd ZU eedS )�_MuslVersionN)�__name__� __module__�__qualname__�int�major�minorr r r r r, G s r, )�outputr c C sx dd� dd� | j � D �D �}t|�dk s<|d d d� dkr@d S tjd |d �}|sXd S tt|jd ��t|jd��d�S )Nc S s g | ]}|r|�qS r r )�.0�nr r r � <listcomp>M s z'_parse_musl_version.<locals>.<listcomp>c s s | ]}|j � V qd S )N)r'