diff --git a/pyproject.toml b/pyproject.toml index d1e62d0..21180f6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,6 @@ testpaths = [ ] [tool.coverage.run] source = ["src"] -omit = ["*/version.py"] [project.optional-dependencies] testing = [ @@ -29,6 +28,3 @@ testing = [ "flake8", "mypy", ] - -#[tool.setuptools_scm] -#version_file = "src/spellbind/version.py" \ No newline at end of file diff --git a/src/spellbind/__init__.py b/src/spellbind/__init__.py index e69de29..6478680 100644 --- a/src/spellbind/__init__.py +++ b/src/spellbind/__init__.py @@ -0,0 +1,5 @@ +try: + from importlib.metadata import version + __version__ = version("spellbind") +except Exception: + __version__ = "unknown" diff --git a/tests/test_version.py b/tests/test_version.py new file mode 100644 index 0000000..13e233c --- /dev/null +++ b/tests/test_version.py @@ -0,0 +1,15 @@ +import re + +import spellbind + + +def test_version_exists(): + assert hasattr(spellbind, '__version__') + assert spellbind.__version__ is not None + + +def test_version_format(): + version = spellbind.__version__ + # Should be semver-like: 0.1.0, 0.1.0.dev1+g123abc.d20250609, etc. + pattern = r'^\d+\.\d+\.\d+(?:\.dev\d+\+g[a-f0-9]+(?:\.d\d{8})?)?$' + assert re.match(pattern, version), f"Version '{version}' doesn't match expected format"