From 03fef06c4a90d7e83956a673889787811f73bc0d Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Thu, 22 Oct 2026 01:59:52 +0100 Subject: [PATCH] Fix prerelease level type narrowing in ``bump_version.py`` (#14536) --- utils/bump_version.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/utils/bump_version.py b/utils/bump_version.py index 2bde465159..2a9e88f661 100755 --- a/utils/bump_version.py +++ b/utils/bump_version.py @@ -76,7 +76,14 @@ def parse_version(version: str) -> VersionInfo: # - "X.Y.ZrcN" -> (X, Y, Z, 'candidate', N) if matched := re.fullmatch(r'(\d+)\.(\d+)\.(\d+)(a|b|rc)(\d+)', version): major, minor, micro, level, serial = matched.groups() - return VersionInfo(int(major), int(minor), int(micro), level, int(serial)) # type: ignore[arg-type] + match level: + case 'a' | 'b' | 'rc': + return VersionInfo( + int(major), int(minor), int(micro), level, int(serial) + ) + case _: + msg = f'Unknown release level: {level}' + raise RuntimeError(msg) msg = f'Unknown version: {version}' raise RuntimeError(msg)