mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 06:20:08 +01:00
add week pattern validation
This commit is contained in:
parent
ec4d051e7c
commit
fb2f3f11fd
2 changed files with 26 additions and 0 deletions
|
|
@ -269,6 +269,8 @@ def _parse_config(raw_cfg: RawConfig) -> Config:
|
|||
f"Invalid character(s) '{invalid_chars.group(1)}'"
|
||||
f" in pycalver.version_pattern = {raw_cfg['version_pattern']}"
|
||||
)
|
||||
if not v2version.is_valid_week_pattern(version_pattern):
|
||||
raise ValueError(f"Invalid week number pattern: {version_pattern}")
|
||||
|
||||
# TODO (mb 2020-09-18): Validate Pattern
|
||||
# detect YY with WW or UU -> suggest GG with VV
|
||||
|
|
|
|||
|
|
@ -575,6 +575,27 @@ def _incr_numeric(
|
|||
return vinfo
|
||||
|
||||
|
||||
def is_valid_week_pattern(raw_pattern) -> bool:
|
||||
has_yy_part = any(part in raw_pattern for part in ["YYYY", "YY", "0Y"])
|
||||
has_ww_part = any(part in raw_pattern for part in ["WW" , "0W", "UU", "0U"])
|
||||
has_gg_part = any(part in raw_pattern for part in ["GGGG", "GG", "0G"])
|
||||
has_vv_part = any(part in raw_pattern for part in ["VV" , "0V"])
|
||||
if not ((has_yy_part or has_gg_part) and (has_ww_part or has_vv_part)):
|
||||
return True
|
||||
elif has_yy_part and has_vv_part:
|
||||
alt1 = raw_pattern.replace("V", "W")
|
||||
alt2 = raw_pattern.replace("Y", "G")
|
||||
logger.error(f"Invalid pattern: '{raw_pattern}'. Maybe try {alt1} or {alt2}")
|
||||
return False
|
||||
elif has_gg_part and has_ww_part:
|
||||
alt1 = raw_pattern.replace("W", "V").replace("U", "V")
|
||||
alt2 = raw_pattern.replace("G", "Y")
|
||||
logger.error(f"Invalid pattern: '{raw_pattern}'. Maybe try {alt1} or {alt2}")
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def incr(
|
||||
old_version: str,
|
||||
raw_pattern: str = "vYYYY0M.BUILD[-RELEASE[NUM]]",
|
||||
|
|
@ -591,6 +612,9 @@ def incr(
|
|||
|
||||
'old_version' is assumed to be a string that matches 'raw_pattern'
|
||||
"""
|
||||
if not is_valid_week_pattern(raw_pattern):
|
||||
return None
|
||||
|
||||
try:
|
||||
old_vinfo = parse_version_info(old_version, raw_pattern)
|
||||
except version.PatternError as ex:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue