Parse version string into comparable tuple.
(version: str)
| 190 | |
| 191 | |
| 192 | def parse_version(version: str) -> tuple[int, ...]: |
| 193 | """Parse version string into comparable tuple.""" |
| 194 | # Handle post-releases like '0.18.0.post0' |
| 195 | version = version.replace(".post", "-post") |
| 196 | parts = [] |
| 197 | for part in version.replace("-", ".").split("."): |
| 198 | try: |
| 199 | parts.append(int(part)) |
| 200 | except ValueError: |
| 201 | continue |
| 202 | # Pad to at least 3 components |
| 203 | while len(parts) < 3: |
| 204 | parts.append(0) |
| 205 | return tuple(parts) |
| 206 | |
| 207 | |
| 208 | def version_gte(version: str, min_version: str) -> bool: |
no test coverage detected