HyperIso core and Python package
This directory contains the buildable HyperIso package:
core/- C++20 backend, CMake build system, CLI and tests;pyhyperiso/- Python package wrapping the C++ backend;examples_cpp/- C++ examples built against an installed HyperIso package;examples_python/- Python examples usingpyhyperiso;pyproject.toml- Python packaging entry point based on scikit-build-core.
Build the C++ core
From the repository root:
cmake -S Hyperiso/Hyperiso/core -B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_WITH_CLI=ON
cmake --build build -j
cmake --install build --prefix "$HOME/.local"
Useful options:
| Option | Default | Purpose |
|---|---|---|
ENABLE_TESTS |
OFF |
Build CTest tests. |
BUILD_WITH_APP |
OFF |
Build development and benchmark executables. |
BUILD_WITH_CLI |
OFF |
Build the hyperiso-ui command-line executable. |
BUILD_WITH_PYTHON |
OFF |
Build the Python extension from the CMake tree. |
BUILD_WITH_MARTY |
OFF |
Enable MARTY integration. |
BUILD_WITH_SOFTSUSY |
OFF |
Enable bundled SOFTSUSY fallback; Python/C++ can also use a runtime softpoint.x path. |
ENABLE_CLANG_TIDY |
OFF |
Run clang-tidy during the build. |
ENABLE_ADDRESS_SANITIZER |
OFF |
Enable AddressSanitizer. |
ENABLE_UNDEFINED_SANITIZER |
OFF |
Enable UndefinedBehaviorSanitizer. |
Run tests
cmake -S Hyperiso/Hyperiso/core -B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DENABLE_TESTS=ON
cmake --build build -j
ctest --test-dir build --output-on-failure
Labels can be used to select a subset:
ctest --test-dir build -L common --output-on-failure
ctest --test-dir build -L database --output-on-failure
ctest --test-dir build -L statistic --output-on-failure
Heavy validation/comparison tests are opt-in:
cmake -S Hyperiso/Hyperiso/core -B build-comparison \
-DENABLE_TESTS=ON \
-DHYPERISO_BUILD_COMPARISON_TESTS=ON
Install the Python package
python -m pip install --upgrade pip
python -m pip install ./Hyperiso/Hyperiso
Editable development install:
python -m pip install -e ./Hyperiso/Hyperiso
Complete development environment:
python -m pip install -e "./Hyperiso/Hyperiso[test,dev]"
HyperIso uses pybind11; the PyPI package named pybind is unrelated.
Run Python tests:
python -m pip install -e "./Hyperiso/Hyperiso[test]"
python -m pytest Hyperiso/Hyperiso/pyhyperiso/test
Build examples against an installed package
cmake -S Hyperiso/Hyperiso/examples_cpp -B build-examples \
-G Ninja \
-DCMAKE_PREFIX_PATH="$HOME/.local"
cmake --build build-examples -j
Public interfaces
| Interface | Entry point |
|---|---|
| C++ API | headers and CMake targets exported by the C++ install. |
| Python API | pyhyperiso.Common, pyhyperiso.Core, pyhyperiso.Wilson, pyhyperiso.Observable, pyhyperiso.Statistic; pyhyperiso.Core.DatabaseWriter exports the initialized database. |
| CLI | hyperiso-ui, built with -DBUILD_WITH_CLI=ON. |
| Dash GUI | GHyperiso/HyperisoDashGUI. |
Versioning
The C++ project, Python package and release tag should use the same semantic version. For example:
CMake project version: 1.0.3
Python package version: 1.0.3
Git tag: v1.0.3
Update all version locations in the same pull request.
Metadata
Release files for pyhyperiso 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyhyperiso-1.0.3.tar.gz | 1.4 MB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyhyperiso-1.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyhyperiso-1.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyhyperiso-1.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
Total release size: 63.8 MB
Release files / pyhyperiso-1.0.3.tar.gz
| Download URL | pyhyperiso-1.0.3.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e95c05d54a218c3696ea0f9c70fa1991656a5f24d5354a0aa6dd8b2d7e0a7f87
|
|
BLAKE2b-256 checksum How to use checksums |
2aa9aaff7e0b090e1ba8438ff49ab205d14c55116b07e70e86fee1cdcf9e181d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency logRelease files / pyhyperiso-1.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyhyperiso-1.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 20.8 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
796ee42cdb53edd8170c67aa335f64ede260caebf5ad317ecfdb322c48781dff
|
|
BLAKE2b-256 checksum How to use checksums |
345ca674d7133dc4f404093f8289b724321383ebc7b354c99b3fb35e76fc88b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency logRelease files / pyhyperiso-1.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyhyperiso-1.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 20.8 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2d7cb41b42b0d3fdd632a39af37aa751db6bc5abe198729c7ba7c3edfb2eeb36
|
|
BLAKE2b-256 checksum How to use checksums |
6ce50f2cde612a54dd0f0c973818973285b39d1898536f12632d4c4b66678e47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency logRelease files / pyhyperiso-1.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyhyperiso-1.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 20.8 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e5d120a57622fc6b05b799b165a5e3ca88d7da913911d6e47ec81a26f81ab0a3
|
|
BLAKE2b-256 checksum How to use checksums |
735180c00b9866acc57ace7743e7f70596effb4330dd9e1d131790b4e4c44857
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency log