summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2021-09-14 23:33:11 +0200
committerRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2021-09-26 20:05:52 +0200
commit864ddaa1c8ec20afecee0409ee12da45a65cb28b (patch)
tree71a0c1c85e4ea79cc738472191c6ffaf814dcbe3 /src
parent1660900243be8f99cb62c62c0417721a128bdb46 (diff)
downloadsetuptools-scm-864ddaa1c8ec20afecee0409ee12da45a65cb28b.tar.gz
ensure write_to will not error out on invalid PRETEND_VERSION
Diffstat (limited to 'src')
-rw-r--r--src/setuptools_scm/__init__.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py
index b4f86ea..4e28809 100644
--- a/src/setuptools_scm/__init__.py
+++ b/src/setuptools_scm/__init__.py
@@ -4,6 +4,7 @@
"""
import os
import warnings
+from logging import getLogger as _get_logger
from ._version_cls import NonNormalizedVersion
from ._version_cls import Version
@@ -86,13 +87,19 @@ def dump_version(root, version, write_to, template=None):
os.path.splitext(target)[1], target
)
)
+ try:
+ parsed_version = Version(version)
+ except Exception:
- parsed_version = Version(version)
- version_fields = parsed_version.release
- if parsed_version.dev is not None:
- version_fields += (f"dev{parsed_version.dev}",)
- if parsed_version.local is not None:
- version_fields += (parsed_version.local,)
+ log = _get_logger("setuptools_scm")
+ log.exception("failed to parse version %s", version)
+ version_fields = (0, 0, 0)
+ else:
+ version_fields = parsed_version.release
+ if parsed_version.dev is not None:
+ version_fields += (f"dev{parsed_version.dev}",)
+ if parsed_version.local is not None:
+ version_fields += (parsed_version.local,)
with open(target, "w") as fp:
fp.write(template.format(version=version, version_tuple=tuple(version_fields)))