From 2fb427d0d9d9c70d08a707c6fb5bcc2ae2c4023b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Barrois?= Date: Sat, 21 Dec 2019 15:51:24 +0100 Subject: Properly coerce versions with leading zeroes. A leading zero is forbidden in the SemVer spec, but could be valid under other schemes; when coercing, it can easily be removed. Closes #89, thanks to Andrew Ni for the report. --- semantic_version/base.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'semantic_version') diff --git a/semantic_version/base.py b/semantic_version/base.py index 1b0bac5..7fd871e 100644 --- a/semantic_version/base.py +++ b/semantic_version/base.py @@ -244,6 +244,14 @@ class Version(object): while version.count('.') < 2: version += '.0' + # Strip leading zeros in components + # Version is of the form nn, nn.pp or nn.pp.qq + version = '.'.join( + # If the part was '0', we end up with an empty string. + part.lstrip('0') or '0' + for part in version.split('.') + ) + if match.end() == len(version_string): return Version(version, partial=partial) -- cgit v1.2.1