|
287 | 287 | import re
|
288 | 288 | import subprocess
|
289 | 289 | import sys
|
| 290 | +import runpy |
290 | 291 |
|
291 | 292 |
|
292 | 293 | class VersioneerConfig:
|
@@ -435,6 +436,7 @@ def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
|
435 | 436 | import re
|
436 | 437 | import subprocess
|
437 | 438 | import sys
|
| 439 | +import runpy |
438 | 440 |
|
439 | 441 |
|
440 | 442 | def get_keywords():
|
@@ -575,6 +577,11 @@ def git_get_keywords(versionfile_abs):
|
575 | 577 | f.close()
|
576 | 578 | except EnvironmentError:
|
577 | 579 | pass
|
| 580 | + try: |
| 581 | + rel = runpy.run_path(os.path.join(os.path.dirname(versionfile_abs), "info.py")) |
| 582 | + keywords["fallback"] = rel["VERSION"] |
| 583 | + except (FileNotFoundError, KeyError): |
| 584 | + pass |
578 | 585 | return keywords
|
579 | 586 |
|
580 | 587 |
|
@@ -625,10 +632,10 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose):
|
625 | 632 | "full-revisionid": keywords["full"].strip(),
|
626 | 633 | "dirty": False, "error": None,
|
627 | 634 | "date": date}
|
628 |
| - # no suitable tags, so version is "0+unknown", but full hex is still there |
| 635 | + # no suitable tags, so inspect ./info.py |
629 | 636 | if verbose:
|
630 |
| - print("no suitable tags, using unknown + full revision id") |
631 |
| - return {"version": "0+unknown", |
| 637 | + print("no suitable tags, falling back to info.VERSION or 0+unknown") |
| 638 | + return {"version": keywords.get("fallback", "0+unknown"), |
632 | 639 | "full-revisionid": keywords["full"].strip(),
|
633 | 640 | "dirty": False, "error": "no suitable tags", "date": None}
|
634 | 641 |
|
@@ -967,6 +974,11 @@ def git_get_keywords(versionfile_abs):
|
967 | 974 | f.close()
|
968 | 975 | except EnvironmentError:
|
969 | 976 | pass
|
| 977 | + try: |
| 978 | + rel = runpy.run_path(os.path.join(os.path.dirname(versionfile_abs), "info.py")) |
| 979 | + keywords["fallback"] = rel["VERSION"] |
| 980 | + except (FileNotFoundError, KeyError): |
| 981 | + pass |
970 | 982 | return keywords
|
971 | 983 |
|
972 | 984 |
|
@@ -1017,10 +1029,10 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose):
|
1017 | 1029 | "full-revisionid": keywords["full"].strip(),
|
1018 | 1030 | "dirty": False, "error": None,
|
1019 | 1031 | "date": date}
|
1020 |
| - # no suitable tags, so version is "0+unknown", but full hex is still there |
| 1032 | + # no suitable tags, so inspect ./info.py |
1021 | 1033 | if verbose:
|
1022 |
| - print("no suitable tags, using unknown + full revision id") |
1023 |
| - return {"version": "0+unknown", |
| 1034 | + print("no suitable tags, falling back to info.VERSION or 0+unknown") |
| 1035 | + return {"version": keywords.get("fallback", "0+unknown"), |
1024 | 1036 | "full-revisionid": keywords["full"].strip(),
|
1025 | 1037 | "dirty": False, "error": "no suitable tags", "date": None}
|
1026 | 1038 |
|
|
0 commit comments