B
    ãUvgJ  ã               @   sH   d dl mZ d dlZd dlZd dlZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )é    )Úabsolute_importNc              C   sP   t  d¡} y
| j}W n tk
r(   dS X t j|_|ƒ }t|tƒsL| d¡}|S )z9Returns glibc version string, or None if not using glibc.NÚascii)	ÚctypesÚCDLLÚgnu_get_libc_versionÚAttributeErrorÚc_char_pÚrestypeÚ
isinstanceÚstrÚdecode)Úprocess_namespacer   Úversion_str© r   ú8/tmp/pip-install-r_9ig3yj/setuptools/setuptools/glibc.pyÚglibc_version_string
   s    



r   c             C   sH   t  d| ¡}|s$t d|  t¡ dS t| d¡ƒ|koFt| d¡ƒ|kS )Nz$(?P<major>[0-9]+)\.(?P<minor>[0-9]+)z=Expected glibc version with 2 components major.minor, got: %sFÚmajorÚminor)ÚreÚmatchÚwarningsÚwarnÚRuntimeWarningÚintÚgroup)r   Úrequired_majorÚminimum_minorÚmr   r   r   Úcheck_glibc_version$   s    
r   c             C   s   t ƒ }|d krdS t|| |ƒS )NF)r   r   )r   r   r   r   r   r   Úhave_compatible_glibc4   s    r   c              C   s   t ƒ } | dkrdS d| fS dS )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_verL   s    r#   )	Ú
__future__r   r   r   r   r   r   r   r#   r   r   r   r   Ú<module>   s   