Skip to content

Commit b5ebc85

Browse files
committed
package: Add __version__ variable to package's __init__.py
1 parent 6d9ba4d commit b5ebc85

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ repos:
2323
- commit
2424
- manual
2525
language: python
26-
files: ^(\.pre-commit/version_check\.py|setup\.py|docs/conf\.py|docs/changelog\.rst)$
26+
files: ^(\.pre-commit/version_check\.py|setup\.py|sphinx_multiversion/__init__\.py|docs/conf\.py|docs/changelog\.rst)$
2727
additional_dependencies:
2828
- sphinx

.pre-commit/version_check.py

100644100755
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
#!/usr/bin/env python3
2+
import importlib.util
13
import os
4+
import pkgutil
25
import re
36
import runpy
47
import subprocess
@@ -85,10 +88,30 @@ def get_setuppy_version(rootdir):
8588
return version, release
8689

8790

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+
88110
def main():
89111
rootdir = os.path.join(os.path.dirname(__file__), "..")
90112

91113
setuppy_version, setuppy_release = get_setuppy_version(rootdir)
114+
package_version, package_release = get_package_version(rootdir)
92115
confpy_version, confpy_release = get_setuppy_version(rootdir)
93116
changelog_version, changelog_release = get_setuppy_version(rootdir)
94117

@@ -97,6 +120,7 @@ def main():
97120
[
98121
len(version_head),
99122
len(setuppy_version),
123+
len(package_version),
100124
len(confpy_version),
101125
len(changelog_version),
102126
]
@@ -107,6 +131,7 @@ def main():
107131
[
108132
len(release_head),
109133
len(setuppy_release),
134+
len(package_release),
110135
len(confpy_release),
111136
len(changelog_release),
112137
]
@@ -118,16 +143,20 @@ def main():
118143
f" {'-' * release_width}\n"
119144
f"setup.py {setuppy_version:>{version_width}}"
120145
f" {setuppy_release:>{release_width}}\n"
146+
f"sphinx_multiversion/__init__.py {package_version:>{version_width}}"
147+
f" {package_release:>{release_width}}\n"
121148
f"docs/conf.py {confpy_version:>{version_width}}"
122149
f" {confpy_release:>{release_width}}\n"
123150
f"docs/changelog.rst {changelog_version:>{version_width}}"
124151
f" {changelog_release:>{release_width}}\n"
125152
)
126153

127154
assert setuppy_version == confpy_version
155+
assert setuppy_version == package_version
128156
assert setuppy_version == changelog_version
129157

130158
assert setuppy_release == confpy_release
159+
assert setuppy_release == package_release
131160
assert setuppy_release == changelog_release
132161

133162

sphinx_multiversion/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
from .sphinx import setup
33
from .main import main
44

5+
__version__ = "0.2.4"
6+
57
__all__ = [
68
"setup",
79
"main",

0 commit comments

Comments
 (0)