�
�fc @@ s d Z d d l m Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l
m Z d d l m
Z
e j d � Z d � Z d � Z d
� Z d � Z d � Z e e d
� Z d � Z d � Z d � Z d � Z d � Z d e d d d d � Z e � Z d S( s2 Generate and work with PEP 425 Compatibility Tags.i ( t absolute_importN( t OrderedDicti ( t glibcs (.+)_(\d+)_(\d+)_(.+)c C@ sE y t j | � SWn- t k
r@ } t j d j | � t � d SXd S( Ns {}( t sysconfigt get_config_vart IOErrort warningst warnt formatt RuntimeWarningt None( t vart e( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyR s
c C@ sU t t d � r d } n9 t j j d � r3 d } n t j d k rK d } n d } | S( s' Return abbreviated implementation name.t pypy_version_infot ppt javat jyt clit ipt cp( t hasattrt syst platformt
startswith( t pyimpl( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyt
get_abbr_impl s c C@ sD t d � } | s" t � d k r@ d j t t t � � � } n | S( s Return implementation version.t py_version_nodotR t ( R R t joint mapt strt get_impl_version_info( t impl_ver( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyt get_impl_ver( s c C@ sK t � d k r/ t j d t j j t j j f St j d t j d f Sd S( sQ Return sys.version_info-like tuple for use in decrementing the minor
version.R i i N( R R t version_infoR
t majort minor( ( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyR 0 s
c C@ s d j t � t � � S( s;
Returns the Tag for this specific implementation.
s {}{}( R R R! ( ( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyt get_impl_tag; s c C@ sN t | � } | d k rD | r= t j d j | � t d � n | � S| | k S( sg Use a fallback method for determining SOABI flags if the needed config
var is unset or unavailable.s? Config variable '{0}' is unset, Python ABI tag may be incorrecti N( R R
R R R R ( R t fallbackt expectedR t val( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyt get_flagB s c @ sm t d � } t � � | r
� d d h k r
t t d � r
d } d } d } t d d � d � d k �rv d } n t d
� f d � d � d k �r� d } n t d
d � d d d � d k o� t j d k �r� t j d k r� d } n d � t � | | | f } n\ | r<| j d � r<d | j d � d } n- | rc| j d d � j d d � } n d } | S( sX Return the ABI tag based on SOABI (if available) or emulate SOABI
(CPython 2, PyPy).t SOABIR R t
maxunicodeR t Py_DEBUGc S@ s
t t d � S( Nt gettotalrefcount( R R ( ( ( s9 /usr/lib/python2.7/site-packages/setuptools/pep425tags.pyt