fix: handle non-numeric patch suffixes and support Python 3.15

This commit is contained in:
Kevin Turcios 2026-02-19 05:53:24 -05:00
parent 2cb3d51ddb
commit af3185edff

View file

@ -1,5 +1,6 @@
from __future__ import annotations
import re
import uuid
import isort
@ -29,10 +30,13 @@ def parse_python_version(version: str | None) -> tuple[int, int, int]:
split_version = version.split(".")
if len(split_version) != 3:
raise ValueError("Invalid version format")
major, minor, patch = int(split_version[0]), int(split_version[1]), int(split_version[2])
patch_str = re.match(r"\d+", split_version[2])
if not patch_str:
raise ValueError("Invalid patch version")
major, minor, patch = int(split_version[0]), int(split_version[1]), int(patch_str.group())
assert major == 3, "Only Python 3 is supported"
assert minor >= 9, "Only Python 3.9 and above is supported"
assert minor <= 14, "Unsupported Python version"
assert minor <= 15, "Unsupported Python version"
assert patch >= 0, "Only Python 3.9 and above is supported"
assert patch < 100, "Invalid version format"