
    y/Yh                     p    d dl Z d dlZd dlmZmZ dee   fdZdee   fdZdee   fdZdeeef   fdZ	y)    N)OptionalTuplereturnc                  .    t               xs
 t               S )z9Returns glibc version string, or None if not using glibc.)glibc_version_string_confstrglibc_version_string_ctypes     Z/var/www/html/profi_bot/bot/venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.pyglibc_version_stringr      s    ')J-H-JJr
   c                      t         j                  dk(  ry	 t        j                  d      } | y| j	                         \  }}|S # t
        t        t        f$ r Y yw xY 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_versions      r   r   r      se     ||w::&;<#%++-
7 N GZ0 s   A A AAc                     	 ddl } 	 | j                  d      }	 |j                  }| j                  |_         |       }t        |t              s|j                  d      }|S # t        $ r Y yw xY w# t        $ r Y yw xY w# t
        $ r Y yw xY w)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_strs       r   r   r      s    ""KK-0EE $*?? +-Kk3'!((1G  $  
   s3   A  A/ A>  	A,+A,/	A;:A;>	B
	B
c                  $    t               } | yd| fS )zTry to determine the glibc version

    Returns a tuple of strings (lib, version) which default to empty strings
    in case the lookup fails.
    ) r)   glibc)r   )glibc_versions    r   libc_verr,   [   s      )*M''r
   )
r   r   typingr   r   r$   r   r   r   r,   r	   r
   r   <module>r.      sU    	 
 "Khsm K
hsm ((Xc] (x
(%S/ 
(r
   