This commit is contained in:
Razorback 2026-03-06 06:21:23 +08:00 committed by GitHub
commit 8d7304f8b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -109,7 +109,14 @@ class StrictVersion:
self.parse_version_string() self.parse_version_string()
def parse_version_string(self): def parse_version_string(self):
parts = self.version_string.split('.') # Handle semver pre-release suffix: "1.2.3-beta.1" → core="1.2.3", pre="beta.1"
core = self.version_string
if '-' in core:
dash_pos = core.index('-')
self.pre_release = core[dash_pos + 1:]
core = core[:dash_pos]
parts = core.split('.')
if not parts: if not parts:
raise ValueError("Version string must not be empty") raise ValueError("Version string must not be empty")
@ -117,8 +124,8 @@ class StrictVersion:
self.minor = int(parts[1]) if len(parts) > 1 else 0 self.minor = int(parts[1]) if len(parts) > 1 else 0
self.patch = int(parts[2]) if len(parts) > 2 else 0 self.patch = int(parts[2]) if len(parts) > 2 else 0
# Handling pre-release versions if present # Also handle legacy 4-part dot notation: "1.2.3.beta1"
if len(parts) > 3: if self.pre_release is None and len(parts) > 3:
self.pre_release = parts[3] self.pre_release = parts[3]
def __str__(self): def __str__(self):