Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titlePackages Without Upgrades
linenumberstrue
collapsetrue
BeautifulSoup
MongoDBProxy
MySQL-python
Open-edX
PyContracts
XModule
Zendesk
acid-xblock
argparse
before-after
browsermob-proxy
calc
capa
charade
chem
codejail
crowdsourcehinter-xblock
django-cas
django-config-models
django-debug-toolbar-mongo
django-mako
django-memcached-hashring
django-oauth-plus
django-openid-auth
django-pipeline-forgiving
django-splash
django-wiki
djangorestframework-oauth
dm.xmlsec.binding
dogapi
dogstats-wrapper
done-xblock
ease
edx-django-oauth2-provider
edx-jsme
edx-milestones
edx-oauth2-provider
edx-opaque-keys
edx-organizations
edx-proctoring
edx-reverification-block
edx-search
edx-sga
edx-submissions
edx-user-state-client
edxval
event-tracking
fisher
futures
hash-ring
httpretty
ipaddr
lettuce
lti-consumer-xblock
meliae
mock-django
nose-exclude
nose-xunitmp
ora2
pa11ycrawler
pathtools
pdfminer
pychecker
pylint-celery
pysqlite
pysrt
python-openid
python-saml
rate-xblock
recommender-xblock
safe-lxml
sandbox-packages
slumber
symmath
unittest2
web-fragments
xblock-discussion
xblock-drag-and-drop-v2
xblock-google-drive
xblock-poll
xblock-utils


Code to parse pip show


Code Block
languagepy
themeMidnight
titleget_packages.py
linenumberstrue
collapsetrue
from cStringIO import StringIO
import subprocess


packages = set()
py3_packages = []
non_py3_packages = []

# This file was generated by running pipdeptree against the devstack virtualenv:
# https://pypi.python.org/pypi/pipdeptree
with open('all_deps.txt') as f:
    for l in f:
        left = None
        if ' [' in l:
            left = l.split(' [')
        else:
            for sep in ('==', '<=', '>='):
                if sep in l:
                    left = l.split(sep)
                    break
        package = left[0].strip(' -')
        packages.add(package.strip())

packages = sorted(packages)

for p in packages:
    output = subprocess.check_output(['pip', 'show', '-v', p])
    
    found = False
    if len(output) == 0:
        print "pip show failed! %s" % p

    for l in output.split('\n'):
        if 'Python :: 3' in l:
            found = True
            py3_packages.append(p + " " + l)

    if not found:
        non_py3_packages.append(p)


print "----------------------------------------"
print "Py3 Packages:"
print "\n".join(sorted(py3_packages))
print "----------------------------------------"
print "Non-Py3 Packages:"
print "\n".join(sorted(non_py3_packages))

...