view paint/pypi.py @ 40:06f21791eba1

add yet another indirection layer
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 30 Mar 2012 15:58:13 -0700
parents 59524b6d25c0
children
line wrap: on
line source

"""
functions for python package indices
"""

import os
import pkginfo

def pypi_path(path):
    """
    returns subpath 2-tuple appropriate for pypi path structure:
    http://k0s.org/portfolio/pypi.html
    """
    sdist = pkginfo.sdist.SDist(path)

    # determine the extension (XXX hacky)
    extensions = ('.tar.gz', '.zip', '.tar.bz2')
    for ext in extensions:
        if sdist.filename.endswith(ext):
            break
    else:
        raise Exception("Extension %s not found: %s" % (extensions, sdist.filename))

    # get the filename destination
    filename = '%s-%s%s' % (sdist.name, sdist.version, ext)
    return sdist.name, filename