File: //usr/local/lib/python3.10/dist-packages/pip/_internal/utils/__pycache__/glibc.cpython-310.pyc
o
��h� � @ sH d dl mZ d dlZd dlZddd�Zddd�Zdd d
�Zddd
�ZdS )� )�annotationsN�return�
str | Nonec C s t � pt� S )z9Returns glibc version string, or None if not using glibc.)�glibc_version_string_confstr�glibc_version_string_ctypes� r r �D/usr/local/lib/python3.10/dist-packages/pip/_internal/utils/glibc.py�glibc_version_string s r c
C sT t jdkrdS zt�d�} | du rW dS | �� \}}W |S tttfy) Y dS w )z@Primary implementation of glibc_version_string using os.confstr.�win32N�CS_GNU_LIBC_VERSION)�sys�platform�os�confstr�split�AttributeError�OSError�
ValueError)�gnu_libc_version�_�versionr r r r s
��r c C s� zddl } W n
ty Y dS w z| �d�}W n
ty" Y dS w z|j}W n
ty2 Y dS w | j|_|� }t|t �sD|�
d�}|S )z=Fallback implementation of glibc_version_string using ctypes.r N�ascii)�ctypes�ImportError�CDLLr �gnu_get_libc_versionr �c_char_p�restype�
isinstance�str�decode)r �process_namespacer �version_strr r r r s( ��
�
r �tuple[str, str]c C s t � } | du r dS d| fS )z�Try to determine the glibc version
Returns a tuple of strings (lib, version) which default to empty strings
in case the lookup fails.
N)� r$ �glibc)r )�
glibc_versionr r r �libc_ver\ s r'