Simple API for location of distributions and requirements on PyPI
This bit of text prevents Gmane from thinking that I'm top-posting :-(
I've added a convenience function to distlib.locators called locate(), to which you pass a requirement. The returned Distribution object allows you to query its requirements. Example of usage:
from distlib.locators import locate from pprint import pprint flask = locate('flask') flask
http://pypi.python.org/packages/source/F/Flask/Flask-0.9.tar.gz]> flask.get_requirements('install') ['Werkzeug (>= 0.7)', 'Jinja2 (>= 2.4)'] reqs = flask.get_requirements('install') werkzeug, jinja2 = [locate(r) for r in reqs] werkzeug http://pypi.python.org/packages/source/W/Werkzeug/Werkzeug-0.8.3.tar.gz]> jinja2 http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.6.tar.gz]> authy = locate('authy') authy.get_requirements('install') ['httplib2 (>= 0.7, < 0.8)', 'simplejson'] reqs = authy.get_requirements('install') rds = [locate(r) for r in reqs] pprint(rds) [ http://httplib2.googlecode.com/files/httplib2-0.7.6.tar.gz]>, http://pypi.python.org/packages/source/s/simplejson/simplejson-2.6.2.tar.gz]>]
Feedback welcome. Regards, Vinay Sajip
On Thu, Oct 18, 2012 at 5:36 AM, Vinay Sajip
This bit of text prevents Gmane from thinking that I'm top-posting :-(
I've added a convenience function to distlib.locators called locate(), to which you pass a requirement. The returned Distribution object allows you to query its requirements. Example of usage:
from distlib.locators import locate from pprint import pprint flask = locate('flask') flask
http://pypi.python.org/packages/source/F/Flask/Flask-0.9.tar.gz]> flask.get_requirements('install') ['Werkzeug (>= 0.7)', 'Jinja2 (>= 2.4)'] reqs = flask.get_requirements('install') werkzeug, jinja2 = [locate(r) for r in reqs] werkzeug http://pypi.python.org/packages/source/W/Werkzeug/Werkzeug-0.8.3.tar.gz]> jinja2 http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.6.tar.gz]> authy = locate('authy') authy.get_requirements('install') ['httplib2 (>= 0.7, < 0.8)', 'simplejson'] reqs = authy.get_requirements('install') rds = [locate(r) for r in reqs] pprint(rds) [ http://httplib2.googlecode.com/files/httplib2-0.7.6.tar.gz]>, http://pypi.python.org/packages/source/s/simplejson/simplejson-2.6.2.tar.gz]>]
Rather handy.
participants (2)
-
Daniel Holth
-
Vinay Sajip