()
return set(result)
Return (pyver, abi, arch) tuples compatible with this Python.
Return (pyver, abi, arch) tuples compatible with this Python.
Return ( pyver abi arch ) tuples compatible with this Python .
def compatible_tags():
    """
    Return (pyver, abi, arch) tuples compatible with this Python.
    """
    versions = [VER_SUFFIX]
    major = VER_SUFFIX[0]
    for minor in range(sys.version_info[1] - 1, - 1, -1):
        versions.append(''.join([major, str(minor)]))

    abis = []
    for suffix, _, _ in imp.get_suffixes():
        if suffix.startswith('.abi'):
            abis.append(suffix.split('.', 2)[1])
    abis.sort()
    if ABI != 'none':
        abis.insert(0, ABI)
    abis.append('none')
    result = []

    arches = [ARCH]
    if sys.platform == 'darwin':
        m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH)
        if m:
            name, major, minor, arch = m.groups()
            minor = int(minor)
            matches = [arch]
            if arch in ('i386', 'ppc'):
                matches.append('fat')
            if arch in ('i386', 'ppc', 'x86_64'):
                matches.append('fat3')
            if arch in ('ppc64', 'x86_64'):
                matches.append('fat64')
            if arch in ('i386', 'x86_64'):
                matches.append('intel')
            if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'):
                matches.append('universal')
            while minor >= 0:
                for match in matches:
                    s = '%s_%s_%s_%s' % (name, major, minor, match)
                    if s != ARCH:   # already there
                        arches.append(s)
                minor -= 1

    # Most specific - our Python version, ABI and arch
    for abi in abis:
        for arch in arches:
            result.append((''.join((IMP_PREFIX, versions[0])), abi, arch))

    # where no ABI / arch dependency, but IMP_PREFIX dependency
    for i, version in enumerate(versions):
        result.append((''.join((IMP_PREFIX, version)), 'none', 'any'))
        if i == 0:
            result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any'))

    # no IMP_PREFIX, ABI or arch dependency
    for i, version in enumerate(versions):
        result.append((''.join(('py', version)), 'none', 'any'))
        if i == 0:
            result.append((''.join(('py', version[0])), 'none', 'any'))
    return set(result)
def compatible_tags ( ) : versions = [ VER_SUFFIX ] major = VER_SUFFIX [ 0 ] for minor in range ( sys . version_info [ 1 ] - 1 , - 1 , - 1 ) : versions . append ( '' . join ( [ major , str ( minor ) ] ) ) abis = [ ] for suffix , _ , _ in imp . get_suffixes ( ) : if suffix . startswith ( '.abi' ) : abis . append ( suffix . split ( '.' , 2 ) [ 1 ] ) abis . sort ( ) if ABI != 'none' : abis . insert ( 0 , ABI ) abis . append ( 'none' ) result = [ ] arches = [ ARCH ] if sys . platform == 'darwin' : m = re . match ( r'(\w+)_(\d+)_(\d+)_(\w+)$' , ARCH ) if m : name , major , minor , arch = m . groups ( ) minor = int ( minor ) matches = [ arch ] if arch in ( 'i386' , 'ppc' ) : matches . append ( 'fat' ) if arch in ( 'i386' , 'ppc' , 'x86_64' ) : matches . append ( 'fat3' ) if arch in ( 'ppc64' , 'x86_64' ) : matches . append ( 'fat64' ) if arch in ( 'i386' , 'x86_64' ) : matches . append ( 'intel' ) if arch in ( 'i386' , 'x86_64' , 'intel' , 'ppc' , 'ppc64' ) : matches . append ( 'universal' ) while minor >= 0 : for match in matches : s = '%s_%s_%s_%s' % ( name , major , minor , match ) if s != ARCH : # already there arches . append ( s ) minor -= 1 # Most specific - our Python version, ABI and arch for abi in abis : for arch in arches : result . append ( ( '' . join ( ( IMP_PREFIX , versions [ 0 ] ) ) , abi , arch ) ) # where no ABI / arch dependency, but IMP_PREFIX dependency for i , version in enumerate ( versions ) : result . append ( ( '' . join ( ( IMP_PREFIX , version ) ) , 'none' , 'any' ) ) if i == 0 : result . append ( ( '' . join ( ( IMP_PREFIX , version [ 0 ] ) ) , 'none' , 'any' ) ) # no IMP_PREFIX, ABI or arch dependency for i , version in enumerate ( versions ) : result . append ( ( '' . join ( ( 'py' , version ) ) , 'none' , 'any' ) ) if i == 0 : result . append ( ( '' . join ( ( 'py' , version [ 0 ] ) ) , 'none' , 'any' ) ) return set ( result )