@@ -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