fix #157 @gh: better error messages

This commit is contained in:
Manuel Barkhau 2021-03-18 19:41:56 +00:00
parent cfa18334c5
commit b7af1bbe55
4 changed files with 20 additions and 11 deletions

View file

@ -125,9 +125,6 @@ def _validate_flags(
def _log_no_change(subcmd: str, version_pattern: str, old_version: str) -> None:
msg = f"Invalid version '{old_version}' and/or pattern '{version_pattern}'."
logger.error(msg)
is_semver = "{semver}" in version_pattern or (
"MAJOR" in version_pattern and "MAJOR" in version_pattern and "PATCH" in version_pattern
)
@ -541,7 +538,7 @@ def incr_dispatch(
logger.info("regex = " + regexfmt.pyexpr_regex(pattern.regexp.pattern))
if has_v1_part:
new_version = v1version.incr(
return v1version.incr(
old_version,
raw_pattern=raw_pattern,
major=major,
@ -553,7 +550,7 @@ def incr_dispatch(
date=date,
)
else:
new_version = v2version.incr(
return v2version.incr(
old_version,
raw_pattern=raw_pattern,
major=major,
@ -565,8 +562,6 @@ def incr_dispatch(
date=date,
)
return new_version
def _update(
cfg : config.Config,
@ -715,7 +710,7 @@ def update(
_, cfg = config.init(project_path=".")
if cfg is None:
logger.error("Could not parse configuration. Perhaps try 'bumpver init'.")
logger.error("Could not parse configuration.")
sys.exit(1)
cfg = _update_cfg_from_vcs(cfg, fetch)

View file

@ -211,6 +211,7 @@ def _parse_cfg(cfg_buffer: typ.IO[str]) -> RawConfig:
elif cfg_parser.has_section("bumpver"):
raw_cfg = dict(cfg_parser.items("bumpver"))
else:
logger.warning("Perhaps try 'bumpver init'.")
raise ValueError("Missing [bumpver] section.")
for option, default_val in BOOL_OPTIONS.items():
@ -286,6 +287,21 @@ def _compile_v2_file_patterns(raw_cfg: RawConfig) -> typ.Iterable[FilePatternsIt
raw_patterns_by_file: RawPatternsByFile = raw_cfg['file_patterns']
for filepath, raw_patterns in _iter_glob_expanded_file_patterns(raw_patterns_by_file):
for raw_pattern in raw_patterns:
if raw_pattern.startswith("["):
errmsg = (
f"Invalid pattern {raw_pattern} for {filepath}. "
+ "Character not valid in this position '[' "
)
raise ValueError(errmsg)
# provoke error for specifc pattern
try:
v2patterns.compile_pattern(version_pattern, raw_pattern)
except re.error:
logger.warning(f"Invalid patterns for {filepath} ({raw_pattern})")
raise
compiled_patterns = v2patterns.compile_patterns(version_pattern, raw_patterns)
yield filepath, compiled_patterns

View file

@ -31,14 +31,11 @@
import re
import typing as typ
import logging
from . import utils
from .patterns import RE_PATTERN_ESCAPES
from .patterns import Pattern
logger = logging.getLogger("bumpver.v2patterns")
# NOTE (mb 2020-09-17): For patterns with different options '(AAA|BB|C)', the
# patterns with more digits should be first/left of those with fewer digits:
#

View file

@ -743,6 +743,7 @@ def incr(
try:
old_vinfo = parse_version_info(old_version, raw_pattern)
except version.PatternError as ex:
logger.error(f"Invalid version '{old_version}' and/or pattern '{raw_pattern}'")
logger.error(str(ex))
return None