Skip to content

Commit 0fe3be8

Browse files
committed
use only one version definition
1 parent c6eb4f3 commit 0fe3be8

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

sphinx_test_spec/main.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,28 @@
11
import os
2+
from importlib.metadata import PackageNotFoundError
3+
from importlib.metadata import version as package_version
24

35
from sphinx.util import logging
46

57
from sphinx_test_spec.builder import TestSpecBuilder, build_testspec_json
68
from sphinx_test_spec.domain import MESSAGE_CATALOG_NAME, TestSpecDomain
79

810
LOG = logging.getLogger(__name__)
9-
VERSION = 25.1
11+
PACKAGE_NAME = "sphinx-test-spec" # bzw. "sphinx-rst-table"
12+
13+
14+
def get_extension_version() -> str:
15+
"""Return the installed package version from package metadata.
16+
17+
The version is maintained in ``pyproject.toml`` only. When the package is
18+
installed, that value is exposed through Python package metadata and used
19+
by Sphinx in ``setup()``. The fallback is only for direct source-tree usage
20+
without an installed distribution.
21+
"""
22+
try:
23+
return package_version(PACKAGE_NAME)
24+
except PackageNotFoundError:
25+
return "0+unknown"
1026

1127

1228
def rst_testspec_jinja(app, docname, source):
@@ -40,4 +56,8 @@ def setup(app):
4056
LOG.debug(f"using locale dir {locale_dir}")
4157
app.add_message_catalog(MESSAGE_CATALOG_NAME, locale_dir)
4258

43-
return {"version": VERSION, "parallel_read_safe": True, "parallel_write_safe": True}
59+
return {
60+
"version": get_extension_version(),
61+
"parallel_read_safe": True,
62+
"parallel_write_safe": True,
63+
}

0 commit comments

Comments
 (0)