|
1 | 1 | # scripts/bump_version.py |
2 | 2 |
|
3 | 3 | import os |
4 | | -import sys |
5 | 4 |
|
6 | 5 | VERSION_FILE = './src/PTLF/_version.py' |
7 | 6 |
|
8 | 7 | def read_version(): |
| 8 | + """Read and parse the __version__ value from the version file.""" |
9 | 9 | with open(VERSION_FILE, 'r') as f: |
10 | 10 | for line in f: |
11 | | - if line.startswith('__version__'): |
12 | | - # Extract version between quotes |
13 | | - version_str = line.split('=')[1].strip().strip('"\'') |
14 | | - break |
| 11 | + if line.strip().startswith('__version__'): |
| 12 | + parts = line.split('=', 1) |
| 13 | + if len(parts) == 2: |
| 14 | + version_str = parts[1].strip().strip('"\'') |
| 15 | + break |
15 | 16 | else: |
16 | | - raise RuntimeError("Version string not found") |
| 17 | + raise RuntimeError("Version string not found in _version.py") |
17 | 18 |
|
18 | 19 | parts = version_str.split('.') |
19 | | - if len(parts) != 3 or not all(p.isdigit() for p in parts): |
| 20 | + if not all(p.isdigit() for p in parts): |
20 | 21 | raise ValueError(f"Invalid version format: {version_str}") |
21 | 22 |
|
22 | | - return tuple(map(int, parts)) |
| 23 | + return [int(p) for p in parts] |
23 | 24 |
|
24 | 25 | def bump_patch_version(): |
25 | | - x, y, z = read_version() |
26 | | - new_version = f"{x}.{y}.{z + 1}" |
| 26 | + """Increment the last numeric part of the version.""" |
| 27 | + parts = read_version() |
| 28 | + parts[-1] += 1 # bump the last number |
| 29 | + new_version = '.'.join(map(str, parts)) |
27 | 30 |
|
28 | 31 | with open(VERSION_FILE, 'w') as f: |
29 | 32 | f.write(f"__version__ = '{new_version}'\n") |
|
0 commit comments