xstrumodeler
Python bindings (Boost.Python) for the xstrucore cross-section modeler.
The repository is self-contained:
| Path | Content |
|---|---|
boost-wrap.cpp |
Boost.Python module definition (xstrumodeler) |
lib/coreobj/ |
core objects library (functions, units, keys, ...) |
lib/xstrucore/ |
structural section modeler library |
src/xstrumodeler/ |
Python package; the compiled module is installed here |
Boost 1.88 is downloaded automatically at configure time (CMake FetchContent)
and Boost.Python is compiled statically into the module, so no system Boost is
required. The wheel depends only on the C++ runtime.
Requirements
- Python >= 3.10 (with headers)
- a C++17 compiler:
- Linux: GCC or Clang (
g++) - Windows: Visual Studio 2022 Build Tools with the Desktop development with C++ workload
- Linux: GCC or Clang (
- network access on first build (≈100 MB Boost download)
CMake is provided by scikit-build-core if not installed.
Build
pip wheel . -w dist # build a wheel
pip install . # or install directly
from xstrumodeler import xstrumodeler
modeler = xstrumodeler.XStruModeler()
Faster rebuilds (development)
By default pip builds in a temporary directory, so every build downloads Boost again and recompiles everything (about a minute). To reuse a build directory, install the build tools once and disable build isolation:
pip install "scikit-build-core>=0.11" ninja
pip install --no-build-isolation . -Cbuild-dir=build/{wheel_tag}
Following builds only recompile the changed files (seconds).
Build isolation must be off: with it, pip uses a different temporary ninja
on each run and the build directory is discarded.
Offline build
Download and extract boost-1.88.0-cmake.tar.xz then:
pip wheel . -w dist -Ccmake.define.FETCHCONTENT_SOURCE_DIR_BOOST=/path/to/boost-1.88.0
Plain CMake (development)
cmake -S . -B build
cmake --build build -j
PYTHONPATH=build python -c "import xstrumodeler; print(xstrumodeler.XStruModeler())"
Here the compiled module is imported directly (import xstrumodeler),
while the installed package is from xstrumodeler import xstrumodeler.
Wheels for all Python versions (like CI)
pipx run cibuildwheel --platform linux # requires Docker
pipx run cibuildwheel --platform windows # on Windows
Wheels are written to wheelhouse/. Locally cibuildwheel uses its default
manylinux image, so Linux wheels may be tagged manylinux_2_28 instead of
the manylinux_2_34 built by CI.
Releasing
GitLab CI builds the sdist, manylinux_2_34 wheels (cp310–cp314) and Windows
wheels (cibuildwheel):
- on pushes to
masterand merge requests that change build files (sources, CMake,pyproject.toml, CI), or from Run pipeline in the GitLab UI: build only, to catch problems before a release; - on version tags: it also checks that the tag matches
versioninpyproject.tomland, if every build succeeds, uploads them all:
| Tag | Upload to |
|---|---|
vX.Y.ZrcN |
TestPyPI |
vX.Y.Z |
PyPI |
Uploads use Trusted Publishing: no token is stored in GitLab.
Release steps:
- Set
version = "X.Y.ZrcN"inpyproject.toml, commit, push, thengit tag vX.Y.ZrcN && git push origin vX.Y.ZrcN. - Check the release candidate:
pip install -i https://test.pypi.org/simple/ xstrumodeler==X.Y.ZrcN. - Set
version = "X.Y.Z"inpyproject.tomlandCITATION.cff, commit, push, thengit tag vX.Y.Z && git push origin vX.Y.Z.
A version can be uploaded only once: if a release fails after uploading, use the next rc number.
One-time setup:
- PyPI →
xstrumodeler→ Settings → Publishing → add a GitLab publisher: namespaceluigi_paone, projectxstrumodeler, pipeline file.gitlab-ci.yml, environmentpypi. - TestPyPI → Account → Publishing → add a pending publisher with the same
values, project name
xstrumodeler, environmenttestpypi. - GitLab → Settings → Repository → Protected tags:
v*, Maintainers only.
Provenance
Extracted from the exagon repository
(commit 5455d2d) with history preserved: src/app/xstrumodeler → repository
root, src/lib/coreobj and src/lib/xstrucore → lib/. The copies in
lib/ are now independent from exagon; changes are not synchronized
automatically.
License
Licensed under the Apache License, Version 2.0. Redistributions must retain the NOTICE file. If you use xstrumodeler in published work, please cite it as described in CITATION.cff.
Boost is distributed under the Boost Software License, Version 1.0.
Metadata
Release files for xstrumodeler 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xstrumodeler-0.0.4.tar.gz | 88.7 kB | Without provenance | Details for xstrumodeler-0.0.4.tar.gz |
Built distributions (wheels)
Total release size: 4.2 MB
Release files / xstrumodeler-0.0.4.tar.gz
| Download URL | xstrumodeler-0.0.4.tar.gz |
|---|---|
| Size | 88.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ea11da1b2ec4fa8faeb17b2010c28f997551f6bb0491495d6ba3a5ceec7e116
|
|
BLAKE2b-256 checksum How to use checksums |
e1dcbffc25e3d9277f63cb45831107307883a7626a7dee03e2b57754b28755c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp314-cp314-win_amd64.whl
| Download URL | xstrumodeler-0.0.4-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 275.0 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a9278a7eff73105660a03350640c8aed95d683e525311b23fb1742625e6cd630
|
|
BLAKE2b-256 checksum How to use checksums |
cde4dc2c77853ae7c5dedc85e276c5f40c4917ce278d5613da3317008892f180
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | xstrumodeler-0.0.4-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 549.1 kB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
a970f2e1b10aa2103f5e7b3980314d8664373288e5a51378da6a232cd844750d
|
|
BLAKE2b-256 checksum How to use checksums |
3a366d4b373b26f487f5e5e32c095830c01b21148ddbdc96278f19969a3a0120
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp313-cp313-win_amd64.whl
| Download URL | xstrumodeler-0.0.4-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 266.7 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6dc29be750b9aff444b4cd0f2564dfe669b83865dbad03fdc458c257fa713b6b
|
|
BLAKE2b-256 checksum How to use checksums |
309ebcb2bbb521ab1bd4551f1e0ced5455c93b25ad1937a101d6fffcfa2a4e12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | xstrumodeler-0.0.4-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 546.0 kB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
516ba2495fc8bc8c3d2b0e6fc5a8918e7c5190aadc72790c30fb1dce18d60506
|
|
BLAKE2b-256 checksum How to use checksums |
9f2d1ca449fce36b7f00e412ee33b1a77d4ae04d3780db39df90c1f5b414adf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp312-cp312-win_amd64.whl
| Download URL | xstrumodeler-0.0.4-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 266.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c25de9d02b288a27ff4bcfa7247ba337fb66a411d7c87dc72574e5cfe2f2a102
|
|
BLAKE2b-256 checksum How to use checksums |
58d12d6eabd435bba4fb931539ba8c3e88b76e60dc3fb0e17d24cbbfe2487eb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | xstrumodeler-0.0.4-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 545.9 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
e40f8eccaef8cfcc08b74e49cbe5ce65d4ffc68e9fef86135fd3de56f7c905d6
|
|
BLAKE2b-256 checksum How to use checksums |
75565dc0c130553bf124291b3b718a843b3d0c2955ad4ec6a384625e5a1669df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp311-cp311-win_amd64.whl
| Download URL | xstrumodeler-0.0.4-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 265.6 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0461730e2c0513103b8a202f20b44f792e5e0ecca18699e9511a316eac70df23
|
|
BLAKE2b-256 checksum How to use checksums |
35071079882e26f23837eb7e313e8202a601df8e13edbf7211f146125d7837c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | xstrumodeler-0.0.4-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 549.7 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
54bb68da4cc4cd2d21e2c24dda9244d2b200bbf52c1bd843836d8a8192586ab9
|
|
BLAKE2b-256 checksum How to use checksums |
ba87785f464967315da190ac6c5411afec93f9e644e2455e1a7e45af62207204
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp310-cp310-win_amd64.whl
| Download URL | xstrumodeler-0.0.4-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 265.6 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e2fb173fe1232d2d6a7dae33fa71465c8ffa872876291c86f99bae17baf98c76
|
|
BLAKE2b-256 checksum How to use checksums |
646ccef654b8f5547a13afc0c9c277ed30ad89b00d70d7652de59db05194f0c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / xstrumodeler-0.0.4-cp310-cp310-manylinux_2_34_x86_64.whl
| Download URL | xstrumodeler-0.0.4-cp310-cp310-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 550.0 kB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
f58623919556fd5dfd4b991b7c3563b5da69de1eb97b86b39921393f2d4a05a4
|
|
BLAKE2b-256 checksum How to use checksums |
21da014dece02e92dea36004254c8e7ba260387b87fad06b6af2d0f0debacb6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for xstrumodeler 0.0.4
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.