def test_generate_eq(): specs = ['anaconda'] dists, specs = r.get_dists(specs) groups, trackers = build_groups(dists) C = r.gen_clauses(groups, trackers, specs) eq = r.generate_version_metric(C, groups, specs) # Should satisfy the following criteria: # - lower versions of the same package should should have higher # coefficients. # - the same versions of the same package (e.g., different build strings) # should have the same coefficients. # - a package that only has one version should not appear, unless # include=True as it will have a 0 coefficient. The same is true of the # latest version of a package. assert eq == { 'astropy-0.2-np15py26_0.tar.bz2': 1, 'astropy-0.2-np16py26_0.tar.bz2': 1, 'astropy-0.2-np17py26_0.tar.bz2': 1, 'astropy-0.2-np17py33_0.tar.bz2': 1, 'bitarray-0.8.0-py26_0.tar.bz2': 1, 'bitarray-0.8.0-py33_0.tar.bz2': 1, 'cython-0.18-py26_0.tar.bz2': 1, 'cython-0.18-py33_0.tar.bz2': 1, 'dateutil-2.1-py26_0.tar.bz2': 1, 'dateutil-2.1-py33_0.tar.bz2': 1, 'distribute-0.6.34-py26_1.tar.bz2': 1, 'distribute-0.6.34-py33_1.tar.bz2': 1, 'ipython-0.13.1-py26_1.tar.bz2': 1, 'ipython-0.13.1-py33_1.tar.bz2': 1, 'llvmpy-0.11.1-py26_0.tar.bz2': 1, 'llvmpy-0.11.1-py33_0.tar.bz2': 1, 'lxml-3.0.2-py26_0.tar.bz2': 1, 'lxml-3.0.2-py33_0.tar.bz2': 1, 'matplotlib-1.2.0-np15py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np16py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np17py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np17py33_1.tar.bz2': 1, 'nose-1.2.1-py26_0.tar.bz2': 1, 'nose-1.2.1-py33_0.tar.bz2': 1, 'numpy-1.5.1-py26_3.tar.bz2': 4, 'numpy-1.6.2-py26_3.tar.bz2': 3, 'numpy-1.6.2-py26_4.tar.bz2': 2, 'numpy-1.6.2-py27_4.tar.bz2': 2, 'numpy-1.7.0-py26_0.tar.bz2': 1, 'numpy-1.7.0-py33_0.tar.bz2': 1, 'pip-1.2.1-py26_1.tar.bz2': 1, 'pip-1.2.1-py33_1.tar.bz2': 1, 'psutil-0.6.1-py26_0.tar.bz2': 1, 'psutil-0.6.1-py33_0.tar.bz2': 1, 'pyflakes-0.6.1-py26_0.tar.bz2': 1, 'pyflakes-0.6.1-py33_0.tar.bz2': 1, 'python-2.6.8-6.tar.bz2': 3, 'python-2.7.4-0.tar.bz2': 2, 'python-3.3.0-4.tar.bz2': 1, 'pytz-2012j-py26_0.tar.bz2': 1, 'pytz-2012j-py33_0.tar.bz2': 1, 'pyzmq-2.2.0.1-py26_0.tar.bz2': 1, 'pyzmq-2.2.0.1-py33_0.tar.bz2': 1, 'requests-0.13.9-py26_0.tar.bz2': 1, 'requests-0.13.9-py33_0.tar.bz2': 1, 'scipy-0.11.0-np15py26_3.tar.bz2': 1, 'scipy-0.11.0-np16py26_3.tar.bz2': 1, 'scipy-0.11.0-np17py26_3.tar.bz2': 1, 'scipy-0.11.0-np17py33_3.tar.bz2': 1, 'six-1.2.0-py26_0.tar.bz2': 1, 'six-1.2.0-py33_0.tar.bz2': 1, 'sphinx-1.1.3-py26_2.tar.bz2': 1, 'sphinx-1.1.3-py33_2.tar.bz2': 1, 'sqlalchemy-0.7.8-py26_0.tar.bz2': 1, 'sqlalchemy-0.7.8-py33_0.tar.bz2': 1, 'system-5.8-0.tar.bz2': 1, 'tornado-2.4.1-py26_0.tar.bz2': 1, 'tornado-2.4.1-py33_0.tar.bz2': 1, 'xlrd-0.9.0-py26_0.tar.bz2': 1, 'xlrd-0.9.0-py33_0.tar.bz2': 1, 'zeromq-2.2.0-0.tar.bz2': 1}
def test_generate_eq(): specs = ['anaconda'] dists, specs = r.get_dists(specs) groups = build_groups(dists) m, v, w = r.build_vw(groups) eq = r.generate_version_eq(v, groups, specs, include0=True) e = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) # Should satisfy the following criteria: # - lower versions of the same package should should have higher # coefficients. # - the same versions of the same package (e.g., different build strings) # should have the same coefficients. # - a package that only has one version should not appear, unless # include=True as it will have a 0 coefficient. The same is true of the # latest version of a package. assert e == [(1, u'anaconda-1.4.0-np15py26_0.tar.bz2'), (1, u'anaconda-1.4.0-np15py27_0.tar.bz2'), (1, u'anaconda-1.4.0-np16py26_0.tar.bz2'), (1, u'anaconda-1.4.0-np16py27_0.tar.bz2'), (1, u'anaconda-1.4.0-np17py26_0.tar.bz2'), (1, u'anaconda-1.4.0-np17py27_0.tar.bz2'), (1, u'anaconda-1.4.0-np17py33_0.tar.bz2'), (0, u'anaconda-1.5.0-np16py26_0.tar.bz2'), (0, u'anaconda-1.5.0-np16py27_0.tar.bz2'), (0, u'anaconda-1.5.0-np17py26_0.tar.bz2'), (0, u'anaconda-1.5.0-np17py27_0.tar.bz2'), (0, u'anaconda-1.5.0-np17py33_0.tar.bz2'), (1, u'astropy-0.2-np15py26_0.tar.bz2'), (1, u'astropy-0.2-np15py27_0.tar.bz2'), (1, u'astropy-0.2-np16py26_0.tar.bz2'), (1, u'astropy-0.2-np16py27_0.tar.bz2'), (1, u'astropy-0.2-np17py26_0.tar.bz2'), (1, u'astropy-0.2-np17py27_0.tar.bz2'), (1, u'astropy-0.2-np17py33_0.tar.bz2'), (0, u'astropy-0.2.1-np16py26_0.tar.bz2'), (0, u'astropy-0.2.1-np16py27_0.tar.bz2'), (0, u'astropy-0.2.1-np17py26_0.tar.bz2'), (0, u'astropy-0.2.1-np17py27_0.tar.bz2'), (0, u'astropy-0.2.1-np17py33_0.tar.bz2'), (1, u'bitarray-0.8.0-py26_0.tar.bz2'), (1, u'bitarray-0.8.0-py27_0.tar.bz2'), (1, u'bitarray-0.8.0-py33_0.tar.bz2'), (0, u'bitarray-0.8.1-py26_0.tar.bz2'), (0, u'bitarray-0.8.1-py27_0.tar.bz2'), (0, u'bitarray-0.8.1-py33_0.tar.bz2'), (1, u'cython-0.18-py26_0.tar.bz2'), (1, u'cython-0.18-py27_0.tar.bz2'), (1, u'cython-0.18-py33_0.tar.bz2'), (0, u'cython-0.19-py26_0.tar.bz2'), (0, u'cython-0.19-py27_0.tar.bz2'), (0, u'cython-0.19-py33_0.tar.bz2'), (1, u'dateutil-2.1-py26_0.tar.bz2'), (0, u'dateutil-2.1-py26_1.tar.bz2'), (1, u'dateutil-2.1-py27_0.tar.bz2'), (0, u'dateutil-2.1-py27_1.tar.bz2'), (1, u'dateutil-2.1-py33_0.tar.bz2'), (0, u'dateutil-2.1-py33_1.tar.bz2'), (1, u'distribute-0.6.34-py26_1.tar.bz2'), (1, u'distribute-0.6.34-py27_1.tar.bz2'), (1, u'distribute-0.6.34-py33_1.tar.bz2'), (0, u'distribute-0.6.36-py26_1.tar.bz2'), (0, u'distribute-0.6.36-py27_1.tar.bz2'), (0, u'distribute-0.6.36-py33_1.tar.bz2'), (0, u'docutils-0.10-py26_0.tar.bz2'), (0, u'docutils-0.10-py27_0.tar.bz2'), (0, u'docutils-0.10-py33_0.tar.bz2'), (0, u'freetype-2.4.10-0.tar.bz2'), (0, u'greenlet-0.4.0-py26_0.tar.bz2'), (0, u'greenlet-0.4.0-py27_0.tar.bz2'), (0, u'greenlet-0.4.0-py33_0.tar.bz2'), (1, u'ipython-0.13.1-py26_1.tar.bz2'), (1, u'ipython-0.13.1-py27_1.tar.bz2'), (1, u'ipython-0.13.1-py33_1.tar.bz2'), (0, u'ipython-0.13.2-py26_0.tar.bz2'), (0, u'ipython-0.13.2-py27_0.tar.bz2'), (0, u'ipython-0.13.2-py33_0.tar.bz2'), (0, u'jinja2-2.6-py26_0.tar.bz2'), (0, u'jinja2-2.6-py27_0.tar.bz2'), (0, u'jinja2-2.6-py33_0.tar.bz2'), (0, u'libpng-1.5.13-1.tar.bz2'), (0, u'libxml2-2.9.0-0.tar.bz2'), (0, u'libxslt-1.1.28-0.tar.bz2'), (0, u'llvm-3.2-0.tar.bz2'), (1, u'llvmpy-0.11.1-py26_0.tar.bz2'), (1, u'llvmpy-0.11.1-py27_0.tar.bz2'), (1, u'llvmpy-0.11.1-py33_0.tar.bz2'), (0, u'llvmpy-0.11.2-py26_0.tar.bz2'), (0, u'llvmpy-0.11.2-py27_0.tar.bz2'), (0, u'llvmpy-0.11.2-py33_0.tar.bz2'), (1, u'lxml-3.0.2-py26_0.tar.bz2'), (1, u'lxml-3.0.2-py27_0.tar.bz2'), (1, u'lxml-3.0.2-py33_0.tar.bz2'), (0, u'lxml-3.2.0-py26_0.tar.bz2'), (0, u'lxml-3.2.0-py27_0.tar.bz2'), (0, u'lxml-3.2.0-py33_0.tar.bz2'), (1, u'matplotlib-1.2.0-np15py26_1.tar.bz2'), (1, u'matplotlib-1.2.0-np15py27_1.tar.bz2'), (1, u'matplotlib-1.2.0-np16py26_1.tar.bz2'), (1, u'matplotlib-1.2.0-np16py27_1.tar.bz2'), (1, u'matplotlib-1.2.0-np17py26_1.tar.bz2'), (1, u'matplotlib-1.2.0-np17py27_1.tar.bz2'), (1, u'matplotlib-1.2.0-np17py33_1.tar.bz2'), (0, u'matplotlib-1.2.1-np16py26_1.tar.bz2'), (0, u'matplotlib-1.2.1-np16py27_1.tar.bz2'), (0, u'matplotlib-1.2.1-np17py26_1.tar.bz2'), (0, u'matplotlib-1.2.1-np17py27_1.tar.bz2'), (0, u'matplotlib-1.2.1-np17py33_1.tar.bz2'), (0, u'mdp-3.3-np15py26_0.tar.bz2'), (0, u'mdp-3.3-np15py27_0.tar.bz2'), (0, u'mdp-3.3-np16py26_0.tar.bz2'), (0, u'mdp-3.3-np16py27_0.tar.bz2'), (0, u'mdp-3.3-np17py26_0.tar.bz2'), (0, u'mdp-3.3-np17py27_0.tar.bz2'), (0, u'mdp-3.3-np17py33_0.tar.bz2'), (0, u'networkx-1.7-py26_0.tar.bz2'), (0, u'networkx-1.7-py27_0.tar.bz2'), (0, u'networkx-1.7-py33_0.tar.bz2'), (1, u'nose-1.2.1-py26_0.tar.bz2'), (1, u'nose-1.2.1-py27_0.tar.bz2'), (1, u'nose-1.2.1-py33_0.tar.bz2'), (0, u'nose-1.3.0-py26_0.tar.bz2'), (0, u'nose-1.3.0-py27_0.tar.bz2'), (0, u'nose-1.3.0-py33_0.tar.bz2'), (4, u'numpy-1.5.1-py26_3.tar.bz2'), (4, u'numpy-1.5.1-py27_3.tar.bz2'), (3, u'numpy-1.6.2-py26_3.tar.bz2'), (2, u'numpy-1.6.2-py26_4.tar.bz2'), (3, u'numpy-1.6.2-py27_3.tar.bz2'), (2, u'numpy-1.6.2-py27_4.tar.bz2'), (1, u'numpy-1.7.0-py26_0.tar.bz2'), (1, u'numpy-1.7.0-py27_0.tar.bz2'), (1, u'numpy-1.7.0-py33_0.tar.bz2'), (0, u'numpy-1.7.1-py26_0.tar.bz2'), (0, u'numpy-1.7.1-py27_0.tar.bz2'), (0, u'numpy-1.7.1-py33_0.tar.bz2'), (0, u'openssl-1.0.1c-0.tar.bz2'), (1, u'pip-1.2.1-py26_1.tar.bz2'), (1, u'pip-1.2.1-py27_1.tar.bz2'), (1, u'pip-1.2.1-py33_1.tar.bz2'), (0, u'pip-1.3.1-py26_1.tar.bz2'), (0, u'pip-1.3.1-py27_1.tar.bz2'), (0, u'pip-1.3.1-py33_1.tar.bz2'), (0, u'ply-3.4-py26_0.tar.bz2'), (0, u'ply-3.4-py27_0.tar.bz2'), (0, u'ply-3.4-py33_0.tar.bz2'), (1, u'psutil-0.6.1-py26_0.tar.bz2'), (1, u'psutil-0.6.1-py27_0.tar.bz2'), (1, u'psutil-0.6.1-py33_0.tar.bz2'), (0, u'psutil-0.7.1-py26_0.tar.bz2'), (0, u'psutil-0.7.1-py27_0.tar.bz2'), (0, u'psutil-0.7.1-py33_0.tar.bz2'), (0, u'pycparser-2.9.1-py26_0.tar.bz2'), (0, u'pycparser-2.9.1-py27_0.tar.bz2'), (0, u'pycparser-2.9.1-py33_0.tar.bz2'), (0, u'pycrypto-2.6-py26_0.tar.bz2'), (0, u'pycrypto-2.6-py27_0.tar.bz2'), (0, u'pycrypto-2.6-py33_0.tar.bz2'), (1, u'pyflakes-0.6.1-py26_0.tar.bz2'), (1, u'pyflakes-0.6.1-py27_0.tar.bz2'), (1, u'pyflakes-0.6.1-py33_0.tar.bz2'), (0, u'pyflakes-0.7.2-py26_0.tar.bz2'), (0, u'pyflakes-0.7.2-py27_0.tar.bz2'), (0, u'pyflakes-0.7.2-py33_0.tar.bz2'), (0, u'pygments-1.6-py26_0.tar.bz2'), (0, u'pygments-1.6-py27_0.tar.bz2'), (0, u'pygments-1.6-py33_0.tar.bz2'), (4, u'python-2.6.8-6.tar.bz2'), (3, u'python-2.7.3-7.tar.bz2'), (2, u'python-2.7.4-0.tar.bz2'), (1, u'python-3.3.0-4.tar.bz2'), (0, u'python-3.3.1-0.tar.bz2'), (1, u'pytz-2012j-py26_0.tar.bz2'), (1, u'pytz-2012j-py27_0.tar.bz2'), (1, u'pytz-2012j-py33_0.tar.bz2'), (0, u'pytz-2013b-py26_0.tar.bz2'), (0, u'pytz-2013b-py27_0.tar.bz2'), (0, u'pytz-2013b-py33_0.tar.bz2'), (0, u'pyyaml-3.10-py26_0.tar.bz2'), (0, u'pyyaml-3.10-py27_0.tar.bz2'), (0, u'pyyaml-3.10-py33_0.tar.bz2'), (1, u'pyzmq-2.2.0.1-py26_0.tar.bz2'), (0, u'pyzmq-2.2.0.1-py26_1.tar.bz2'), (1, u'pyzmq-2.2.0.1-py27_0.tar.bz2'), (0, u'pyzmq-2.2.0.1-py27_1.tar.bz2'), (1, u'pyzmq-2.2.0.1-py33_0.tar.bz2'), (0, u'pyzmq-2.2.0.1-py33_1.tar.bz2'), (0, u'readline-6.2-0.tar.bz2'), (1, u'requests-0.13.9-py26_0.tar.bz2'), (1, u'requests-0.13.9-py27_0.tar.bz2'), (1, u'requests-0.13.9-py33_0.tar.bz2'), (0, u'requests-1.2.0-py26_0.tar.bz2'), (0, u'requests-1.2.0-py27_0.tar.bz2'), (0, u'requests-1.2.0-py33_0.tar.bz2'), (1, u'scipy-0.11.0-np15py26_3.tar.bz2'), (1, u'scipy-0.11.0-np15py27_3.tar.bz2'), (1, u'scipy-0.11.0-np16py26_3.tar.bz2'), (1, u'scipy-0.11.0-np16py27_3.tar.bz2'), (1, u'scipy-0.11.0-np17py26_3.tar.bz2'), (1, u'scipy-0.11.0-np17py27_3.tar.bz2'), (1, u'scipy-0.11.0-np17py33_3.tar.bz2'), (0, u'scipy-0.12.0-np16py26_0.tar.bz2'), (0, u'scipy-0.12.0-np16py27_0.tar.bz2'), (0, u'scipy-0.12.0-np17py26_0.tar.bz2'), (0, u'scipy-0.12.0-np17py27_0.tar.bz2'), (0, u'scipy-0.12.0-np17py33_0.tar.bz2'), (1, u'six-1.2.0-py26_0.tar.bz2'), (1, u'six-1.2.0-py27_0.tar.bz2'), (1, u'six-1.2.0-py33_0.tar.bz2'), (0, u'six-1.3.0-py26_0.tar.bz2'), (0, u'six-1.3.0-py27_0.tar.bz2'), (0, u'six-1.3.0-py33_0.tar.bz2'), (1, u'sphinx-1.1.3-py26_2.tar.bz2'), (0, u'sphinx-1.1.3-py26_3.tar.bz2'), (1, u'sphinx-1.1.3-py27_2.tar.bz2'), (0, u'sphinx-1.1.3-py27_3.tar.bz2'), (1, u'sphinx-1.1.3-py33_2.tar.bz2'), (0, u'sphinx-1.1.3-py33_3.tar.bz2'), (1, u'sqlalchemy-0.7.8-py26_0.tar.bz2'), (1, u'sqlalchemy-0.7.8-py27_0.tar.bz2'), (1, u'sqlalchemy-0.7.8-py33_0.tar.bz2'), (0, u'sqlalchemy-0.8.1-py26_0.tar.bz2'), (0, u'sqlalchemy-0.8.1-py27_0.tar.bz2'), (0, u'sqlalchemy-0.8.1-py33_0.tar.bz2'), (0, u'sqlite-3.7.13-0.tar.bz2'), (1, u'system-5.8-0.tar.bz2'), (0, u'system-5.8-1.tar.bz2'), (0, u'tk-8.5.13-0.tar.bz2'), (1, u'tornado-2.4.1-py26_0.tar.bz2'), (1, u'tornado-2.4.1-py27_0.tar.bz2'), (1, u'tornado-2.4.1-py33_0.tar.bz2'), (0, u'tornado-3.0.1-py26_0.tar.bz2'), (0, u'tornado-3.0.1-py27_0.tar.bz2'), (0, u'tornado-3.0.1-py33_0.tar.bz2'), (0, u'util-linux-2.21-0.tar.bz2'), (1, u'xlrd-0.9.0-py26_0.tar.bz2'), (1, u'xlrd-0.9.0-py27_0.tar.bz2'), (1, u'xlrd-0.9.0-py33_0.tar.bz2'), (0, u'xlrd-0.9.2-py26_0.tar.bz2'), (0, u'xlrd-0.9.2-py27_0.tar.bz2'), (0, u'xlrd-0.9.2-py33_0.tar.bz2'), (0, u'yaml-0.1.4-0.tar.bz2'), (1, u'zeromq-2.2.0-0.tar.bz2'), (0, u'zeromq-2.2.0-1.tar.bz2'), (0, u'zlib-1.2.7-0.tar.bz2')] eq = r.generate_version_eq(v, groups, specs) e2 = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) assert e2 == [q for q in e if q[0] > 0]
def test_generate_eq(): specs = ['anaconda'] dists, specs = r.get_dists(specs) groups, trackers = build_groups(dists) C = r.gen_clauses(groups, trackers, specs) eqv, eqb = r.generate_version_metrics(C, groups, specs) # Should satisfy the following criteria: # - lower versions of the same package should should have higher # coefficients. # - the same versions of the same package (e.g., different build strings) # should have the same coefficients. # - a package that only has one version should not appear, unless # include=True as it will have a 0 coefficient. The same is true of the # latest version of a package. assert eqv == { 'astropy-0.2-np15py26_0.tar.bz2': 1, 'astropy-0.2-np16py26_0.tar.bz2': 1, 'astropy-0.2-np17py26_0.tar.bz2': 1, 'astropy-0.2-np17py33_0.tar.bz2': 1, 'bitarray-0.8.0-py26_0.tar.bz2': 1, 'bitarray-0.8.0-py33_0.tar.bz2': 1, 'cython-0.18-py26_0.tar.bz2': 1, 'cython-0.18-py33_0.tar.bz2': 1, 'distribute-0.6.34-py26_1.tar.bz2': 1, 'distribute-0.6.34-py33_1.tar.bz2': 1, 'ipython-0.13.1-py26_1.tar.bz2': 1, 'ipython-0.13.1-py33_1.tar.bz2': 1, 'llvmpy-0.11.1-py26_0.tar.bz2': 1, 'llvmpy-0.11.1-py33_0.tar.bz2': 1, 'lxml-3.0.2-py26_0.tar.bz2': 1, 'lxml-3.0.2-py33_0.tar.bz2': 1, 'matplotlib-1.2.0-np15py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np16py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np17py26_1.tar.bz2': 1, 'matplotlib-1.2.0-np17py33_1.tar.bz2': 1, 'nose-1.2.1-py26_0.tar.bz2': 1, 'nose-1.2.1-py33_0.tar.bz2': 1, 'numpy-1.5.1-py26_3.tar.bz2': 3, 'numpy-1.6.2-py26_3.tar.bz2': 2, 'numpy-1.6.2-py26_4.tar.bz2': 2, 'numpy-1.6.2-py27_4.tar.bz2': 2, 'numpy-1.7.0-py26_0.tar.bz2': 1, 'numpy-1.7.0-py33_0.tar.bz2': 1, 'pip-1.2.1-py26_1.tar.bz2': 1, 'pip-1.2.1-py33_1.tar.bz2': 1, 'psutil-0.6.1-py26_0.tar.bz2': 1, 'psutil-0.6.1-py33_0.tar.bz2': 1, 'pyflakes-0.6.1-py26_0.tar.bz2': 1, 'pyflakes-0.6.1-py33_0.tar.bz2': 1, 'python-2.6.8-6.tar.bz2': 3, 'python-2.7.4-0.tar.bz2': 2, 'python-3.3.0-4.tar.bz2': 1, 'pytz-2012j-py26_0.tar.bz2': 1, 'pytz-2012j-py33_0.tar.bz2': 1, 'requests-0.13.9-py26_0.tar.bz2': 1, 'requests-0.13.9-py33_0.tar.bz2': 1, 'scipy-0.11.0-np15py26_3.tar.bz2': 1, 'scipy-0.11.0-np16py26_3.tar.bz2': 1, 'scipy-0.11.0-np17py26_3.tar.bz2': 1, 'scipy-0.11.0-np17py33_3.tar.bz2': 1, 'six-1.2.0-py26_0.tar.bz2': 1, 'six-1.2.0-py33_0.tar.bz2': 1, 'sqlalchemy-0.7.8-py26_0.tar.bz2': 1, 'sqlalchemy-0.7.8-py33_0.tar.bz2': 1, 'tornado-2.4.1-py26_0.tar.bz2': 1, 'tornado-2.4.1-py33_0.tar.bz2': 1, 'xlrd-0.9.0-py26_0.tar.bz2': 1, 'xlrd-0.9.0-py33_0.tar.bz2': 1 } assert eqb == { 'dateutil-2.1-py26_0.tar.bz2': 1, 'dateutil-2.1-py33_0.tar.bz2': 1, 'numpy-1.6.2-py26_3.tar.bz2': 1, 'pyzmq-2.2.0.1-py26_0.tar.bz2': 1, 'pyzmq-2.2.0.1-py33_0.tar.bz2': 1, 'sphinx-1.1.3-py26_2.tar.bz2': 1, 'sphinx-1.1.3-py33_2.tar.bz2': 1, 'system-5.8-0.tar.bz2': 1, 'zeromq-2.2.0-0.tar.bz2': 1 }
def test_generate_eq(): specs = ["anaconda"] dists, specs = r.get_dists(specs) groups = build_groups(dists) m, v, w = r.build_vw(groups) eq = r.generate_version_eq(v, groups, specs, include0=True) e = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) # Should satisfy the following criteria: # - lower versions of the same package should should have higher # coefficients. # - the same versions of the same package (e.g., different build strings) # should have the same coefficients. # - a package that only has one version should not appear, unless # include=True as it will have a 0 coefficient. The same is true of the # latest version of a package. assert e == [ (1, u"anaconda-1.4.0-np15py26_0.tar.bz2"), (1, u"anaconda-1.4.0-np15py27_0.tar.bz2"), (1, u"anaconda-1.4.0-np16py26_0.tar.bz2"), (1, u"anaconda-1.4.0-np16py27_0.tar.bz2"), (1, u"anaconda-1.4.0-np17py26_0.tar.bz2"), (1, u"anaconda-1.4.0-np17py27_0.tar.bz2"), (1, u"anaconda-1.4.0-np17py33_0.tar.bz2"), (0, u"anaconda-1.5.0-np16py26_0.tar.bz2"), (0, u"anaconda-1.5.0-np16py27_0.tar.bz2"), (0, u"anaconda-1.5.0-np17py26_0.tar.bz2"), (0, u"anaconda-1.5.0-np17py27_0.tar.bz2"), (0, u"anaconda-1.5.0-np17py33_0.tar.bz2"), (1, u"astropy-0.2-np15py26_0.tar.bz2"), (1, u"astropy-0.2-np15py27_0.tar.bz2"), (1, u"astropy-0.2-np16py26_0.tar.bz2"), (1, u"astropy-0.2-np16py27_0.tar.bz2"), (1, u"astropy-0.2-np17py26_0.tar.bz2"), (1, u"astropy-0.2-np17py27_0.tar.bz2"), (1, u"astropy-0.2-np17py33_0.tar.bz2"), (0, u"astropy-0.2.1-np16py26_0.tar.bz2"), (0, u"astropy-0.2.1-np16py27_0.tar.bz2"), (0, u"astropy-0.2.1-np17py26_0.tar.bz2"), (0, u"astropy-0.2.1-np17py27_0.tar.bz2"), (0, u"astropy-0.2.1-np17py33_0.tar.bz2"), (1, u"bitarray-0.8.0-py26_0.tar.bz2"), (1, u"bitarray-0.8.0-py27_0.tar.bz2"), (1, u"bitarray-0.8.0-py33_0.tar.bz2"), (0, u"bitarray-0.8.1-py26_0.tar.bz2"), (0, u"bitarray-0.8.1-py27_0.tar.bz2"), (0, u"bitarray-0.8.1-py33_0.tar.bz2"), (1, u"cython-0.18-py26_0.tar.bz2"), (1, u"cython-0.18-py27_0.tar.bz2"), (1, u"cython-0.18-py33_0.tar.bz2"), (0, u"cython-0.19-py26_0.tar.bz2"), (0, u"cython-0.19-py27_0.tar.bz2"), (0, u"cython-0.19-py33_0.tar.bz2"), (1, u"dateutil-2.1-py26_0.tar.bz2"), (0, u"dateutil-2.1-py26_1.tar.bz2"), (1, u"dateutil-2.1-py27_0.tar.bz2"), (0, u"dateutil-2.1-py27_1.tar.bz2"), (1, u"dateutil-2.1-py33_0.tar.bz2"), (0, u"dateutil-2.1-py33_1.tar.bz2"), (1, u"distribute-0.6.34-py26_1.tar.bz2"), (1, u"distribute-0.6.34-py27_1.tar.bz2"), (1, u"distribute-0.6.34-py33_1.tar.bz2"), (0, u"distribute-0.6.36-py26_1.tar.bz2"), (0, u"distribute-0.6.36-py27_1.tar.bz2"), (0, u"distribute-0.6.36-py33_1.tar.bz2"), (0, u"docutils-0.10-py26_0.tar.bz2"), (0, u"docutils-0.10-py27_0.tar.bz2"), (0, u"docutils-0.10-py33_0.tar.bz2"), (0, u"freetype-2.4.10-0.tar.bz2"), (0, u"greenlet-0.4.0-py26_0.tar.bz2"), (0, u"greenlet-0.4.0-py27_0.tar.bz2"), (0, u"greenlet-0.4.0-py33_0.tar.bz2"), (1, u"ipython-0.13.1-py26_1.tar.bz2"), (1, u"ipython-0.13.1-py27_1.tar.bz2"), (1, u"ipython-0.13.1-py33_1.tar.bz2"), (0, u"ipython-0.13.2-py26_0.tar.bz2"), (0, u"ipython-0.13.2-py27_0.tar.bz2"), (0, u"ipython-0.13.2-py33_0.tar.bz2"), (0, u"jinja2-2.6-py26_0.tar.bz2"), (0, u"jinja2-2.6-py27_0.tar.bz2"), (0, u"jinja2-2.6-py33_0.tar.bz2"), (0, u"libpng-1.5.13-1.tar.bz2"), (0, u"libxml2-2.9.0-0.tar.bz2"), (0, u"libxslt-1.1.28-0.tar.bz2"), (0, u"llvm-3.2-0.tar.bz2"), (1, u"llvmpy-0.11.1-py26_0.tar.bz2"), (1, u"llvmpy-0.11.1-py27_0.tar.bz2"), (1, u"llvmpy-0.11.1-py33_0.tar.bz2"), (0, u"llvmpy-0.11.2-py26_0.tar.bz2"), (0, u"llvmpy-0.11.2-py27_0.tar.bz2"), (0, u"llvmpy-0.11.2-py33_0.tar.bz2"), (1, u"lxml-3.0.2-py26_0.tar.bz2"), (1, u"lxml-3.0.2-py27_0.tar.bz2"), (1, u"lxml-3.0.2-py33_0.tar.bz2"), (0, u"lxml-3.2.0-py26_0.tar.bz2"), (0, u"lxml-3.2.0-py27_0.tar.bz2"), (0, u"lxml-3.2.0-py33_0.tar.bz2"), (1, u"matplotlib-1.2.0-np15py26_1.tar.bz2"), (1, u"matplotlib-1.2.0-np15py27_1.tar.bz2"), (1, u"matplotlib-1.2.0-np16py26_1.tar.bz2"), (1, u"matplotlib-1.2.0-np16py27_1.tar.bz2"), (1, u"matplotlib-1.2.0-np17py26_1.tar.bz2"), (1, u"matplotlib-1.2.0-np17py27_1.tar.bz2"), (1, u"matplotlib-1.2.0-np17py33_1.tar.bz2"), (0, u"matplotlib-1.2.1-np16py26_1.tar.bz2"), (0, u"matplotlib-1.2.1-np16py27_1.tar.bz2"), (0, u"matplotlib-1.2.1-np17py26_1.tar.bz2"), (0, u"matplotlib-1.2.1-np17py27_1.tar.bz2"), (0, u"matplotlib-1.2.1-np17py33_1.tar.bz2"), (0, u"mdp-3.3-np15py26_0.tar.bz2"), (0, u"mdp-3.3-np15py27_0.tar.bz2"), (0, u"mdp-3.3-np16py26_0.tar.bz2"), (0, u"mdp-3.3-np16py27_0.tar.bz2"), (0, u"mdp-3.3-np17py26_0.tar.bz2"), (0, u"mdp-3.3-np17py27_0.tar.bz2"), (0, u"mdp-3.3-np17py33_0.tar.bz2"), (0, u"networkx-1.7-py26_0.tar.bz2"), (0, u"networkx-1.7-py27_0.tar.bz2"), (0, u"networkx-1.7-py33_0.tar.bz2"), (1, u"nose-1.2.1-py26_0.tar.bz2"), (1, u"nose-1.2.1-py27_0.tar.bz2"), (1, u"nose-1.2.1-py33_0.tar.bz2"), (0, u"nose-1.3.0-py26_0.tar.bz2"), (0, u"nose-1.3.0-py27_0.tar.bz2"), (0, u"nose-1.3.0-py33_0.tar.bz2"), (4, u"numpy-1.5.1-py26_3.tar.bz2"), (4, u"numpy-1.5.1-py27_3.tar.bz2"), (3, u"numpy-1.6.2-py26_3.tar.bz2"), (2, u"numpy-1.6.2-py26_4.tar.bz2"), (3, u"numpy-1.6.2-py27_3.tar.bz2"), (2, u"numpy-1.6.2-py27_4.tar.bz2"), (1, u"numpy-1.7.0-py26_0.tar.bz2"), (1, u"numpy-1.7.0-py27_0.tar.bz2"), (1, u"numpy-1.7.0-py33_0.tar.bz2"), (0, u"numpy-1.7.1-py26_0.tar.bz2"), (0, u"numpy-1.7.1-py27_0.tar.bz2"), (0, u"numpy-1.7.1-py33_0.tar.bz2"), (0, u"openssl-1.0.1c-0.tar.bz2"), (1, u"pip-1.2.1-py26_1.tar.bz2"), (1, u"pip-1.2.1-py27_1.tar.bz2"), (1, u"pip-1.2.1-py33_1.tar.bz2"), (0, u"pip-1.3.1-py26_1.tar.bz2"), (0, u"pip-1.3.1-py27_1.tar.bz2"), (0, u"pip-1.3.1-py33_1.tar.bz2"), (0, u"ply-3.4-py26_0.tar.bz2"), (0, u"ply-3.4-py27_0.tar.bz2"), (0, u"ply-3.4-py33_0.tar.bz2"), (1, u"psutil-0.6.1-py26_0.tar.bz2"), (1, u"psutil-0.6.1-py27_0.tar.bz2"), (1, u"psutil-0.6.1-py33_0.tar.bz2"), (0, u"psutil-0.7.1-py26_0.tar.bz2"), (0, u"psutil-0.7.1-py27_0.tar.bz2"), (0, u"psutil-0.7.1-py33_0.tar.bz2"), (0, u"pycparser-2.9.1-py26_0.tar.bz2"), (0, u"pycparser-2.9.1-py27_0.tar.bz2"), (0, u"pycparser-2.9.1-py33_0.tar.bz2"), (0, u"pycrypto-2.6-py26_0.tar.bz2"), (0, u"pycrypto-2.6-py27_0.tar.bz2"), (0, u"pycrypto-2.6-py33_0.tar.bz2"), (1, u"pyflakes-0.6.1-py26_0.tar.bz2"), (1, u"pyflakes-0.6.1-py27_0.tar.bz2"), (1, u"pyflakes-0.6.1-py33_0.tar.bz2"), (0, u"pyflakes-0.7.2-py26_0.tar.bz2"), (0, u"pyflakes-0.7.2-py27_0.tar.bz2"), (0, u"pyflakes-0.7.2-py33_0.tar.bz2"), (0, u"pygments-1.6-py26_0.tar.bz2"), (0, u"pygments-1.6-py27_0.tar.bz2"), (0, u"pygments-1.6-py33_0.tar.bz2"), (4, u"python-2.6.8-6.tar.bz2"), (3, u"python-2.7.3-7.tar.bz2"), (2, u"python-2.7.4-0.tar.bz2"), (1, u"python-3.3.0-4.tar.bz2"), (0, u"python-3.3.1-0.tar.bz2"), (1, u"pytz-2012j-py26_0.tar.bz2"), (1, u"pytz-2012j-py27_0.tar.bz2"), (1, u"pytz-2012j-py33_0.tar.bz2"), (0, u"pytz-2013b-py26_0.tar.bz2"), (0, u"pytz-2013b-py27_0.tar.bz2"), (0, u"pytz-2013b-py33_0.tar.bz2"), (0, u"pyyaml-3.10-py26_0.tar.bz2"), (0, u"pyyaml-3.10-py27_0.tar.bz2"), (0, u"pyyaml-3.10-py33_0.tar.bz2"), (1, u"pyzmq-2.2.0.1-py26_0.tar.bz2"), (0, u"pyzmq-2.2.0.1-py26_1.tar.bz2"), (1, u"pyzmq-2.2.0.1-py27_0.tar.bz2"), (0, u"pyzmq-2.2.0.1-py27_1.tar.bz2"), (1, u"pyzmq-2.2.0.1-py33_0.tar.bz2"), (0, u"pyzmq-2.2.0.1-py33_1.tar.bz2"), (0, u"readline-6.2-0.tar.bz2"), (1, u"requests-0.13.9-py26_0.tar.bz2"), (1, u"requests-0.13.9-py27_0.tar.bz2"), (1, u"requests-0.13.9-py33_0.tar.bz2"), (0, u"requests-1.2.0-py26_0.tar.bz2"), (0, u"requests-1.2.0-py27_0.tar.bz2"), (0, u"requests-1.2.0-py33_0.tar.bz2"), (1, u"scipy-0.11.0-np15py26_3.tar.bz2"), (1, u"scipy-0.11.0-np15py27_3.tar.bz2"), (1, u"scipy-0.11.0-np16py26_3.tar.bz2"), (1, u"scipy-0.11.0-np16py27_3.tar.bz2"), (1, u"scipy-0.11.0-np17py26_3.tar.bz2"), (1, u"scipy-0.11.0-np17py27_3.tar.bz2"), (1, u"scipy-0.11.0-np17py33_3.tar.bz2"), (0, u"scipy-0.12.0-np16py26_0.tar.bz2"), (0, u"scipy-0.12.0-np16py27_0.tar.bz2"), (0, u"scipy-0.12.0-np17py26_0.tar.bz2"), (0, u"scipy-0.12.0-np17py27_0.tar.bz2"), (0, u"scipy-0.12.0-np17py33_0.tar.bz2"), (1, u"six-1.2.0-py26_0.tar.bz2"), (1, u"six-1.2.0-py27_0.tar.bz2"), (1, u"six-1.2.0-py33_0.tar.bz2"), (0, u"six-1.3.0-py26_0.tar.bz2"), (0, u"six-1.3.0-py27_0.tar.bz2"), (0, u"six-1.3.0-py33_0.tar.bz2"), (1, u"sphinx-1.1.3-py26_2.tar.bz2"), (0, u"sphinx-1.1.3-py26_3.tar.bz2"), (1, u"sphinx-1.1.3-py27_2.tar.bz2"), (0, u"sphinx-1.1.3-py27_3.tar.bz2"), (1, u"sphinx-1.1.3-py33_2.tar.bz2"), (0, u"sphinx-1.1.3-py33_3.tar.bz2"), (1, u"sqlalchemy-0.7.8-py26_0.tar.bz2"), (1, u"sqlalchemy-0.7.8-py27_0.tar.bz2"), (1, u"sqlalchemy-0.7.8-py33_0.tar.bz2"), (0, u"sqlalchemy-0.8.1-py26_0.tar.bz2"), (0, u"sqlalchemy-0.8.1-py27_0.tar.bz2"), (0, u"sqlalchemy-0.8.1-py33_0.tar.bz2"), (0, u"sqlite-3.7.13-0.tar.bz2"), (1, u"system-5.8-0.tar.bz2"), (0, u"system-5.8-1.tar.bz2"), (0, u"tk-8.5.13-0.tar.bz2"), (1, u"tornado-2.4.1-py26_0.tar.bz2"), (1, u"tornado-2.4.1-py27_0.tar.bz2"), (1, u"tornado-2.4.1-py33_0.tar.bz2"), (0, u"tornado-3.0.1-py26_0.tar.bz2"), (0, u"tornado-3.0.1-py27_0.tar.bz2"), (0, u"tornado-3.0.1-py33_0.tar.bz2"), (0, u"util-linux-2.21-0.tar.bz2"), (1, u"xlrd-0.9.0-py26_0.tar.bz2"), (1, u"xlrd-0.9.0-py27_0.tar.bz2"), (1, u"xlrd-0.9.0-py33_0.tar.bz2"), (0, u"xlrd-0.9.2-py26_0.tar.bz2"), (0, u"xlrd-0.9.2-py27_0.tar.bz2"), (0, u"xlrd-0.9.2-py33_0.tar.bz2"), (0, u"yaml-0.1.4-0.tar.bz2"), (1, u"zeromq-2.2.0-0.tar.bz2"), (0, u"zeromq-2.2.0-1.tar.bz2"), (0, u"zlib-1.2.7-0.tar.bz2"), ] eq = r.generate_version_eq(v, groups, specs) e2 = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) assert e2 == [q for q in e if q[0] > 0]
def test_generate_eq(): specs = ["anaconda"] dists, _ = r.get_dists(specs) groups = build_groups(dists) m, v, w = r.build_vw(groups) eq = r.generate_version_eq(v, groups, specs, include0=True) e = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) # Should satisfy the following criteria: # - lower versions of the same package should should have higher # coefficients. # - the same versions of the same package (e.g., different build strings) # should have the same coefficients. # - a package that only has one version should not appear, unless # include=True as it will have a 0 coefficient. The same is true of the # latest version of a package. assert e == [ (0, u"_license-1.1-py27_0.tar.bz2"), (44, u"anaconda-1.4.0-np15py26_0.tar.bz2"), (40, u"anaconda-1.4.0-np15py27_0.tar.bz2"), (36, u"anaconda-1.4.0-np16py26_0.tar.bz2"), (32, u"anaconda-1.4.0-np16py27_0.tar.bz2"), (28, u"anaconda-1.4.0-np17py26_0.tar.bz2"), (24, u"anaconda-1.4.0-np17py27_0.tar.bz2"), (20, u"anaconda-1.4.0-np17py33_0.tar.bz2"), (16, u"anaconda-1.5.0-np16py26_0.tar.bz2"), (12, u"anaconda-1.5.0-np16py27_0.tar.bz2"), (8, u"anaconda-1.5.0-np17py26_0.tar.bz2"), (4, u"anaconda-1.5.0-np17py27_0.tar.bz2"), (0, u"anaconda-1.5.0-np17py33_0.tar.bz2"), (0, u"argparse-1.2.1-py26_0.tar.bz2"), (11, u"astropy-0.2-np15py26_0.tar.bz2"), (10, u"astropy-0.2-np15py27_0.tar.bz2"), (9, u"astropy-0.2-np16py26_0.tar.bz2"), (8, u"astropy-0.2-np16py27_0.tar.bz2"), (7, u"astropy-0.2-np17py26_0.tar.bz2"), (6, u"astropy-0.2-np17py27_0.tar.bz2"), (5, u"astropy-0.2-np17py33_0.tar.bz2"), (4, u"astropy-0.2.1-np16py26_0.tar.bz2"), (3, u"astropy-0.2.1-np16py27_0.tar.bz2"), (2, u"astropy-0.2.1-np17py26_0.tar.bz2"), (1, u"astropy-0.2.1-np17py27_0.tar.bz2"), (0, u"astropy-0.2.1-np17py33_0.tar.bz2"), (1, u"atom-0.2.3-py26_0.tar.bz2"), (0, u"atom-0.2.3-py27_0.tar.bz2"), (9, u"biopython-1.60-np15py26_0.tar.bz2"), (8, u"biopython-1.60-np15py27_0.tar.bz2"), (7, u"biopython-1.60-np16py26_0.tar.bz2"), (6, u"biopython-1.60-np16py27_0.tar.bz2"), (5, u"biopython-1.60-np17py26_0.tar.bz2"), (4, u"biopython-1.60-np17py27_0.tar.bz2"), (3, u"biopython-1.61-np16py26_0.tar.bz2"), (2, u"biopython-1.61-np16py27_0.tar.bz2"), (1, u"biopython-1.61-np17py26_0.tar.bz2"), (0, u"biopython-1.61-np17py27_0.tar.bz2"), (5, u"bitarray-0.8.0-py26_0.tar.bz2"), (4, u"bitarray-0.8.0-py27_0.tar.bz2"), (3, u"bitarray-0.8.0-py33_0.tar.bz2"), (2, u"bitarray-0.8.1-py26_0.tar.bz2"), (1, u"bitarray-0.8.1-py27_0.tar.bz2"), (0, u"bitarray-0.8.1-py33_0.tar.bz2"), (3, u"boto-2.8.0-py26_0.tar.bz2"), (2, u"boto-2.8.0-py27_0.tar.bz2"), (1, u"boto-2.9.2-py26_0.tar.bz2"), (0, u"boto-2.9.2-py27_0.tar.bz2"), (1, u"cairo-1.12.2-0.tar.bz2"), (0, u"cairo-1.12.2-1.tar.bz2"), (1, u"casuarius-1.1-py26_0.tar.bz2"), (0, u"casuarius-1.1-py27_0.tar.bz2"), (1, u"conda-1.4.4-py27_0.tar.bz2"), (0, u"conda-1.5.2-py27_0.tar.bz2"), (1, u"cubes-0.10.2-py27_0.tar.bz2"), (0, u"cubes-0.10.2-py27_1.tar.bz2"), (0, u"curl-7.30.0-0.tar.bz2"), (5, u"cython-0.18-py26_0.tar.bz2"), (4, u"cython-0.18-py27_0.tar.bz2"), (3, u"cython-0.18-py33_0.tar.bz2"), (2, u"cython-0.19-py26_0.tar.bz2"), (1, u"cython-0.19-py27_0.tar.bz2"), (0, u"cython-0.19-py33_0.tar.bz2"), (5, u"dateutil-2.1-py26_0.tar.bz2"), (2, u"dateutil-2.1-py26_1.tar.bz2"), (4, u"dateutil-2.1-py27_0.tar.bz2"), (1, u"dateutil-2.1-py27_1.tar.bz2"), (3, u"dateutil-2.1-py33_0.tar.bz2"), (0, u"dateutil-2.1-py33_1.tar.bz2"), (1, u"disco-0.4.4-py26_0.tar.bz2"), (0, u"disco-0.4.4-py27_0.tar.bz2"), (5, u"distribute-0.6.34-py26_1.tar.bz2"), (4, u"distribute-0.6.34-py27_1.tar.bz2"), (3, u"distribute-0.6.34-py33_1.tar.bz2"), (2, u"distribute-0.6.36-py26_1.tar.bz2"), (1, u"distribute-0.6.36-py27_1.tar.bz2"), (0, u"distribute-0.6.36-py33_1.tar.bz2"), (2, u"docutils-0.10-py26_0.tar.bz2"), (1, u"docutils-0.10-py27_0.tar.bz2"), (0, u"docutils-0.10-py33_0.tar.bz2"), (2, u"dynd-python-0.3.0-np17py26_0.tar.bz2"), (1, u"dynd-python-0.3.0-np17py27_0.tar.bz2"), (0, u"dynd-python-0.3.0-np17py33_0.tar.bz2"), (0, u"enaml-0.7.6-py27_0.tar.bz2"), (0, u"erlang-R15B01-0.tar.bz2"), (1, u"flask-0.9-py26_0.tar.bz2"), (0, u"flask-0.9-py27_0.tar.bz2"), (0, u"freetype-2.4.10-0.tar.bz2"), (1, u"gdata-2.0.17-py26_0.tar.bz2"), (0, u"gdata-2.0.17-py27_0.tar.bz2"), (3, u"gevent-0.13.7-py26_0.tar.bz2"), (2, u"gevent-0.13.7-py27_0.tar.bz2"), (1, u"gevent-0.13.8-py26_0.tar.bz2"), (0, u"gevent-0.13.8-py27_0.tar.bz2"), (3, u"gevent-websocket-0.3.6-py26_1.tar.bz2"), (1, u"gevent-websocket-0.3.6-py26_2.tar.bz2"), (2, u"gevent-websocket-0.3.6-py27_1.tar.bz2"), (0, u"gevent-websocket-0.3.6-py27_2.tar.bz2"), (3, u"gevent_zeromq-0.2.5-py26_1.tar.bz2"), (1, u"gevent_zeromq-0.2.5-py26_2.tar.bz2"), (2, u"gevent_zeromq-0.2.5-py27_1.tar.bz2"), (0, u"gevent_zeromq-0.2.5-py27_2.tar.bz2"), (1, u"googlecl-0.9.12-py26_0.tar.bz2"), (0, u"googlecl-0.9.12-py27_0.tar.bz2"), (2, u"greenlet-0.4.0-py26_0.tar.bz2"), (1, u"greenlet-0.4.0-py27_0.tar.bz2"), (0, u"greenlet-0.4.0-py33_0.tar.bz2"), (1, u"grin-1.2.1-py26_1.tar.bz2"), (0, u"grin-1.2.1-py27_1.tar.bz2"), (5, u"h5py-2.1.1-np15py26_0.tar.bz2"), (4, u"h5py-2.1.1-np15py27_0.tar.bz2"), (3, u"h5py-2.1.1-np16py26_0.tar.bz2"), (2, u"h5py-2.1.1-np16py27_0.tar.bz2"), (1, u"h5py-2.1.1-np17py26_0.tar.bz2"), (0, u"h5py-2.1.1-np17py27_0.tar.bz2"), (0, u"hdf5-1.8.9-0.tar.bz2"), (1, u"imaging-1.1.7-py26_2.tar.bz2"), (0, u"imaging-1.1.7-py27_2.tar.bz2"), (5, u"ipython-0.13.1-py26_1.tar.bz2"), (4, u"ipython-0.13.1-py27_1.tar.bz2"), (3, u"ipython-0.13.1-py33_1.tar.bz2"), (2, u"ipython-0.13.2-py26_0.tar.bz2"), (1, u"ipython-0.13.2-py27_0.tar.bz2"), (0, u"ipython-0.13.2-py33_0.tar.bz2"), (2, u"jinja2-2.6-py26_0.tar.bz2"), (1, u"jinja2-2.6-py27_0.tar.bz2"), (0, u"jinja2-2.6-py33_0.tar.bz2"), (0, u"jpeg-8d-0.tar.bz2"), (0, u"libdynd-0.3.0-0.tar.bz2"), (0, u"libevent-2.0.20-0.tar.bz2"), (1, u"libnetcdf-4.2.1.1-0.tar.bz2"), (0, u"libnetcdf-4.2.1.1-1.tar.bz2"), (0, u"libpng-1.5.13-1.tar.bz2"), (0, u"libxml2-2.9.0-0.tar.bz2"), (0, u"libxslt-1.1.28-0.tar.bz2"), (0, u"llvm-3.2-0.tar.bz2"), (5, u"llvmpy-0.11.1-py26_0.tar.bz2"), (4, u"llvmpy-0.11.1-py27_0.tar.bz2"), (3, u"llvmpy-0.11.1-py33_0.tar.bz2"), (2, u"llvmpy-0.11.2-py26_0.tar.bz2"), (1, u"llvmpy-0.11.2-py27_0.tar.bz2"), (0, u"llvmpy-0.11.2-py33_0.tar.bz2"), (5, u"lxml-3.0.2-py26_0.tar.bz2"), (4, u"lxml-3.0.2-py27_0.tar.bz2"), (3, u"lxml-3.0.2-py33_0.tar.bz2"), (2, u"lxml-3.2.0-py26_0.tar.bz2"), (1, u"lxml-3.2.0-py27_0.tar.bz2"), (0, u"lxml-3.2.0-py33_0.tar.bz2"), (11, u"matplotlib-1.2.0-np15py26_1.tar.bz2"), (10, u"matplotlib-1.2.0-np15py27_1.tar.bz2"), (9, u"matplotlib-1.2.0-np16py26_1.tar.bz2"), (8, u"matplotlib-1.2.0-np16py27_1.tar.bz2"), (7, u"matplotlib-1.2.0-np17py26_1.tar.bz2"), (6, u"matplotlib-1.2.0-np17py27_1.tar.bz2"), (5, u"matplotlib-1.2.0-np17py33_1.tar.bz2"), (4, u"matplotlib-1.2.1-np16py26_1.tar.bz2"), (3, u"matplotlib-1.2.1-np16py27_1.tar.bz2"), (2, u"matplotlib-1.2.1-np17py26_1.tar.bz2"), (1, u"matplotlib-1.2.1-np17py27_1.tar.bz2"), (0, u"matplotlib-1.2.1-np17py33_1.tar.bz2"), (6, u"mdp-3.3-np15py26_0.tar.bz2"), (5, u"mdp-3.3-np15py27_0.tar.bz2"), (4, u"mdp-3.3-np16py26_0.tar.bz2"), (3, u"mdp-3.3-np16py27_0.tar.bz2"), (2, u"mdp-3.3-np17py26_0.tar.bz2"), (1, u"mdp-3.3-np17py27_0.tar.bz2"), (0, u"mdp-3.3-np17py33_0.tar.bz2"), (2, u"meta-0.4.2.dev-py26_0.tar.bz2"), (1, u"meta-0.4.2.dev-py27_0.tar.bz2"), (0, u"meta-0.4.2.dev-py33_0.tar.bz2"), (1, u"mpi4py-1.3-py26_0.tar.bz2"), (0, u"mpi4py-1.3-py27_0.tar.bz2"), (0, u"mpich2-1.4.1p1-0.tar.bz2"), (4, u"netcdf4-1.0.4-np16py26_0.tar.bz2"), (3, u"netcdf4-1.0.4-np16py27_0.tar.bz2"), (2, u"netcdf4-1.0.4-np17py26_0.tar.bz2"), (1, u"netcdf4-1.0.4-np17py27_0.tar.bz2"), (0, u"netcdf4-1.0.4-np17py33_0.tar.bz2"), (2, u"networkx-1.7-py26_0.tar.bz2"), (1, u"networkx-1.7-py27_0.tar.bz2"), (0, u"networkx-1.7-py33_0.tar.bz2"), (5, u"nltk-2.0.4-np15py26_0.tar.bz2"), (4, u"nltk-2.0.4-np15py27_0.tar.bz2"), (3, u"nltk-2.0.4-np16py26_0.tar.bz2"), (2, u"nltk-2.0.4-np16py27_0.tar.bz2"), (1, u"nltk-2.0.4-np17py26_0.tar.bz2"), (0, u"nltk-2.0.4-np17py27_0.tar.bz2"), (5, u"nose-1.2.1-py26_0.tar.bz2"), (4, u"nose-1.2.1-py27_0.tar.bz2"), (3, u"nose-1.2.1-py33_0.tar.bz2"), (2, u"nose-1.3.0-py26_0.tar.bz2"), (1, u"nose-1.3.0-py27_0.tar.bz2"), (0, u"nose-1.3.0-py33_0.tar.bz2"), (8, u"numba-0.7.0-np16py26_1.tar.bz2"), (7, u"numba-0.7.0-np16py27_1.tar.bz2"), (6, u"numba-0.7.0-np17py26_1.tar.bz2"), (5, u"numba-0.7.0-np17py27_1.tar.bz2"), (4, u"numba-0.8.1-np16py26_0.tar.bz2"), (3, u"numba-0.8.1-np16py27_0.tar.bz2"), (2, u"numba-0.8.1-np17py26_0.tar.bz2"), (1, u"numba-0.8.1-np17py27_0.tar.bz2"), (0, u"numba-0.8.1-np17py33_0.tar.bz2"), (11, u"numexpr-2.0.1-np16py26_1.tar.bz2"), (7, u"numexpr-2.0.1-np16py26_2.tar.bz2"), (3, u"numexpr-2.0.1-np16py26_3.tar.bz2"), (15, u"numexpr-2.0.1-np16py26_ce0.tar.bz2"), (10, u"numexpr-2.0.1-np16py27_1.tar.bz2"), (6, u"numexpr-2.0.1-np16py27_2.tar.bz2"), (2, u"numexpr-2.0.1-np16py27_3.tar.bz2"), (14, u"numexpr-2.0.1-np16py27_ce0.tar.bz2"), (9, u"numexpr-2.0.1-np17py26_1.tar.bz2"), (5, u"numexpr-2.0.1-np17py26_2.tar.bz2"), (1, u"numexpr-2.0.1-np17py26_3.tar.bz2"), (13, u"numexpr-2.0.1-np17py26_ce0.tar.bz2"), (8, u"numexpr-2.0.1-np17py27_1.tar.bz2"), (4, u"numexpr-2.0.1-np17py27_2.tar.bz2"), (0, u"numexpr-2.0.1-np17py27_3.tar.bz2"), (12, u"numexpr-2.0.1-np17py27_ce0.tar.bz2"), (11, u"numpy-1.5.1-py26_3.tar.bz2"), (10, u"numpy-1.5.1-py27_3.tar.bz2"), (9, u"numpy-1.6.2-py26_3.tar.bz2"), (7, u"numpy-1.6.2-py26_4.tar.bz2"), (8, u"numpy-1.6.2-py27_3.tar.bz2"), (6, u"numpy-1.6.2-py27_4.tar.bz2"), (5, u"numpy-1.7.0-py26_0.tar.bz2"), (4, u"numpy-1.7.0-py27_0.tar.bz2"), (3, u"numpy-1.7.0-py33_0.tar.bz2"), (2, u"numpy-1.7.1-py26_0.tar.bz2"), (1, u"numpy-1.7.1-py27_0.tar.bz2"), (0, u"numpy-1.7.1-py33_0.tar.bz2"), (5, u"opencv-2.4.2-np15py26_1.tar.bz2"), (4, u"opencv-2.4.2-np15py27_1.tar.bz2"), (3, u"opencv-2.4.2-np16py26_1.tar.bz2"), (2, u"opencv-2.4.2-np16py27_1.tar.bz2"), (1, u"opencv-2.4.2-np17py26_1.tar.bz2"), (0, u"opencv-2.4.2-np17py27_1.tar.bz2"), (0, u"openssl-1.0.1c-0.tar.bz2"), (0, u"ordereddict-1.1-py26_0.tar.bz2"), (13, u"pandas-0.10.0-np16py26_0.tar.bz2"), (12, u"pandas-0.10.0-np16py27_0.tar.bz2"), (11, u"pandas-0.10.0-np17py26_0.tar.bz2"), (10, u"pandas-0.10.0-np17py27_0.tar.bz2"), (9, u"pandas-0.10.1-np16py26_0.tar.bz2"), (8, u"pandas-0.10.1-np16py27_0.tar.bz2"), (7, u"pandas-0.10.1-np17py26_0.tar.bz2"), (6, u"pandas-0.10.1-np17py27_0.tar.bz2"), (5, u"pandas-0.10.1-np17py33_0.tar.bz2"), (4, u"pandas-0.11.0-np16py26_1.tar.bz2"), (3, u"pandas-0.11.0-np16py27_1.tar.bz2"), (2, u"pandas-0.11.0-np17py26_1.tar.bz2"), (1, u"pandas-0.11.0-np17py27_1.tar.bz2"), (0, u"pandas-0.11.0-np17py33_1.tar.bz2"), (25, u"pandas-0.8.1-np16py26_0.tar.bz2"), (24, u"pandas-0.8.1-np16py27_0.tar.bz2"), (23, u"pandas-0.8.1-np17py26_0.tar.bz2"), (22, u"pandas-0.8.1-np17py27_0.tar.bz2"), (21, u"pandas-0.9.0-np16py26_0.tar.bz2"), (20, u"pandas-0.9.0-np16py27_0.tar.bz2"), (19, u"pandas-0.9.0-np17py26_0.tar.bz2"), (18, u"pandas-0.9.0-np17py27_0.tar.bz2"), (17, u"pandas-0.9.1-np16py26_0.tar.bz2"), (16, u"pandas-0.9.1-np16py27_0.tar.bz2"), (15, u"pandas-0.9.1-np17py26_0.tar.bz2"), (14, u"pandas-0.9.1-np17py27_0.tar.bz2"), (5, u"pip-1.2.1-py26_1.tar.bz2"), (4, u"pip-1.2.1-py27_1.tar.bz2"), (3, u"pip-1.2.1-py33_1.tar.bz2"), (2, u"pip-1.3.1-py26_1.tar.bz2"), (1, u"pip-1.3.1-py27_1.tar.bz2"), (0, u"pip-1.3.1-py33_1.tar.bz2"), (0, u"pixman-0.26.2-0.tar.bz2"), (2, u"ply-3.4-py26_0.tar.bz2"), (1, u"ply-3.4-py27_0.tar.bz2"), (0, u"ply-3.4-py33_0.tar.bz2"), (5, u"psutil-0.6.1-py26_0.tar.bz2"), (4, u"psutil-0.6.1-py27_0.tar.bz2"), (3, u"psutil-0.6.1-py33_0.tar.bz2"), (2, u"psutil-0.7.1-py26_0.tar.bz2"), (1, u"psutil-0.7.1-py27_0.tar.bz2"), (0, u"psutil-0.7.1-py33_0.tar.bz2"), (2, u"py-1.4.12-py26_0.tar.bz2"), (1, u"py-1.4.12-py27_0.tar.bz2"), (0, u"py-1.4.12-py33_0.tar.bz2"), (3, u"py2cairo-1.10.0-py26_0.tar.bz2"), (1, u"py2cairo-1.10.0-py26_1.tar.bz2"), (2, u"py2cairo-1.10.0-py27_0.tar.bz2"), (0, u"py2cairo-1.10.0-py27_1.tar.bz2"), (2, u"pycosat-0.6.0-py26_0.tar.bz2"), (1, u"pycosat-0.6.0-py27_0.tar.bz2"), (0, u"pycosat-0.6.0-py33_0.tar.bz2"), (2, u"pycparser-2.9.1-py26_0.tar.bz2"), (1, u"pycparser-2.9.1-py27_0.tar.bz2"), (0, u"pycparser-2.9.1-py33_0.tar.bz2"), (2, u"pycrypto-2.6-py26_0.tar.bz2"), (1, u"pycrypto-2.6-py27_0.tar.bz2"), (0, u"pycrypto-2.6-py33_0.tar.bz2"), (3, u"pycurl-7.19.0-py26_0.tar.bz2"), (1, u"pycurl-7.19.0-py26_2.tar.bz2"), (2, u"pycurl-7.19.0-py27_0.tar.bz2"), (0, u"pycurl-7.19.0-py27_2.tar.bz2"), (5, u"pyflakes-0.6.1-py26_0.tar.bz2"), (4, u"pyflakes-0.6.1-py27_0.tar.bz2"), (3, u"pyflakes-0.6.1-py33_0.tar.bz2"), (2, u"pyflakes-0.7.2-py26_0.tar.bz2"), (1, u"pyflakes-0.7.2-py27_0.tar.bz2"), (0, u"pyflakes-0.7.2-py33_0.tar.bz2"), (2, u"pygments-1.6-py26_0.tar.bz2"), (1, u"pygments-1.6-py27_0.tar.bz2"), (0, u"pygments-1.6-py33_0.tar.bz2"), (1, u"pyparsing-1.5.6-py26_0.tar.bz2"), (0, u"pyparsing-1.5.6-py27_0.tar.bz2"), (4, u"pysal-1.5.0-np15py27_0.tar.bz2"), (3, u"pysal-1.5.0-np16py27_0.tar.bz2"), (1, u"pysal-1.5.0-np16py27_1.tar.bz2"), (2, u"pysal-1.5.0-np17py27_0.tar.bz2"), (0, u"pysal-1.5.0-np17py27_1.tar.bz2"), (1, u"pysam-0.6-py26_0.tar.bz2"), (0, u"pysam-0.6-py27_0.tar.bz2"), (1, u"pyside-1.1.2-py26_0.tar.bz2"), (0, u"pyside-1.1.2-py27_0.tar.bz2"), (3, u"pytables-2.4.0-np16py26_0.tar.bz2"), (2, u"pytables-2.4.0-np16py27_0.tar.bz2"), (1, u"pytables-2.4.0-np17py26_0.tar.bz2"), (0, u"pytables-2.4.0-np17py27_0.tar.bz2"), (3, u"pytest-2.3.4-py26_0.tar.bz2"), (1, u"pytest-2.3.4-py26_1.tar.bz2"), (2, u"pytest-2.3.4-py27_0.tar.bz2"), (0, u"pytest-2.3.4-py27_1.tar.bz2"), (4, u"python-2.6.8-6.tar.bz2"), (3, u"python-2.7.3-7.tar.bz2"), (2, u"python-2.7.4-0.tar.bz2"), (1, u"python-3.3.0-4.tar.bz2"), (0, u"python-3.3.1-0.tar.bz2"), (5, u"pytz-2012j-py26_0.tar.bz2"), (4, u"pytz-2012j-py27_0.tar.bz2"), (3, u"pytz-2012j-py33_0.tar.bz2"), (2, u"pytz-2013b-py26_0.tar.bz2"), (1, u"pytz-2013b-py27_0.tar.bz2"), (0, u"pytz-2013b-py33_0.tar.bz2"), (2, u"pyyaml-3.10-py26_0.tar.bz2"), (1, u"pyyaml-3.10-py27_0.tar.bz2"), (0, u"pyyaml-3.10-py33_0.tar.bz2"), (5, u"pyzmq-2.2.0.1-py26_0.tar.bz2"), (2, u"pyzmq-2.2.0.1-py26_1.tar.bz2"), (4, u"pyzmq-2.2.0.1-py27_0.tar.bz2"), (1, u"pyzmq-2.2.0.1-py27_1.tar.bz2"), (3, u"pyzmq-2.2.0.1-py33_0.tar.bz2"), (0, u"pyzmq-2.2.0.1-py33_1.tar.bz2"), (0, u"qt-4.7.4-0.tar.bz2"), (0, u"readline-6.2-0.tar.bz2"), (0, u"redis-2.6.9-0.tar.bz2"), (1, u"redis-py-2.7.2-py26_0.tar.bz2"), (0, u"redis-py-2.7.2-py27_0.tar.bz2"), (5, u"requests-0.13.9-py26_0.tar.bz2"), (4, u"requests-0.13.9-py27_0.tar.bz2"), (3, u"requests-0.13.9-py33_0.tar.bz2"), (2, u"requests-1.2.0-py26_0.tar.bz2"), (1, u"requests-1.2.0-py27_0.tar.bz2"), (0, u"requests-1.2.0-py33_0.tar.bz2"), (0, u"rope-0.9.4-py27_0.tar.bz2"), (9, u"scikit-image-0.8.2-np16py26_0.tar.bz2"), (4, u"scikit-image-0.8.2-np16py26_1.tar.bz2"), (8, u"scikit-image-0.8.2-np16py27_0.tar.bz2"), (3, u"scikit-image-0.8.2-np16py27_1.tar.bz2"), (7, u"scikit-image-0.8.2-np17py26_0.tar.bz2"), (2, u"scikit-image-0.8.2-np17py26_1.tar.bz2"), (6, u"scikit-image-0.8.2-np17py27_0.tar.bz2"), (1, u"scikit-image-0.8.2-np17py27_1.tar.bz2"), (5, u"scikit-image-0.8.2-np17py33_0.tar.bz2"), (0, u"scikit-image-0.8.2-np17py33_1.tar.bz2"), (9, u"scikit-learn-0.13-np15py26_1.tar.bz2"), (8, u"scikit-learn-0.13-np15py27_1.tar.bz2"), (7, u"scikit-learn-0.13-np16py26_1.tar.bz2"), (6, u"scikit-learn-0.13-np16py27_1.tar.bz2"), (5, u"scikit-learn-0.13-np17py26_1.tar.bz2"), (4, u"scikit-learn-0.13-np17py27_1.tar.bz2"), (3, u"scikit-learn-0.13.1-np16py26_0.tar.bz2"), (2, u"scikit-learn-0.13.1-np16py27_0.tar.bz2"), (1, u"scikit-learn-0.13.1-np17py26_0.tar.bz2"), (0, u"scikit-learn-0.13.1-np17py27_0.tar.bz2"), (11, u"scipy-0.11.0-np15py26_3.tar.bz2"), (10, u"scipy-0.11.0-np15py27_3.tar.bz2"), (9, u"scipy-0.11.0-np16py26_3.tar.bz2"), (8, u"scipy-0.11.0-np16py27_3.tar.bz2"), (7, u"scipy-0.11.0-np17py26_3.tar.bz2"), (6, u"scipy-0.11.0-np17py27_3.tar.bz2"), (5, u"scipy-0.11.0-np17py33_3.tar.bz2"), (4, u"scipy-0.12.0-np16py26_0.tar.bz2"), (3, u"scipy-0.12.0-np16py27_0.tar.bz2"), (2, u"scipy-0.12.0-np17py26_0.tar.bz2"), (1, u"scipy-0.12.0-np17py27_0.tar.bz2"), (0, u"scipy-0.12.0-np17py33_0.tar.bz2"), (1, u"shiboken-1.1.2-py26_0.tar.bz2"), (0, u"shiboken-1.1.2-py27_0.tar.bz2"), (5, u"six-1.2.0-py26_0.tar.bz2"), (4, u"six-1.2.0-py27_0.tar.bz2"), (3, u"six-1.2.0-py33_0.tar.bz2"), (2, u"six-1.3.0-py26_0.tar.bz2"), (1, u"six-1.3.0-py27_0.tar.bz2"), (0, u"six-1.3.0-py33_0.tar.bz2"), (5, u"sphinx-1.1.3-py26_2.tar.bz2"), (2, u"sphinx-1.1.3-py26_3.tar.bz2"), (4, u"sphinx-1.1.3-py27_2.tar.bz2"), (1, u"sphinx-1.1.3-py27_3.tar.bz2"), (3, u"sphinx-1.1.3-py33_2.tar.bz2"), (0, u"sphinx-1.1.3-py33_3.tar.bz2"), (1, u"spyder-2.1.13-py27_0.tar.bz2"), (0, u"spyder-2.2.0-py27_0.tar.bz2"), (5, u"sqlalchemy-0.7.8-py26_0.tar.bz2"), (4, u"sqlalchemy-0.7.8-py27_0.tar.bz2"), (3, u"sqlalchemy-0.7.8-py33_0.tar.bz2"), (2, u"sqlalchemy-0.8.1-py26_0.tar.bz2"), (1, u"sqlalchemy-0.8.1-py27_0.tar.bz2"), (0, u"sqlalchemy-0.8.1-py33_0.tar.bz2"), (0, u"sqlite-3.7.13-0.tar.bz2"), (7, u"statsmodels-0.4.3-np16py26_0.tar.bz2"), (3, u"statsmodels-0.4.3-np16py26_1.tar.bz2"), (6, u"statsmodels-0.4.3-np16py27_0.tar.bz2"), (2, u"statsmodels-0.4.3-np16py27_1.tar.bz2"), (5, u"statsmodels-0.4.3-np17py26_0.tar.bz2"), (1, u"statsmodels-0.4.3-np17py26_1.tar.bz2"), (4, u"statsmodels-0.4.3-np17py27_0.tar.bz2"), (0, u"statsmodels-0.4.3-np17py27_1.tar.bz2"), (4, u"sympy-0.7.1-py26_0.tar.bz2"), (3, u"sympy-0.7.1-py27_0.tar.bz2"), (2, u"sympy-0.7.2-py26_0.tar.bz2"), (1, u"sympy-0.7.2-py27_0.tar.bz2"), (0, u"sympy-0.7.2-py33_0.tar.bz2"), (1, u"system-5.8-0.tar.bz2"), (0, u"system-5.8-1.tar.bz2"), (9, u"theano-0.5.0-np15py26_0.tar.bz2"), (8, u"theano-0.5.0-np15py27_0.tar.bz2"), (7, u"theano-0.5.0-np16py26_0.tar.bz2"), (3, u"theano-0.5.0-np16py26_1.tar.bz2"), (6, u"theano-0.5.0-np16py27_0.tar.bz2"), (2, u"theano-0.5.0-np16py27_1.tar.bz2"), (5, u"theano-0.5.0-np17py26_0.tar.bz2"), (1, u"theano-0.5.0-np17py26_1.tar.bz2"), (4, u"theano-0.5.0-np17py27_0.tar.bz2"), (0, u"theano-0.5.0-np17py27_1.tar.bz2"), (0, u"tk-8.5.13-0.tar.bz2"), (5, u"tornado-2.4.1-py26_0.tar.bz2"), (4, u"tornado-2.4.1-py27_0.tar.bz2"), (3, u"tornado-2.4.1-py33_0.tar.bz2"), (2, u"tornado-3.0.1-py26_0.tar.bz2"), (1, u"tornado-3.0.1-py27_0.tar.bz2"), (0, u"tornado-3.0.1-py33_0.tar.bz2"), (0, u"util-linux-2.21-0.tar.bz2"), (1, u"werkzeug-0.8.3-py26_0.tar.bz2"), (0, u"werkzeug-0.8.3-py27_0.tar.bz2"), (5, u"xlrd-0.9.0-py26_0.tar.bz2"), (4, u"xlrd-0.9.0-py27_0.tar.bz2"), (3, u"xlrd-0.9.0-py33_0.tar.bz2"), (2, u"xlrd-0.9.2-py26_0.tar.bz2"), (1, u"xlrd-0.9.2-py27_0.tar.bz2"), (0, u"xlrd-0.9.2-py33_0.tar.bz2"), (3, u"xlwt-0.7.4-py26_0.tar.bz2"), (2, u"xlwt-0.7.4-py27_0.tar.bz2"), (1, u"xlwt-0.7.5-py26_0.tar.bz2"), (0, u"xlwt-0.7.5-py27_0.tar.bz2"), (0, u"yaml-0.1.4-0.tar.bz2"), (1, u"zeromq-2.2.0-0.tar.bz2"), (0, u"zeromq-2.2.0-1.tar.bz2"), (0, u"zlib-1.2.7-0.tar.bz2"), ] eq = r.generate_version_eq(v, groups, specs) e2 = sorted(((i, w[j]) for i, j in eq), key=lambda i: i[1]) assert e2 == [q for q in e if q[0] > 0]