@@ -149,17 +149,15 @@ def cmp_prerelease_tag(a, b):
149
149
else :
150
150
return _cmp (a , b )
151
151
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 ):
158
156
cmp_result = cmp_prerelease_tag (sub_a , sub_b )
159
157
if cmp_result != 0 :
160
158
return cmp_result
161
- else :
162
- return _cmp (len (a ), len (b ))
159
+
160
+ return _cmp (len (a_parts ), len (b_parts ))
163
161
164
162
@property
165
163
def major (self ) -> int :
@@ -384,13 +382,11 @@ def compare(self, other: Comparable) -> int:
384
382
:return: The return value is negative if ver1 < ver2,
385
383
zero if ver1 == ver2 and strictly positive if ver1 > ver2
386
384
387
- >>> semver .compare("2.0.0")
385
+ >>> Version.parse("1.0.0") .compare("2.0.0")
388
386
-1
389
- >>> semver .compare("1.0.0")
387
+ >>> Version.parse("2.0.0") .compare("1.0.0")
390
388
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")
394
390
0
395
391
"""
396
392
cls = type (self )
0 commit comments