8000 Merge pull request #445 from tomschr/improve_nat_cmp · python-semver/python-semver@8daa571 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8daa571

Browse files
authored
Merge pull request #445 from tomschr/improve_nat_cmp
Improve private _nat_cmp() method
2 parents 5dae7b6 + 0f30183 commit 8daa571

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

src/semver/version.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -149,17 +149,15 @@ def cmp_prerelease_tag(a, b):
149149
else:
150150
return _cmp(a, b)
151151

152-
a, b = a or "", b or ""
153-
a_parts, b_parts = a.split("."), b.split(".")
154-
re_digits = re.compile(r"^\d+$")
155-
parts_a = [int(x) if re_digits.match(x) else x for x in a_parts]
156-
parts_b = [int(x) if re_digits.match(x) else x for x in b_parts]
157-
for sub_a, sub_b in zip(parts_a, parts_b):
152+
a_parts = [int(x) if x.isdigit() else x for x in (a or "").split(".")]
153+
b_parts = [int(x) if x.isdigit() else x for x in (b or "").split(".")]
154+
155+
for sub_a, sub_b in zip(a_parts, b_parts):
158156
cmp_result = cmp_prerelease_tag(sub_a, sub_b)
159157
if cmp_result != 0:
160158
return cmp_result
161-
else:
162-
return _cmp(len(a), len(b))
159+
160+
return _cmp(len(a_parts), len(b_parts))
163161

164162
@property
165163
def major(self) -> int:
@@ -384,13 +382,11 @@ def compare(self, other: Comparable) -> int:
384382
:return: The return value is negative if ver1 < ver2,
385383
zero if ver1 == ver2 and strictly positive if ver1 > ver2
386384
387-
>>> semver.compare("2.0.0")
385+
>>> Version.parse("1.0.0").compare("2.0.0")
388386
-1
389-
>>> semver.compare("1.0.0")
387+
>>> Version.parse("2.0.0").compare("1.0.0")
390388
1
391-
>>> semver.compare("2.0.0")
392-
0
393-
>>> semver.compare(dict(major=2, minor=0, patch=0))
389+
>>> Version.parse("2.0.0").compare("2.0.0")
394390
0
395391
"""
396392
cls = type(self)

0 commit comments

Comments
 (0)
0