|
5 | 5 | # stdlib imports
|
6 | 6 | import sys
|
7 | 7 | import re
|
| 8 | +import os |
8 | 9 | from os.path import join as pjoin
|
9 | 10 |
|
10 | 11 | # local imports
|
@@ -48,12 +49,25 @@ def abort(error):
|
48 | 49 |
|
49 | 50 | installed_version = V(module.__version__)
|
50 | 51 |
|
51 |
| - info_file = pjoin('..', package, 'info.py') |
52 |
| - info_lines = open(info_file).readlines() |
53 |
| - source_version = '.'.join([v.split('=')[1].strip(" '\n.") |
54 |
| - for v in info_lines if re.match( |
55 |
| - '^_version_(major|minor|micro|extra)', v |
56 |
| - )]) |
| 52 | + version_file = pjoin('..', package, '_version.py') |
| 53 | + source_version = None |
| 54 | + if os.path.exists(version_file): |
| 55 | + # Versioneer |
| 56 | + from runpy import run_path |
| 57 | + try: |
| 58 | + source_version = run_path(version_file)['get_versions']()['version'] |
| 59 | + except (FileNotFoundError, KeyError): |
| 60 | + pass |
| 61 | + if source_version == '0+unknown': |
| 62 | + source_version = None |
| 63 | + if source_version is None: |
| 64 | + # Legacy fall-back |
| 65 | + info_file = pjoin('..', package, 'info.py') |
| 66 | + info_lines = open(info_file).readlines() |
| 67 | + source_version = '.'.join([v.split('=')[1].strip(" '\n.") |
| 68 | + for v in info_lines if re.match( |
| 69 | + '^_version_(major|minor|micro|extra)', v |
| 70 | + )]) |
57 | 71 | print('***', source_version)
|
58 | 72 |
|
59 | 73 | if source_version != installed_version:
|
|
0 commit comments