aboutsummaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-06-30 18:55:39 +0200
committerDimitri Staessens <dimitri@ouroboros.rocks>2026-06-30 18:57:58 +0200
commitd84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479 (patch)
tree9ba76b58bc9a6ff9027979467b822a2b30805043 /setup.py
parent7d043001b956fb80116cf8eedcca1d5aaf2edbd4 (diff)
downloadpyouroboros-d84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479.tar.gz
pyouroboros-d84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479.zip
build: Add Pylint config
Add a PyLint section to pyproject.toml.
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py36
1 files changed, 23 insertions, 13 deletions
diff --git a/setup.py b/setup.py
index cdf1f55..6d8d160 100755
--- a/setup.py
+++ b/setup.py
@@ -1,14 +1,25 @@
+"""Build script for the PyOuroboros CFFI extensions.
+
+Resolves the ouroboros library version via ``pkg-config`` and the
+pyouroboros source version via ``setuptools_scm``, verifies that the
+``major.minor`` halves match, and delegates the actual build to the
+CFFI builders under ``ffi/``.
+"""
+
+from __future__ import annotations
+
import subprocess
import sys
from setuptools import setup
+from setuptools_scm import get_version
-def _get_ouroboros_version():
+def _get_ouroboros_version() -> str:
try:
out = subprocess.check_output(
['pkg-config', '--modversion', 'ouroboros-dev'],
- stderr=subprocess.DEVNULL
+ stderr=subprocess.DEVNULL,
)
return out.decode().strip()
except (subprocess.CalledProcessError, FileNotFoundError):
@@ -16,25 +27,24 @@ def _get_ouroboros_version():
"Is Ouroboros installed?")
-def _check_build_version_compat():
+def _check_build_version_compat() -> None:
try:
- from setuptools_scm import get_version
- pyouro_ver = get_version(root='.', relative_to=__file__)
- except Exception:
+ pyo7s_ver = get_version(root='.', relative_to=__file__)
+ except (LookupError, OSError):
return # no SCM info, skip check
- ouro_ver = _get_ouroboros_version()
+ o7s_ver = _get_ouroboros_version()
# setuptools_scm: '0.23.1.dev3+g<hash>' or '0.23.0'
# pkg-config: '0.23.0'
# Compare major.minor only.
- ouro_parts = ouro_ver.split('.')
- pyouro_parts = pyouro_ver.split('.')
+ o7s_parts = o7s_ver.split('.')
+ pyo7s_parts = pyo7s_ver.split('.')
- if ouro_parts[0] != pyouro_parts[0] or ouro_parts[1] != pyouro_parts[1]:
+ if o7s_parts[0] != pyo7s_parts[0] or o7s_parts[1] != pyo7s_parts[1]:
sys.exit(
- f"ERROR: Version mismatch: ouroboros {ouro_ver} "
- f"vs pyouroboros {pyouro_ver} "
+ f"ERROR: Version mismatch: ouroboros {o7s_ver} "
+ f"vs pyouroboros {pyo7s_ver} "
f"(major.minor must match)"
)
@@ -44,6 +54,6 @@ _check_build_version_compat()
setup(
cffi_modules=[
"ffi/pyouroboros_build_dev.py:ffibuilder",
- "ffi/pyouroboros_build_irm.py:ffibuilder"
+ "ffi/pyouroboros_build_irm.py:ffibuilder",
],
)