diff --git a/requirements/requirement.py b/requirements/requirement.py index 33b1ea3..cf662ce 100644 --- a/requirements/requirement.py +++ b/requirements/requirement.py @@ -49,6 +49,7 @@ class Requirement(object): * ``revision`` - a version control system specifier * ``name`` - the name of the requirement * ``uri`` - the URI if this requirement was specified by URI + * ``subdirectory`` - the subdirectory fragment of the URI * ``path`` - the local path to the requirement * ``hash_name`` - the type of hashing algorithm indicated in the line * ``hash`` - the hash value indicated by the requirement line @@ -66,6 +67,7 @@ def __init__(self, line): self.specifier = False self.vcs = None self.name = None + self.subdirectory = None self.uri = None self.path = None self.revision = None @@ -110,6 +112,7 @@ def parse_editable(cls, line): egg = fragment.get('egg') req.name, req.extras = parse_extras_require(egg) req.hash_name, req.hash = get_hash_info(fragment) + req.subdirectory = fragment.get('subdirectory') for vcs in VCS: if req.uri.startswith(vcs): req.vcs = vcs @@ -122,6 +125,7 @@ def parse_editable(cls, line): egg = fragment.get('egg') req.name, req.extras = parse_extras_require(egg) req.hash_name, req.hash = get_hash_info(fragment) + req.subdirectory = fragment.get('subdirectory') req.path = groups['path'] return req @@ -153,6 +157,7 @@ def parse_line(cls, line): egg = fragment.get('egg') req.name, req.extras = parse_extras_require(egg) req.hash_name, req.hash = get_hash_info(fragment) + req.subdirectory = fragment.get('subdirectory') for vcs in VCS: if req.uri.startswith(vcs): req.vcs = vcs @@ -164,6 +169,7 @@ def parse_line(cls, line): egg = fragment.get('egg') req.name, req.extras = parse_extras_require(egg) req.hash_name, req.hash = get_hash_info(fragment) + req.subdirectory = fragment.get('subdirectory') if groups['scheme'] == 'file': req.local_file = True elif '#egg=' in line: @@ -177,6 +183,7 @@ def parse_line(cls, line): name, extras = parse_extras_require(egg) req.name = fragment.get('egg') req.hash_name, req.hash = get_hash_info(fragment) + req.subdirectory = fragment.get('subdirectory') req.path = groups['path'] else: # This is a requirement specifier. diff --git a/tests/reqfiles/comment_2.expected b/tests/reqfiles/comment_2.expected index fb9a295..14a2aeb 100644 --- a/tests/reqfiles/comment_2.expected +++ b/tests/reqfiles/comment_2.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "req", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/crateio_requirements.expected b/tests/reqfiles/crateio_requirements.expected index 346342c..b21e08a 100644 --- a/tests/reqfiles/crateio_requirements.expected +++ b/tests/reqfiles/crateio_requirements.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "Babel", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -24,6 +25,7 @@ "local_file": false, "name": "Django", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -44,6 +46,7 @@ "local_file": false, "name": "Jinja2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -64,6 +67,7 @@ "local_file": false, "name": "MarkupSafe", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -84,6 +88,7 @@ "local_file": false, "name": "South", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -104,6 +109,7 @@ "local_file": false, "name": "amqplib", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -124,6 +130,7 @@ "local_file": false, "name": "anyjson", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -144,6 +151,7 @@ "local_file": false, "name": "bleach", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -164,6 +172,7 @@ "local_file": false, "name": "boto", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -184,6 +193,7 @@ "local_file": false, "name": "celery", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -204,6 +214,7 @@ "local_file": false, "name": "celery-haystack", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -224,6 +235,7 @@ "local_file": false, "name": "certifi", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -244,6 +256,7 @@ "local_file": false, "name": "chardet", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -264,6 +277,7 @@ "local_file": false, "name": "crate.web", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/crateio/crate.web.git", "extras": [], "vcs": "git", @@ -279,6 +293,7 @@ "local_file": false, "name": "crate.pypi", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/crateio/crate.pypi.git", "extras": [], "vcs": "git", @@ -294,6 +309,7 @@ "local_file": false, "name": "eventlet", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -314,6 +330,7 @@ "local_file": false, "name": "django-admin-tools", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -334,6 +351,7 @@ "local_file": false, "name": "django-appconf", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -354,6 +372,7 @@ "local_file": false, "name": "django-celery", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -374,6 +393,7 @@ "local_file": false, "name": "django-haystack", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/toastdriven/django-haystack.git", "extras": [], "vcs": "git", @@ -389,6 +409,7 @@ "local_file": false, "name": "django-hosts", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -409,6 +430,7 @@ "local_file": false, "name": "django-jsonfield", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -429,6 +451,7 @@ "local_file": false, "name": "django-model-utils", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -449,6 +472,7 @@ "local_file": false, "name": "django-picklefield", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -469,6 +493,7 @@ "local_file": false, "name": "django-redis-cache", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -489,6 +514,7 @@ "local_file": false, "name": "django-secure", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -509,6 +535,7 @@ "local_file": false, "name": "django-social-auth", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -529,6 +556,7 @@ "local_file": false, "name": "django-staticfiles", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -549,6 +577,7 @@ "local_file": false, "name": "django-storages", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -569,6 +598,7 @@ "local_file": false, "name": "django-tastypie", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -589,6 +619,7 @@ "local_file": false, "name": "django-user-accounts", "editable": true, + "subdirectory": null, "uri": "git://github.com/dstufft/django-user-accounts.git", "extras": [], "vcs": "git", @@ -604,6 +635,7 @@ "local_file": false, "name": "django-uuidfield", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -624,6 +656,7 @@ "local_file": false, "name": "docutils", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -644,6 +677,7 @@ "local_file": false, "name": "greenlet", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -664,6 +698,7 @@ "local_file": false, "name": "gunicorn", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -684,6 +719,7 @@ "local_file": false, "name": "html5lib", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -704,6 +740,7 @@ "local_file": false, "name": "httplib2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -724,6 +761,7 @@ "local_file": false, "name": "isoweek", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -744,6 +782,7 @@ "local_file": false, "name": "jingo", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -764,6 +803,7 @@ "local_file": false, "name": "jutils", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/dstufft/jutils.git", "extras": [], "vcs": "git", @@ -779,6 +819,7 @@ "local_file": false, "name": "kombu", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -799,6 +840,7 @@ "local_file": false, "name": "lxml", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -819,6 +861,7 @@ "local_file": false, "name": "mimeparse", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -839,6 +882,7 @@ "local_file": false, "name": "newrelic", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -859,6 +903,7 @@ "local_file": false, "name": "oauth2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -879,6 +924,7 @@ "local_file": false, "name": "oauthlib", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -899,6 +945,7 @@ "local_file": false, "name": "pinax-utils", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -919,6 +966,7 @@ "local_file": false, "name": "psycopg2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -939,6 +987,7 @@ "local_file": false, "name": "py-bcrypt", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -959,6 +1008,7 @@ "local_file": false, "name": "pyasn1", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -979,6 +1029,7 @@ "local_file": false, "name": "pyelasticsearch", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/toastdriven/pyelasticsearch.git", "extras": [], "vcs": "git", @@ -994,6 +1045,7 @@ "local_file": false, "name": "python-dateutil", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1014,6 +1066,7 @@ "local_file": false, "name": "python-openid", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1034,6 +1087,7 @@ "local_file": false, "name": "pytz", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1054,6 +1108,7 @@ "local_file": false, "name": "PyYAML", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1074,6 +1129,7 @@ "local_file": false, "name": "raven", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1094,6 +1150,7 @@ "local_file": false, "name": "redis", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1114,6 +1171,7 @@ "local_file": false, "name": "requests", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1134,6 +1192,7 @@ "local_file": false, "name": "rsa", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1154,6 +1213,7 @@ "local_file": false, "name": "saved_searches", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/toastdriven/saved_searches.git", "extras": [], "vcs": "git", @@ -1169,6 +1229,7 @@ "local_file": false, "name": "simplejson", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1189,6 +1250,7 @@ "local_file": false, "name": "slumber", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -1209,6 +1271,7 @@ "local_file": false, "name": "uuid", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/editable_1.expected b/tests/reqfiles/editable_1.expected index ac92463..c0798ab 100644 --- a/tests/reqfiles/editable_1.expected +++ b/tests/reqfiles/editable_1.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "svn+svn://svn.myproject.org/svn/MyProject", "extras": [], "vcs": "svn", @@ -19,6 +20,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -34,6 +36,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject/", "extras": [], "vcs": "hg", @@ -49,6 +52,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+lp://MyProject", "extras": [], "vcs": "bzr", diff --git a/tests/reqfiles/extras_1.expected b/tests/reqfiles/extras_1.expected index b82248b..63c72cc 100644 --- a/tests/reqfiles/extras_1.expected +++ b/tests/reqfiles/extras_1.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyPackage", "editable": false, + "subdirectory": null, "uri": null, "extras": [ "pdf" @@ -26,6 +27,7 @@ "local_file": false, "name": "Fizzy", "editable": false, + "subdirectory": null, "uri": null, "extras": [ "bar", diff --git a/tests/reqfiles/file_1.expected b/tests/reqfiles/file_1.expected index 4955af9..572c0a0 100644 --- a/tests/reqfiles/file_1.expected +++ b/tests/reqfiles/file_1.expected @@ -4,6 +4,7 @@ "local_file": true, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "file:///path/to/your/lib/project", "extras": [], "vcs": null, @@ -19,6 +20,7 @@ "local_file": true, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "file://../../lib/project", "extras": [], "vcs": null, @@ -34,6 +36,7 @@ "local_file": true, "name": "SomeOtherProject", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -46,6 +49,7 @@ }, { "editable": true, + "subdirectory": null, "extras": [], "line": "-e path/to/AnotherProject#egg=AnotherProject", "hash_name": null, diff --git a/tests/reqfiles/illustrative_requirements.expected b/tests/reqfiles/illustrative_requirements.expected index 4aa5158..421c415 100644 --- a/tests/reqfiles/illustrative_requirements.expected +++ b/tests/reqfiles/illustrative_requirements.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "requirements", "editable": true, + "subdirectory": null, "uri": "git+https://github.com/davidfischer/requirements-parser.git", "extras": [], "vcs": "git", @@ -19,6 +20,7 @@ "local_file": false, "name": "Django", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -43,6 +45,7 @@ "local_file": false, "name": "numpy", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -58,6 +61,7 @@ "local_file": false, "name": "DocParser", "editable": false, + "subdirectory": null, "uri": null, "extras": [ "pdf" diff --git a/tests/reqfiles/recursive_1.expected b/tests/reqfiles/recursive_1.expected index e0aa2b7..f3afe67 100644 --- a/tests/reqfiles/recursive_1.expected +++ b/tests/reqfiles/recursive_1.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "ipdb", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -18,6 +19,7 @@ "local_file": false, "name": "Jinja", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -32,6 +34,7 @@ "local_file": false, "name": "Django", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/recursive_2.expected b/tests/reqfiles/recursive_2.expected index c05ac53..96c21ab 100644 --- a/tests/reqfiles/recursive_2.expected +++ b/tests/reqfiles/recursive_2.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "ipdb", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -18,6 +19,7 @@ "local_file": false, "name": "Jinja", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/recursive_3.expected b/tests/reqfiles/recursive_3.expected index 4fbeedb..c6529b2 100644 --- a/tests/reqfiles/recursive_3.expected +++ b/tests/reqfiles/recursive_3.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "ipdb", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/rtfd_deploy_requirements.expected b/tests/reqfiles/rtfd_deploy_requirements.expected index 4baf585..19ac936 100644 --- a/tests/reqfiles/rtfd_deploy_requirements.expected +++ b/tests/reqfiles/rtfd_deploy_requirements.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "psycopg2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -19,6 +20,7 @@ "local_file": false, "name": "gunicorn", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -34,6 +36,7 @@ "local_file": false, "name": "pysolr", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -49,6 +52,7 @@ "local_file": false, "name": "python-memcached", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -64,6 +68,7 @@ "local_file": false, "name": "dnspython", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/rtfd_requirements.expected b/tests/reqfiles/rtfd_requirements.expected index 466c4b6..33714d5 100644 --- a/tests/reqfiles/rtfd_requirements.expected +++ b/tests/reqfiles/rtfd_requirements.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "Distutils2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -24,6 +25,7 @@ "local_file": false, "name": "Sphinx", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -44,6 +46,7 @@ "local_file": false, "name": "Unipath", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -64,6 +67,7 @@ "local_file": false, "name": "bzr", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -84,6 +88,7 @@ "local_file": false, "name": "celery-haystack", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -104,6 +109,7 @@ "local_file": false, "name": "celery", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -124,6 +130,7 @@ "local_file": false, "name": "django-celery", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -144,6 +151,7 @@ "local_file": false, "name": "django-extensions", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -164,6 +172,7 @@ "local_file": false, "name": "django-guardian", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -184,6 +193,7 @@ "local_file": false, "name": "django-kombu", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -204,6 +214,7 @@ "local_file": false, "name": "django-profiles", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -224,6 +235,7 @@ "local_file": false, "name": "django-secure", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -244,6 +256,7 @@ "local_file": false, "name": "django", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -264,6 +277,7 @@ "local_file": false, "name": "docutils", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -284,6 +298,7 @@ "local_file": false, "name": "github2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -304,6 +319,7 @@ "local_file": false, "name": "httplib2", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -324,6 +340,7 @@ "local_file": false, "name": "mercurial", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -344,6 +361,7 @@ "local_file": false, "name": "mimeparse", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -364,6 +382,7 @@ "local_file": false, "name": "redis", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -384,6 +403,7 @@ "local_file": false, "name": "simplejson", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -404,6 +424,7 @@ "local_file": false, "name": "slumber", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -424,6 +445,7 @@ "local_file": false, "name": "south", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -444,6 +466,7 @@ "local_file": false, "name": "sphinx-http-domain", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -464,6 +487,7 @@ "local_file": false, "name": "unittest-xml-reporting", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -484,6 +508,7 @@ "local_file": false, "name": "django_haystack", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/toastdriven/django-haystack", "extras": [], "vcs": "git", @@ -499,6 +524,7 @@ "local_file": false, "name": "django-filter", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/alex/django-filter.git", "extras": [], "vcs": "git", @@ -514,6 +540,7 @@ "local_file": false, "name": "django_taggit-dev", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/alex/django-taggit.git", "extras": [], "vcs": "git", @@ -529,6 +556,7 @@ "local_file": false, "name": "django_pagination-dev", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/ericflo/django-pagination.git", "extras": [], "vcs": "git", @@ -544,6 +572,7 @@ "local_file": false, "name": "django_basic_apps-dev", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/nathanborror/django-basic-apps.git", "extras": [], "vcs": "git", @@ -559,6 +588,7 @@ "local_file": false, "name": "django_registration-dev", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/nathanborror/django-registration.git", "extras": [], "vcs": "git", @@ -574,6 +604,7 @@ "local_file": false, "name": "django_tastypie-dev", "editable": false, + "subdirectory": null, "uri": "git+git://github.com/toastdriven/django-tastypie.git", "extras": [], "vcs": "git", diff --git a/tests/reqfiles/simple_1.expected b/tests/reqfiles/simple_1.expected index 9b46d70..e20b461 100644 --- a/tests/reqfiles/simple_1.expected +++ b/tests/reqfiles/simple_1.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "z3c.checkversions", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -24,6 +25,7 @@ "local_file": false, "name": "MyPackage", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -39,6 +41,7 @@ "local_file": false, "name": "Framework", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, @@ -59,6 +62,7 @@ "local_file": false, "name": "Library", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/specs_1.expected b/tests/reqfiles/specs_1.expected index c37b77b..eeccc6f 100644 --- a/tests/reqfiles/specs_1.expected +++ b/tests/reqfiles/specs_1.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "PickyThing", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/subdirectory.expected b/tests/reqfiles/subdirectory.expected new file mode 100644 index 0000000..2b7312b --- /dev/null +++ b/tests/reqfiles/subdirectory.expected @@ -0,0 +1,34 @@ +[ + { + "specifier": false, + "local_file": false, + "name": "MyProject", + "editable": true, + "subdirectory": "setup", + "uri": "git+git://git.myproject.org/MyProject", + "extras": [], + "vcs": "git", + "path": null, + "line": "-e git+git://git.myproject.org/MyProject#egg=MyProject&subdirectory=setup", + "hash_name": null, + "hash": null, + "specs": [], + "revision": null + }, + { + "specifier": false, + "local_file": false, + "name": "MyProject", + "editable": false, + "subdirectory": "setup", + "uri": "git+git://git.myproject.org/MyProject", + "extras": [], + "vcs": "git", + "path": null, + "line": "git+git://git.myproject.org/MyProject#egg=MyProject&subdirectory=setup", + "hash_name": null, + "hash": null, + "specs": [], + "revision": null + } +] diff --git a/tests/reqfiles/subdirectory.txt b/tests/reqfiles/subdirectory.txt new file mode 100644 index 0000000..4db0fd1 --- /dev/null +++ b/tests/reqfiles/subdirectory.txt @@ -0,0 +1,2 @@ +-e git+git://git.myproject.org/MyProject#egg=MyProject&subdirectory=setup +git+git://git.myproject.org/MyProject#egg=MyProject&subdirectory=setup diff --git a/tests/reqfiles/underscores.expected b/tests/reqfiles/underscores.expected index caade32..34a46e3 100644 --- a/tests/reqfiles/underscores.expected +++ b/tests/reqfiles/underscores.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "a_b", "editable": false, + "subdirectory": null, "uri": null, "extras": [], "vcs": null, diff --git a/tests/reqfiles/uri.expected b/tests/reqfiles/uri.expected index e758b5c..3d535f2 100644 --- a/tests/reqfiles/uri.expected +++ b/tests/reqfiles/uri.expected @@ -11,6 +11,7 @@ "revision": null, "specifier": false, "specs": [], + "subdirectory": null, "uri": "http://pypi.python.org/packages/source/p/pytz/pytz-2016.4.tar.gz", "vcs": null }, @@ -26,6 +27,7 @@ "revision": null, "specifier": false, "specs": [], + "subdirectory": null, "uri": "http://pypi.python.org/packages/source/f/flask/Flask-0.11.1.tar.gz", "vcs": null } diff --git a/tests/reqfiles/vcs_bzr.expected b/tests/reqfiles/vcs_bzr.expected index efad1d9..8e55b3c 100644 --- a/tests/reqfiles/vcs_bzr.expected +++ b/tests/reqfiles/vcs_bzr.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+http://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -19,6 +20,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+sftp://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -34,6 +36,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+ssh://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -49,6 +52,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+ftp://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -64,6 +68,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+https://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -79,6 +84,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "bzr+http://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -94,6 +100,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+http://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -109,6 +116,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+sftp://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -124,6 +132,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+ssh://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -139,6 +148,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+ftp://myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -154,6 +164,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+https://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", @@ -169,6 +180,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "bzr+http://bzr.myproject.org/MyProject/trunk", "extras": [], "vcs": "bzr", diff --git a/tests/reqfiles/vcs_git.expected b/tests/reqfiles/vcs_git.expected index 9f8613e..3d109ad 100644 --- a/tests/reqfiles/vcs_git.expected +++ b/tests/reqfiles/vcs_git.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git+git://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -19,6 +20,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git+https://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -34,6 +36,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git+ssh://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -49,6 +52,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -64,6 +68,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -79,6 +84,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -94,6 +100,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git+git://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -109,6 +116,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git+https://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -124,6 +132,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git+ssh://git.myproject.org/MyProject", "extras": [], "vcs": "git", @@ -139,6 +148,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -154,6 +164,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", @@ -169,6 +180,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git://git.myproject.org/MyProject.git", "extras": [], "vcs": "git", diff --git a/tests/reqfiles/vcs_git_extras_require.expected b/tests/reqfiles/vcs_git_extras_require.expected index 435d579..6f9c8d9 100644 --- a/tests/reqfiles/vcs_git_extras_require.expected +++ b/tests/reqfiles/vcs_git_extras_require.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "git+https://git.myproject.org/MyProject.git", "extras": ["security"], "vcs": "git", diff --git a/tests/reqfiles/vcs_hg.expected b/tests/reqfiles/vcs_hg.expected index faed968..b86a7bc 100644 --- a/tests/reqfiles/vcs_hg.expected +++ b/tests/reqfiles/vcs_hg.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -19,6 +20,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+https://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -34,6 +36,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+ssh://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -49,6 +52,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -64,6 +68,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -79,6 +84,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -94,6 +100,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -109,6 +116,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -124,6 +132,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+https://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -139,6 +148,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+ssh://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -154,6 +164,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -169,6 +180,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -184,6 +196,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", @@ -199,6 +212,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "hg+http://hg.myproject.org/MyProject", "extras": [], "vcs": "hg", diff --git a/tests/reqfiles/vcs_svn.expected b/tests/reqfiles/vcs_svn.expected index 84d534c..9c75a38 100644 --- a/tests/reqfiles/vcs_svn.expected +++ b/tests/reqfiles/vcs_svn.expected @@ -4,6 +4,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "svn+svn://svn.myproject.org/svn/MyProject", "extras": [], "vcs": "svn", @@ -19,6 +20,7 @@ "local_file": false, "name": "MyProject", "editable": true, + "subdirectory": null, "uri": "svn+http://svn.myproject.org/svn/MyProject/trunk", "extras": [], "vcs": "svn", @@ -34,6 +36,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "svn+svn://svn.myproject.org/svn/MyProject", "extras": [], "vcs": "svn", @@ -49,6 +52,7 @@ "local_file": false, "name": "MyProject", "editable": false, + "subdirectory": null, "uri": "svn+http://svn.myproject.org/svn/MyProject/trunk", "extras": [], "vcs": "svn",