|
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