3 ÝPf{ ã@sPddlmZddlZddlZddlZddlZdd„Zdd„Zdd„Zd d „Z dS) é)Úabsolute_importNc CsPtjdƒ}y |j}Wntk r(dSXtj|_|ƒ}t|tƒsL|jdƒ}|S)z9Returns glibc version string, or None if not using glibc.NÚascii) ÚctypesZCDLLÚgnu_get_libc_versionÚAttributeErrorZc_char_pZrestypeÚ isinstanceÚstrÚdecode)Zprocess_namespacerÚ version_str©r ú/usr/lib/python3.6/glibc.pyÚglibc_version_string s    r cCsHtjd|ƒ}|s$tjd|tƒdSt|jdƒƒ|koFt|jdƒƒ|kS)Nz$(?P[0-9]+)\.(?P[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  rcCstƒ}|dkrdSt|||ƒS)NF)r r)rrr r r r Úhave_compatible_glibc3srcCs"tƒ}|dkrtjƒSd|fSdS)NZglibc)r ÚplatformÚlibc_ver)Z glibc_versionr r r rKsr) Z __future__rrrrrr rrrr r r r Ús