summaryrefslogtreecommitdiff
path: root/pkg_resources/_vendor/packaging/requirements.py
diff options
context:
space:
mode:
Diffstat (limited to 'pkg_resources/_vendor/packaging/requirements.py')
-rw-r--r--pkg_resources/_vendor/packaging/requirements.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkg_resources/_vendor/packaging/requirements.py b/pkg_resources/_vendor/packaging/requirements.py
index dc3672e7..658716c6 100644
--- a/pkg_resources/_vendor/packaging/requirements.py
+++ b/pkg_resources/_vendor/packaging/requirements.py
@@ -9,7 +9,7 @@ import re
from pkg_resources._vendor.pyparsing import stringStart, stringEnd, originalTextFor, ParseException
from pkg_resources._vendor.pyparsing import ZeroOrMore, Word, Optional, Regex, Combine
from pkg_resources._vendor.pyparsing import Literal as L # noqa
-from six.moves.urllib import parse as urlparse
+from pkg_resources._vendor.six.moves.urllib import parse as urlparse
from .markers import MARKER_EXPR, Marker
from .specifiers import LegacySpecifier, Specifier, SpecifierSet
@@ -73,6 +73,12 @@ REQUIREMENT = stringStart + NAMED_REQUIREMENT + stringEnd
class Requirement(object):
+ """Parse a requirement.
+
+ Parse a given requirement string into its parts, such as name, specifier,
+ URL, and extras. Raises InvalidRequirement on a badly-formed requirement
+ string.
+ """
# TODO: Can we test whether something is contained within a requirement?
# If so how do we do that? Do we need to test against the _name_ of
@@ -82,9 +88,10 @@ class Requirement(object):
def __init__(self, requirement_string):
try:
req = REQUIREMENT.parseString(requirement_string)
- except ParseException:
+ except ParseException as e:
raise InvalidRequirement(
- "Invalid requirement: {0!r}".format(requirement_string))
+ "Invalid requirement, parse error at \"{0!r}\"".format(
+ requirement_string[e.loc:e.loc + 8]))
self.name = req.name
if req.url: