Skip to content

Commit ed91272

Browse files
committed
Report detailed information about invalid requirements
1 parent 530df8a commit ed91272

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

news/12713.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Report informative messages about invalid requirements.

src/pip/_internal/req/constructors.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,8 @@ def parse_req_from_editable(editable_req: str) -> RequirementParts:
206206
if name is not None:
207207
try:
208208
req: Optional[Requirement] = Requirement(name)
209-
except InvalidRequirement:
210-
raise InstallationError(f"Invalid requirement: '{name}'")
209+
except InvalidRequirement as exc:
210+
raise InstallationError(f"Invalid requirement: {name!r}: {exc}")
211211
else:
212212
req = None
213213

@@ -360,7 +360,7 @@ def with_source(text: str) -> str:
360360
def _parse_req_string(req_as_string: str) -> Requirement:
361361
try:
362362
return get_requirement(req_as_string)
363-
except InvalidRequirement:
363+
except InvalidRequirement as exc:
364364
if os.path.sep in req_as_string:
365365
add_msg = "It looks like a path."
366366
add_msg += deduce_helpful_msg(req_as_string)
@@ -370,7 +370,7 @@ def _parse_req_string(req_as_string: str) -> Requirement:
370370
add_msg = "= is not a valid operator. Did you mean == ?"
371371
else:
372372
add_msg = ""
373-
msg = with_source(f"Invalid requirement: {req_as_string!r}")
373+
msg = with_source(f"Invalid requirement: {req_as_string!r}: {exc}")
374374
if add_msg:
375375
msg += f"\nHint: {add_msg}"
376376
raise InstallationError(msg)
@@ -429,8 +429,8 @@ def install_req_from_req_string(
429429
) -> InstallRequirement:
430430
try:
431431
req = get_requirement(req_string)
432-
except InvalidRequirement:
433-
raise InstallationError(f"Invalid requirement: '{req_string}'")
432+
except InvalidRequirement as exc:
433+
raise InstallationError(f"Invalid requirement: {req_string!r}: {exc}")
434434

435435
domains_not_allowed = [
436436
PyPI.file_storage_domain,

0 commit comments

Comments
 (0)