Require a separator when multiple specifiers are in a requirement.
This commit is contained in:
parent
cf421d4716
commit
23a910dbc2
2 changed files with 3 additions and 2 deletions
|
@ -97,7 +97,7 @@ def extras_from_marker(marker):
|
|||
return tuple(group[0] for group in matches)
|
||||
return tuple()
|
||||
|
||||
|
||||
re_spec_part = r"( *(==|!=|>=|<=|>|<|~=|=)? *(\* |dev|-?\w?\d(\w|\.|\*|-|\||!|\+)*))"
|
||||
re_reqs = re.compile(
|
||||
r"^(?P<name>([a-z]|[A-Z]|-|_|\d|\.)+)"
|
||||
rf"(?P<extras>\[({extra_name},?)+\])?"
|
||||
|
@ -110,7 +110,7 @@ re_reqs = re.compile(
|
|||
# multiple specs
|
||||
r" *\(?(?P<specs_0>"
|
||||
r"\*"
|
||||
r"|([,\|]? *(==|!=|>=|<=|>|<|~=|=)? *(\* |dev|-?\w?\d(\w|\.|\*|-|\||!|\+)*))+(?![_\d]))\)?"
|
||||
rf"|{re_spec_part}([,\|]{re_spec_part})*(?![_\d]))\)?"
|
||||
r"(?P<build_0> *([a-z]|\d|_|\*|\.)+)?"
|
||||
r"|"
|
||||
# single spec only
|
||||
|
|
|
@ -54,6 +54,7 @@ from mach_nix.requirements import parse_reqs_line
|
|||
('zest.releaser', ('recommended', 'maintainer'), None, None, "extra == 'maintainer'"))
|
||||
, ('pytz (>dev)', ('pytz', (), ((('>', 'dev'),),), None, None))
|
||||
, ('libcurl 7.71.1 h20c2e04_1', ('libcurl', (), ((('==', '7.71.1'),),), 'h20c2e04_1', None))
|
||||
, ('ixmp ==0.1.3 1', ('ixmp', (), ((('==', '0.1.3'),),), '1', None))
|
||||
])
|
||||
def test_parse_requirements(input, exp_output):
|
||||
assert parse_reqs_line(input) == exp_output
|
||||
|
|
Loading…
Reference in a new issue