Skip to content

Commit 542bbf4

Browse files
committed
Project versioning: Provide module version via importlib.metadata
>>> import crate.client >>> crate.client.__version__ '2.0.0.post43+g7ceffbb.d20251220'
1 parent f5bb2bf commit 542bbf4

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ classifiers = [
3434
"Topic :: Database",
3535
]
3636
dependencies = [
37+
"importlib-metadata; python_version<'3.8'",
3738
"orjson>=3.11.3",
3839
"urllib3",
3940
"verlib2>=0.3.1",

src/crate/client/__init__.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,21 @@
2727
"Error",
2828
]
2929

30-
# version string read from setup.py using a regex. Take care not to break the
31-
# regex!
32-
__version__ = "2.0.0"
30+
# ruff: noqa: E402
31+
try:
32+
from importlib.metadata import PackageNotFoundError, version
33+
except (ImportError, ModuleNotFoundError): # pragma: no cover
34+
from importlib_metadata import ( # type: ignore[assignment,no-redef,unused-ignore]
35+
PackageNotFoundError,
36+
version,
37+
)
38+
39+
__appname__ = "crate"
40+
41+
try:
42+
__version__ = version(__appname__)
43+
except PackageNotFoundError: # pragma: no cover
44+
__version__ = "unknown"
3345

3446
# codeql[py/unused-global-variable]
3547
apilevel = "2.0"

0 commit comments

Comments
 (0)