mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 14:30:09 +01:00
misc cleanup
This commit is contained in:
parent
15c560a0c5
commit
e3067a06ea
3 changed files with 64 additions and 47 deletions
|
|
@ -146,12 +146,33 @@ def _log_no_change(subcmd: str, version_pattern: str, old_version: str) -> None:
|
|||
logger.info(f"Perhaps try: pycalver {subcmd} {available_flags_str} ")
|
||||
|
||||
|
||||
def _get_normalized_pattern(raw_pattern: str, version_pattern: typ.Optional[str]) -> str:
|
||||
is_version_pattern_required = "{version}" in raw_pattern or "{pep440_version}" in raw_pattern
|
||||
|
||||
if is_version_pattern_required and version_pattern is None:
|
||||
logger.error(
|
||||
"Argument --version-pattern=<PATTERN> is required"
|
||||
" for placeholders: {version}/{pep440_version}."
|
||||
)
|
||||
sys.exit(1)
|
||||
elif version_pattern is None:
|
||||
_version_pattern = "INVALID" # pacify mypy, it's not referenced in raw_pattern
|
||||
else:
|
||||
_version_pattern = version_pattern
|
||||
|
||||
if is_version_pattern_required:
|
||||
return v2patterns.normalize_pattern(_version_pattern, raw_pattern)
|
||||
else:
|
||||
return raw_pattern
|
||||
|
||||
|
||||
@click.group()
|
||||
@click.version_option(version="v202010.1041-beta")
|
||||
@click.help_option()
|
||||
@click.option('-v', '--verbose', count=True, help="Control log level. -vv for debug level.")
|
||||
def cli(verbose: int = 0) -> None:
|
||||
"""Automatically update PyCalVer version strings in all project files."""
|
||||
if verbose:
|
||||
_configure_logging(verbose=max(_VERBOSE, verbose))
|
||||
|
||||
|
||||
|
|
@ -171,7 +192,13 @@ def cli(verbose: int = 0) -> None:
|
|||
@click.option("--major", is_flag=True, default=False, help="Increment major component.")
|
||||
@click.option("-m" , "--minor", is_flag=True, default=False, help="Increment minor component.")
|
||||
@click.option("-p" , "--patch", is_flag=True, default=False, help="Increment patch component.")
|
||||
@click.option("-r" , "--release-num", is_flag=True, default=False, help="Increment release number.")
|
||||
@click.option(
|
||||
"-r",
|
||||
"--release-num",
|
||||
is_flag=True,
|
||||
default=False,
|
||||
help="Increment release number (rc1, rc2, rc3..).",
|
||||
)
|
||||
@click.option("--pin-date", is_flag=True, default=False, help="Leave date components unchanged.")
|
||||
@click.option(
|
||||
"--date",
|
||||
|
|
@ -193,10 +220,11 @@ def test(
|
|||
) -> None:
|
||||
"""Increment a version number for demo purposes."""
|
||||
_configure_logging(verbose=max(_VERBOSE, verbose))
|
||||
raw_pattern = pattern # use internal naming convention
|
||||
|
||||
tag = release # use internal naming convention
|
||||
_validate_release_tag(tag)
|
||||
|
||||
raw_pattern = pattern # use internal naming convention
|
||||
|
||||
_validate_flags(raw_pattern, major, minor, patch)
|
||||
_date = _validate_date(date, pin_date)
|
||||
|
||||
|
|
@ -316,24 +344,7 @@ def grep(
|
|||
_configure_logging(verbose)
|
||||
|
||||
raw_pattern = pattern # use internal naming convention
|
||||
|
||||
is_version_pattern_required = "{version}" in raw_pattern or "{pep440_version}" in raw_pattern
|
||||
|
||||
if is_version_pattern_required and version_pattern is None:
|
||||
logger.error(
|
||||
"Argument --version-pattern=<PATTERN> is required"
|
||||
" for placeholders: {version}/{pep440_version}."
|
||||
)
|
||||
sys.exit(1)
|
||||
elif version_pattern is None:
|
||||
_version_pattern = "INVALID" # pacify mypy, it's not referenced in raw_pattern
|
||||
else:
|
||||
_version_pattern = version_pattern
|
||||
|
||||
if is_version_pattern_required:
|
||||
normalized_pattern = v2patterns.normalize_pattern(_version_pattern, raw_pattern)
|
||||
else:
|
||||
normalized_pattern = raw_pattern
|
||||
normalized_pattern = _get_normalized_pattern(raw_pattern, version_pattern)
|
||||
|
||||
isatty = getattr(sys.stdout, 'isatty', lambda: False)
|
||||
|
||||
|
|
@ -630,7 +641,13 @@ def _update_cfg_from_vcs(cfg: config.Config, fetch: bool) -> config.Config:
|
|||
@click.option("--major", is_flag=True, default=False, help="Increment major component.")
|
||||
@click.option("-m", "--minor", is_flag=True, default=False, help="Increment minor component.")
|
||||
@click.option("-p", "--patch", is_flag=True, default=False, help="Increment patch component.")
|
||||
@click.option("-r", "--release-num", is_flag=True, default=False, help="Increment release number.")
|
||||
@click.option(
|
||||
"-r",
|
||||
"--release-num",
|
||||
is_flag=True,
|
||||
default=False,
|
||||
help="Increment release number (rc1, rc2, rc3..).",
|
||||
)
|
||||
@click.option("--pin-date", is_flag=True, default=False, help="Leave date components unchanged.")
|
||||
@click.option(
|
||||
"--date",
|
||||
|
|
|
|||
|
|
@ -102,20 +102,20 @@ FieldValues = typ.Dict[FieldKey, MatchGroupStr]
|
|||
VersionInfoKW = typ.Dict[str, typ.Union[str, int, None]]
|
||||
|
||||
|
||||
def _parse_calendar_info(field_values: FieldValues) -> version.V2CalendarInfo:
|
||||
def parse_field_values_to_cinfo(field_values: FieldValues) -> version.V2CalendarInfo:
|
||||
"""Parse normalized V2CalendarInfo from groups of a matched pattern.
|
||||
|
||||
>>> cinfo = _parse_version_info({'year_y': "2021", 'week_w': "02"})
|
||||
>>> cinfo = parse_field_values_to_cinfo({'year_y': "2021", 'week_w': "02"})
|
||||
>>> (cinfo.year_y, cinfo.week_w)
|
||||
(2021, 2)
|
||||
>>> cinfo = _parse_version_info({'year_y': "2021", 'week_u': "02"})
|
||||
>>> cinfo = parse_field_values_to_cinfo({'year_y': "2021", 'week_u': "02"})
|
||||
>>> (cinfo.year_y, cinfo.week_u)
|
||||
(2021, 2)
|
||||
>>> cinfo = _parse_version_info({'year_g': "2021", 'week_v': "02"})
|
||||
>>> cinfo = parse_field_values_to_cinfo({'year_g': "2021", 'week_v': "02"})
|
||||
>>> (cinfo.year_g, cinfo.week_v)
|
||||
(2021, 2)
|
||||
|
||||
>>> cinfo = _parse_version_info({'year_y': "2021", 'month': "01", 'dom': "03"})
|
||||
>>> cinfo = parse_field_values_to_cinfo({'year_y': "2021", 'month': "01", 'dom': "03"})
|
||||
>>> (cinfo.year_y, cinfo.month, cinfo.dom)
|
||||
(2021, 1, 3)
|
||||
>>> (cinfo.year_y, cinfo.week_w, cinfo.year_y, cinfo.week_u,cinfo.year_g, cinfo.week_v)
|
||||
|
|
@ -179,30 +179,30 @@ def _parse_calendar_info(field_values: FieldValues) -> version.V2CalendarInfo:
|
|||
)
|
||||
|
||||
|
||||
def _parse_version_info(field_values: FieldValues) -> version.V2VersionInfo:
|
||||
def parse_field_values_to_vinfo(field_values: FieldValues) -> version.V2VersionInfo:
|
||||
"""Parse normalized V2VersionInfo from groups of a matched pattern.
|
||||
|
||||
>>> vinfo = _parse_version_info({'year_y': "2018", 'month': "11", 'bid': "0099"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'year_y': "2018", 'month': "11", 'bid': "0099"})
|
||||
>>> (vinfo.year_y, vinfo.month, vinfo.quarter, vinfo.bid, vinfo.tag)
|
||||
(2018, 11, 4, '0099', 'final')
|
||||
|
||||
>>> vinfo = _parse_version_info({'year_y': "18", 'month': "11"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'year_y': "18", 'month': "11"})
|
||||
>>> (vinfo.year_y, vinfo.month, vinfo.quarter)
|
||||
(2018, 11, 4)
|
||||
|
||||
>>> vinfo = _parse_version_info({'year_y': "2018", 'doy': "11", 'bid': "099", 'tag': "beta"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'year_y': "2018", 'doy': "11", 'bid': "099", 'tag': "beta"})
|
||||
>>> (vinfo.year_y, vinfo.month, vinfo.dom, vinfo.doy, vinfo.bid, vinfo.tag)
|
||||
(2018, 1, 11, 11, '099', 'beta')
|
||||
|
||||
>>> vinfo = _parse_version_info({'year_y': "2018", 'month': "6", 'dom': "15"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'year_y': "2018", 'month': "6", 'dom': "15"})
|
||||
>>> (vinfo.year_y, vinfo.month, vinfo.dom, vinfo.doy)
|
||||
(2018, 6, 15, 166)
|
||||
|
||||
>>> vinfo = _parse_version_info({'major': "1", 'minor': "23", 'patch': "45"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'major': "1", 'minor': "23", 'patch': "45"})
|
||||
>>> (vinfo.major, vinfo.minor, vinfo.patch)
|
||||
(1, 23, 45)
|
||||
|
||||
>>> vinfo = _parse_version_info({'major': "1", 'minor': "023", 'patch': "0045"})
|
||||
>>> vinfo = parse_field_values_to_vinfo({'major': "1", 'minor': "023", 'patch': "0045"})
|
||||
>>> (vinfo.major, vinfo.minor, vinfo.patch, vinfo.tag)
|
||||
(1, 23, 45, 'final')
|
||||
"""
|
||||
|
|
@ -210,7 +210,7 @@ def _parse_version_info(field_values: FieldValues) -> version.V2VersionInfo:
|
|||
for key in field_values:
|
||||
assert key in VALID_FIELD_KEYS, key
|
||||
|
||||
cinfo = _parse_calendar_info(field_values)
|
||||
cinfo = parse_field_values_to_cinfo(field_values)
|
||||
|
||||
fvals = field_values
|
||||
|
||||
|
|
@ -263,19 +263,19 @@ def parse_version_info(
|
|||
|
||||
>>> vinfo = parse_version_info("v201712.0033-beta", raw_pattern="vYYYY0M.BUILD[-RELEASE]")
|
||||
>>> fvals = {'year_y': 2017, 'month': 12, 'bid': "0033", 'tag': "beta"}
|
||||
>>> assert vinfo == _parse_version_info(fvals)
|
||||
>>> assert vinfo == parse_field_values_to_vinfo(fvals)
|
||||
|
||||
>>> vinfo = parse_version_info("v201712.0033", raw_pattern="vYYYY0M.BUILD[-RELEASE]")
|
||||
>>> fvals = {'year_y': 2017, 'month': 12, 'bid': "0033"}
|
||||
>>> assert vinfo == _parse_version_info(fvals)
|
||||
>>> assert vinfo == parse_field_values_to_vinfo(fvals)
|
||||
|
||||
>>> vinfo = parse_version_info("201712.33b0", raw_pattern="YYYY0M.BLD[PYTAGNUM]")
|
||||
>>> fvals = {'year_y': 2017, 'month': 12, 'bid': "33", 'tag': "beta", 'num': 0}
|
||||
>>> assert vinfo == _parse_version_info(fvals)
|
||||
>>> assert vinfo == parse_field_values_to_vinfo(fvals)
|
||||
|
||||
>>> vinfo = parse_version_info("1.23.456", raw_pattern="MAJOR.MINOR.PATCH")
|
||||
>>> fvals = {'major': "1", 'minor': "23", 'patch': "456"}
|
||||
>>> assert vinfo == _parse_version_info(fvals)
|
||||
>>> assert vinfo == parse_field_values_to_vinfo(fvals)
|
||||
"""
|
||||
pattern = v2patterns.compile_pattern(raw_pattern)
|
||||
match = pattern.regexp.match(version_str)
|
||||
|
|
@ -293,7 +293,7 @@ def parse_version_info(
|
|||
raise version.PatternError(err_msg)
|
||||
else:
|
||||
field_values = match.groupdict()
|
||||
return _parse_version_info(field_values)
|
||||
return parse_field_values_to_vinfo(field_values)
|
||||
|
||||
|
||||
def is_valid(version_str: str, raw_pattern: str = "vYYYY0M.BUILD[-RELEASE]") -> bool:
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ def v1vnfo(**field_values):
|
|||
|
||||
|
||||
def v2vnfo(**field_values):
|
||||
return v2version._parse_version_info(field_values)
|
||||
return v2version.parse_field_values_to_vinfo(field_values)
|
||||
|
||||
|
||||
PARSE_V1_VERSION_TEST_CASES = [
|
||||
|
|
@ -214,7 +214,7 @@ def test_v1_parse_versions(pattern_str, line, expected_vinfo):
|
|||
def test_v2_parse_versions():
|
||||
_vnfo = v2version.parse_version_info("v201712.0033", raw_pattern="vYYYY0M.BUILD[-RELEASE[NUM]]")
|
||||
fvals = {'year_y': 2017, 'month': 12, 'bid': "0033"}
|
||||
assert _vnfo == v2version._parse_version_info(fvals)
|
||||
assert _vnfo == v2version.parse_field_values_to_vinfo(fvals)
|
||||
|
||||
|
||||
def test_v2_format_version():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue