|
1 | 1 | """ |
2 | | -_version.py v1.4 |
| 2 | +_version.py v1.5 |
3 | 3 |
|
4 | 4 | Simple version string management, using a hard-coded version string |
5 | 5 | for simplicity and compatibility, while adding git info at runtime. |
@@ -47,21 +47,18 @@ def get_extended_version() -> str: |
47 | 47 | """Get an extended version string with information from git.""" |
48 | 48 | release, post, labels = get_version_info_from_git() |
49 | 49 |
|
50 | | - # Sample first 3 parts of __version__ |
51 | | - base_release = ".".join(__version__.split(".")[:3]) |
52 | | - |
53 | 50 | # Start version string (__version__ string is leading) |
54 | | - version = base_release |
| 51 | + version = base_version |
55 | 52 | tag_prefix = "#" |
56 | 53 |
|
57 | | - if release and release != base_release: |
| 54 | + if release and release != base_version: |
58 | 55 | # Can happen between bumping and tagging. And also when merging a |
59 | 56 | # version bump into a working branch, because we use --first-parent. |
60 | 57 | release2, _post, _labels = get_version_info_from_git(first_parent=False) |
61 | | - if release2 != base_release: |
| 58 | + if release2 != base_version: |
62 | 59 | warning( |
63 | 60 | f"{project_name} version from git ({release})" |
64 | | - f" and __version__ ({base_release}) don't match." |
| 61 | + f" and __version__ ({base_version}) don't match." |
65 | 62 | ) |
66 | 63 | version += "+from_tag_" + release.replace(".", "_") |
67 | 64 | tag_prefix = "." |
@@ -121,12 +118,14 @@ def get_version_info_from_git(*, first_parent: bool = True) -> str: |
121 | 118 |
|
122 | 119 |
|
123 | 120 | def version_to_tuple(v: str) -> tuple: |
124 | | - v = __version__.split("+")[0] # remove hash |
125 | | - return tuple(int(i) if i.isnumeric() else i for i in v.split(".")) |
126 | | - |
127 | | - |
128 | | -def prnt(m: str) -> None: |
129 | | - sys.stdout.write(m + "\n") |
| 121 | + parts = [] |
| 122 | + for part in v.split("."): |
| 123 | + p, _, h = part.partition("#") |
| 124 | + if p: |
| 125 | + parts.append(p) |
| 126 | + if h: |
| 127 | + parts.append("#" + h) |
| 128 | + return tuple(int(i) if i.isnumeric() else i for i in parts) |
130 | 129 |
|
131 | 130 |
|
132 | 131 | def warning(m: str) -> None: |
@@ -155,6 +154,10 @@ def warning(m: str) -> None: |
155 | 154 | import sys |
156 | 155 | import urllib.request |
157 | 156 |
|
| 157 | + def prnt(m: str) -> None: |
| 158 | + sys.stdout.write(m + "\n") |
| 159 | + sys.stdout.flush() |
| 160 | + |
158 | 161 | _, *args = sys.argv |
159 | 162 | this_file = Path(__file__) |
160 | 163 |
|
@@ -192,3 +195,4 @@ def warning(m: str) -> None: |
192 | 195 | else: |
193 | 196 | prnt(f"Unknown command for _version.py: {args[0]!r}") |
194 | 197 | prnt("Use ``python _version.py help`` to see a list of options.") |
| 198 | + sys.exit(1) |
0 commit comments