From 0f30183605ebb1cb43de1a6b8baad5dcd754f685 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Thu, 17 Oct 2024 12:59:16 +0200 Subject: [PATCH] Improve private _nat_cmp() method * Remove obsolete else * Find a better way to identify digits without the re module * Fix docstring in compare --- src/semver/version.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/semver/version.py b/src/semver/version.py index e3b9229..2f1f8cb 100644 --- a/src/semver/version.py +++ b/src/semver/version.py @@ -149,17 +149,15 @@ def cmp_prerelease_tag(a, b): else: return _cmp(a, b) - a, b = a or "", b or "" - a_parts, b_parts = a.split("."), b.split(".") - re_digits = re.compile(r"^\d+$") - parts_a = [int(x) if re_digits.match(x) else x for x in a_parts] - parts_b = [int(x) if re_digits.match(x) else x for x in b_parts] - for sub_a, sub_b in zip(parts_a, parts_b): + a_parts = [int(x) if x.isdigit() else x for x in (a or "").split(".")] + b_parts = [int(x) if x.isdigit() else x for x in (b or "").split(".")] + + for sub_a, sub_b in zip(a_parts, b_parts): cmp_result = cmp_prerelease_tag(sub_a, sub_b) if cmp_result != 0: return cmp_result - else: - return _cmp(len(a), len(b)) + + return _cmp(len(a_parts), len(b_parts)) @property def major(self) -> int: @@ -384,13 +382,11 @@ def compare(self, other: Comparable) -> int: :return: The return value is negative if ver1 < ver2, zero if ver1 == ver2 and strictly positive if ver1 > ver2 - >>> semver.compare("2.0.0") + >>> Version.parse("1.0.0").compare("2.0.0") -1 - >>> semver.compare("1.0.0") + >>> Version.parse("2.0.0").compare("1.0.0") 1 - >>> semver.compare("2.0.0") - 0 - >>> semver.compare(dict(major=2, minor=0, patch=0)) + >>> Version.parse("2.0.0").compare("2.0.0") 0 """ cls = type(self) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy