1
+ #!/usr/bin/env python3
2
+ import importlib .util
1
3
import os
4
+ import pkgutil
2
5
import re
3
6
import runpy
4
7
import subprocess
@@ -85,10 +88,30 @@ def get_setuppy_version(rootdir):
85
88
return version , release
86
89
87
90
91
+ def get_package_version (rootdir ):
92
+ """Get version from package __init__.py."""
93
+ sys .path .insert (0 , os .path .join (rootdir ))
94
+ for modinfo in pkgutil .walk_packages (path = [rootdir ]):
95
+ if modinfo .ispkg and modinfo .name == "sphinx_multiversion" :
96
+ break
97
+ else :
98
+ raise FileNotFoundError ("package not found" )
99
+
100
+ spec = modinfo .module_finder .find_spec (modinfo .name )
101
+ mod = importlib .util .module_from_spec (spec )
102
+ spec .loader .exec_module (mod )
103
+
104
+ release = mod .__version__
105
+ version = release .rpartition ("." )[0 ]
106
+
107
+ return version , release
108
+
109
+
88
110
def main ():
89
111
rootdir = os .path .join (os .path .dirname (__file__ ), ".." )
90
112
91
113
setuppy_version , setuppy_release = get_setuppy_version (rootdir )
114
+ package_version , package_release = get_package_version (rootdir )
92
115
confpy_version , confpy_release = get_setuppy_version (rootdir )
93
116
changelog_version , changelog_release = get_setuppy_version (rootdir )
94
117
@@ -97,6 +120,7 @@ def main():
97
120
[
98
121
len (version_head ),
99
122
len (setuppy_version ),
123
+ len (package_version ),
100
124
len (confpy_version ),
101
125
len (changelog_version ),
102
126
]
@@ -107,6 +131,7 @@ def main():
107
131
[
108
132
len (release_head ),
109
133
len (setuppy_release ),
134
+ len (package_release ),
110
135
len (confpy_release ),
111
136
len (changelog_release ),
112
137
]
@@ -118,16 +143,20 @@ def main():
118
143
f" { '-' * release_width } \n "
119
144
f"setup.py { setuppy_version :>{version_width }} "
120
145
f" { setuppy_release :>{release_width }} \n "
146
+ f"sphinx_multiversion/__init__.py { package_version :>{version_width }} "
147
+ f" { package_release :>{release_width }} \n "
121
148
f"docs/conf.py { confpy_version :>{version_width }} "
122
149
f" { confpy_release :>{release_width }} \n "
123
150
f"docs/changelog.rst { changelog_version :>{version_width }} "
124
151
f" { changelog_release :>{release_width }} \n "
125
152
)
126
153
127
154
assert setuppy_version == confpy_version
155
+ assert setuppy_version == package_version
128
156
assert setuppy_version == changelog_version
129
157
130
158
assert setuppy_release == confpy_release
159
+ assert setuppy_release == package_release
131
160
assert setuppy_release == changelog_release
132
161
133
162
0 commit comments