Hyperiso Python binding (C++ backend via pybind11)
Project description
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.2
Python package version: 1.0.2
Git tag: v1.0.2
Update all version locations in the same pull request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyhyperiso-1.0.2.tar.gz.
File metadata
- Download URL: pyhyperiso-1.0.2.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cd86846877bf7970e0aa563bcf067df7a209f0550714894192886af7f8f1e7c
|
|
| MD5 |
484f2a83ca0107cab77434ee75937d56
|
|
| BLAKE2b-256 |
0c6204751cdfff9b22e6272b87ddc3b94d4d669354e0c7ac68befad7fe063e1e
|
Provenance
The following attestation bundles were made for pyhyperiso-1.0.2.tar.gz:
Publisher:
release.yml on Hyperiso/Hyperiso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhyperiso-1.0.2.tar.gz -
Subject digest:
7cd86846877bf7970e0aa563bcf067df7a209f0550714894192886af7f8f1e7c - Sigstore transparency entry: 2192299107
- Sigstore integration time:
-
Permalink:
Hyperiso/Hyperiso@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Hyperiso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyhyperiso-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyhyperiso-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376981d4403e80b49900b7296b0659d8195d1bd4ca642ad8e7260dd52c190e36
|
|
| MD5 |
c319fd1bce73ea2cfe1221bf449cafa0
|
|
| BLAKE2b-256 |
e4256a2a88ccbf0ea31f4e310863ca95f548bf349821e6541b6e7d826bebf10f
|
Provenance
The following attestation bundles were made for pyhyperiso-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on Hyperiso/Hyperiso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhyperiso-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
376981d4403e80b49900b7296b0659d8195d1bd4ca642ad8e7260dd52c190e36 - Sigstore transparency entry: 2192299297
- Sigstore integration time:
-
Permalink:
Hyperiso/Hyperiso@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Hyperiso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyhyperiso-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyhyperiso-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5954c1aed1c469f06fc0b57192dc1601d3150b55847795940ba6e56c07c8a4d8
|
|
| MD5 |
e0eea1d85cb5f11458ad57ed079593c8
|
|
| BLAKE2b-256 |
f10d5bbeed7e0eac74a7b734f199fe41e7a16ddc506b91f7b603ed9e763a2946
|
Provenance
The following attestation bundles were made for pyhyperiso-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on Hyperiso/Hyperiso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhyperiso-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
5954c1aed1c469f06fc0b57192dc1601d3150b55847795940ba6e56c07c8a4d8 - Sigstore transparency entry: 2192299219
- Sigstore integration time:
-
Permalink:
Hyperiso/Hyperiso@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Hyperiso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyhyperiso-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyhyperiso-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3290693aa37ab6b676695371cebeca0ce5e177482e587194a9ae92d288708a8
|
|
| MD5 |
2851f391b90f7e84e8e5b2f0ee2562fc
|
|
| BLAKE2b-256 |
576af850110f134bb11865e4755743c643760985ed9c58f9925a569dd334d303
|
Provenance
The following attestation bundles were made for pyhyperiso-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on Hyperiso/Hyperiso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhyperiso-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
e3290693aa37ab6b676695371cebeca0ce5e177482e587194a9ae92d288708a8 - Sigstore transparency entry: 2192299173
- Sigstore integration time:
-
Permalink:
Hyperiso/Hyperiso@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/Hyperiso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@52dd92a37e0bd8196f174348c17fb318f6f21f65 -
Trigger Event:
push
-
Statement type: