From 863bc956c7f61ef0f08fa12dccb1ea888e3716e5 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Thu, 21 Feb 2019 16:30:27 +0100 Subject: [PATCH] better error reporting --- CHANGELOG.md | 5 +++-- setup.py | 2 +- src/pycalver/__main__.py | 12 ++++++++++-- src/pycalver/rewrite.py | 13 +++++++++++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb65e44..5e39da9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # Changelog for https://gitlab.com/mbarkhau/pycalver -## v201902.0023 +## v201902.0024 - - Added: Support for globs in file patterns + - Added: Support for globs in file patterns. + - Fixed: Better error reporting for invalid config. ## v201902.0020 diff --git a/setup.py b/setup.py index 105aeee..2668abd 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ setuptools.setup( author="Manuel Barkhau", author_email="mbarkhau@gmail.com", url="https://gitlab.com/mbarkhau/pycalver", - version="201902.20.post1", + version="201902.20post1", keywords="version versioning bumpversion calver", description="CalVer for python libraries.", long_description=long_description, diff --git a/src/pycalver/__main__.py b/src/pycalver/__main__.py index b226300..3f00a63 100755 --- a/src/pycalver/__main__.py +++ b/src/pycalver/__main__.py @@ -224,7 +224,11 @@ def _bump(cfg: config.Config, new_version: str, allow_dirty: bool = False) -> No if _vcs: _assert_not_dirty(_vcs, filepaths, allow_dirty) - rewrite.rewrite(new_version, cfg.file_patterns) + try: + rewrite.rewrite(new_version, cfg.file_patterns) + except ValueError as ex: + log.error(str(ex)) + sys.exit(1) if _vcs is None or not cfg.commit: return @@ -314,7 +318,11 @@ def bump( log.info(f"New Version: {new_version}") if dry or verbose >= 2: - print(rewrite.diff(new_version, cfg.file_patterns)) + try: + print(rewrite.diff(new_version, cfg.file_patterns)) + except ValueError as ex: + log.error(str(ex)) + sys.exit(1) if dry: return diff --git a/src/pycalver/rewrite.py b/src/pycalver/rewrite.py index ca5da21..a99c342 100644 --- a/src/pycalver/rewrite.py +++ b/src/pycalver/rewrite.py @@ -94,7 +94,11 @@ def _iter_file_paths( file_patterns: config.PatternsByGlob ) -> typ.Iterable[typ.Tuple[pl.Path, config.Patterns]]: for globstr, patterns in file_patterns.items(): - for file_path_str in glob.glob(globstr): + file_paths = glob.glob(globstr) + if not any(file_paths): + errmsg = f"No files found for path/glob '{globstr}'" + raise ValueError(errmsg) + for file_path_str in file_paths: file_path = pl.Path(file_path_str) yield (file_path, patterns) @@ -171,7 +175,12 @@ def diff(new_version: str, file_patterns: config.PatternsByGlob) -> str: rfd = rfd_from_content(patterns, new_version, content) rfd = rfd._replace(path=str(file_path)) - full_diff += "\n".join(diff_lines(rfd)) + "\n" + lines = diff_lines(rfd) + if len(lines) == 0: + errmsg = f"No patterns matched for '{file_path}'" + raise ValueError(errmsg) + + full_diff += "\n".join(lines) + "\n" full_diff = full_diff.rstrip("\n") return full_diff