|
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