Skip to content

Commit b997a48

Browse files
committed
Permit arbitrary whitespace around versions specifier in parenthesis
This is more consistent with the rest of the format which is largely whitespace agnostic.
1 parent e7ce051 commit b997a48

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packaging/_parser.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,13 @@ def _parse_extras_list(tokenizer: Tokenizer) -> List[str]:
197197

198198
def _parse_specifier(tokenizer: Tokenizer) -> str:
199199
"""
200-
specifier = LEFT_PARENTHESIS version_many RIGHT_PARENTHESIS
201-
| version_many
200+
specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
201+
| WS? version_many WS?
202202
"""
203203
with tokenizer.enclosing_tokens("LEFT_PARENTHESIS", "RIGHT_PARENTHESIS"):
204+
tokenizer.consume("WS")
204205
parsed_specifiers = _parse_version_many(tokenizer)
206+
tokenizer.consume("WS")
205207

206208
return parsed_specifiers
207209

tests/test_requirements.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@
7979
("git+https://git.example.com/MyProject.git@v1.0", ""),
8080
("git+https://git.example.com/MyProject.git@refs/pull/123/head", ""),
8181
(None, "==={ws}arbitrarystring"),
82-
(None, "(==={ws}arbitrarystring)"),
82+
(None, "({ws}==={ws}arbitrarystring{ws})"),
8383
(None, "=={ws}1.0"),
84-
(None, "(=={ws}1.0)"),
84+
(None, "({ws}=={ws}1.0{ws})"),
8585
(None, "<={ws}1!3.0.0.rc2"),
8686
(None, ">{ws}2.2{ws},{ws}<{ws}3"),
8787
(None, "(>{ws}2.2{ws},{ws}<{ws}3)"),

0 commit comments

Comments
 (0)