aboutsummaryrefslogtreecommitdiff
path: root/ouroboros/irm.py
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-03-07 22:46:56 +0100
committerDimitri Staessens <dimitri@ouroboros.rocks>2026-03-08 14:24:30 +0100
commit7d043001b956fb80116cf8eedcca1d5aaf2edbd4 (patch)
treed2f925b1f3085cabd0256949a454d15075a8dde8 /ouroboros/irm.py
parent7a4c37e8b673328dda59cec11ab9dce66c22a312 (diff)
downloadpyouroboros-0.23.0.tar.gz
pyouroboros-0.23.0.zip
build: Use git tags for versioningHEAD0.23.0master
Replace setup.py metadata with pyproject.toml and derive version from git tags with setuptools-scm. Adds git archive support for setuptools-scm version detection.
Diffstat (limited to 'ouroboros/irm.py')
-rw-r--r--ouroboros/irm.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/ouroboros/irm.py b/ouroboros/irm.py
index 1e4fc2e..5c23aaa 100644
--- a/ouroboros/irm.py
+++ b/ouroboros/irm.py
@@ -26,6 +26,30 @@ from _ouroboros_irm_cffi import ffi, lib
from ouroboros.qos import QoSSpec
+def _check_ouroboros_version():
+ ouro_major = lib.OUROBOROS_VERSION_MAJOR
+ ouro_minor = lib.OUROBOROS_VERSION_MINOR
+ try:
+ from importlib.metadata import version, PackageNotFoundError
+ try:
+ pyouro_parts = version('PyOuroboros').split('.')
+ except PackageNotFoundError:
+ return # running from source, skip check
+ if ouro_major != int(pyouro_parts[0]) or \
+ ouro_minor != int(pyouro_parts[1]):
+ raise RuntimeError(
+ f"Ouroboros version mismatch: library is "
+ f"{ouro_major}.{ouro_minor}, "
+ f"pyouroboros is "
+ f"{pyouro_parts[0]}.{pyouro_parts[1]}"
+ )
+ except ImportError:
+ pass # Python < 3.8
+
+
+_check_ouroboros_version()
+
+
# Intentionally duplicated: irm uses a separate FFI (ouroboros-irm).
def _qos_to_qosspec(qos: QoSSpec):
if qos is None: