mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 14:30:09 +01:00
fix #190 - Enable multiple patterns on one line
This commit is contained in:
parent
b2c5652332
commit
7d56d7b582
2 changed files with 14 additions and 4 deletions
|
|
@ -296,11 +296,21 @@ def _replace_pattern_parts(pattern: str) -> str:
|
|||
PostitionedPart = typ.Tuple[int, int, str]
|
||||
part_patterns_by_index: typ.Dict[SortKey, PostitionedPart] = {}
|
||||
|
||||
used_fields = set()
|
||||
for part_name, part_pattern in PART_PATTERNS.items():
|
||||
start_idx = pattern.find(part_name)
|
||||
if start_idx >= 0:
|
||||
end_idx = 0
|
||||
while True:
|
||||
start_idx = pattern.find(part_name, end_idx)
|
||||
if start_idx < 0:
|
||||
break
|
||||
|
||||
field = PATTERN_PART_FIELDS[part_name]
|
||||
if field in used_fields:
|
||||
named_part_pattern = f"(?P<{field}_{len(used_fields)}>{part_pattern})"
|
||||
else:
|
||||
named_part_pattern = f"(?P<{field}>{part_pattern})"
|
||||
used_fields.add(field)
|
||||
|
||||
end_idx = start_idx + len(part_name)
|
||||
sort_key = (-end_idx, -len(part_name))
|
||||
part_patterns_by_index[sort_key] = (start_idx, end_idx, named_part_pattern)
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ def parse_field_values_to_vinfo(field_values: FieldValues) -> version.V2VersionI
|
|||
"""
|
||||
# pylint:disable=dangerous-default-value; We don't mutate args, mypy would fail if we did.
|
||||
for key in field_values:
|
||||
assert key in VALID_FIELD_KEYS, key
|
||||
assert any(key.startswith(fkey) for fkey in VALID_FIELD_KEYS), key
|
||||
|
||||
cinfo = parse_field_values_to_cinfo(field_values)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue