diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-06-30 18:55:39 +0200 |
|---|---|---|
| committer | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-06-30 18:57:58 +0200 |
| commit | d84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479 (patch) | |
| tree | 9ba76b58bc9a6ff9027979467b822a2b30805043 /setup.py | |
| parent | 7d043001b956fb80116cf8eedcca1d5aaf2edbd4 (diff) | |
| download | pyouroboros-d84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479.tar.gz pyouroboros-d84a1b2f9e8ccc4b19cfb90b5a11d4be2ef34479.zip | |
build: Add Pylint config
Add a PyLint section to pyproject.toml.
Diffstat (limited to 'setup.py')
| -rwxr-xr-x | setup.py | 36 |
1 files changed, 23 insertions, 13 deletions
@@ -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", ], ) |
