Skip to main content

parosol-py icon

parosol-py

parosol-py is the Python package and runtime wrapper for the ParOSol micro-FE solver. It provides Python helpers for creating solver inputs, running the bundled native executable, reading outputs, and mapping label or density images to material stiffness.

Author: Matthias Walle.

The bundled native ParOSol solver was written by Cyril Flaig and is distributed under the GNU General Public License, version 2 or later. The Python package is therefore distributed as GPL-2.0-or-later.

Install

Prebuilt wheels include the native ParOSol executable and the platform MPI runtime needed to launch multi-process solves:

python -m pip install parosol-py

For local development:

python -m pip install -e .[dev]

Source installs require CMake, an MPI C++ compiler/runtime, HDF5 C++ libraries, and Eigen headers. Release wheels are built for Python 3.11, 3.12, and 3.13. macOS wheels currently target macOS 15 or newer.

Bundled MPI runtimes remain under their own upstream licenses and notices. Windows wheels bundle Microsoft MPI runtime files under Microsoft/MIT terms. macOS and Linux wheels bundle OpenMPI runtime files under OpenMPI's BSD-style terms. These MPI runtime files are not relicensed as GPL by parosol-py.

Local Check

Before relying on GitHub Actions, run the local verification gate from an environment that has the native build tools:

python scripts/local_check.py

Add --smoke-install to install the built wheel into a temporary virtual environment and import it.

Workflows And Cases

ParOSol-py separates reusable recipes from concrete runs:

  • A workflow/profile recipe is a reusable .parosol-workflow or future .parosol-profile file. SlicerParOSol creates and edits these recipes.
  • A ParOSol case is one materialized run. Shortcut commands write a parosol_case.yaml file with concrete input, output, solver, material, boundary-condition, and postprocessing settings.
  • A .parosol bundle is a portable case bundle for solving the same case on another machine.

Built-in reusable workflows are selected by name:

parosol distal-radius.AIM --profile XtremeCTII --output outputs/distal-radius

parosol 10001_QCT.nii.gz \
  --mask 10001_SEG.nii.gz \
  --profile spine-compression \
  --output outputs/10001_spine

parosol 10001_QCT.nii.gz \
  --mask 10001_SEG.nii.gz \
  --profile hip-sideways-fall-left \
  --output outputs/10001_hip_left

Slicer-authored workflows can be replayed headlessly:

parosol new_scan.nii.gz \
  --mask new_mask.nii.gz \
  --profile interactive_custom \
  --template my_workflow.parosol-workflow \
  --output outputs/new_scan

To run a fully materialized case directly:

parosol run outputs/10001_spine/parosol_case.yaml

Python API

import numpy as np

from parosol_py import solve

material = np.ones((10, 10, 10), dtype=np.float32) * 1000.0

result = solve(
    material=material,
    spacing=(0.061, 0.061, 0.061),
    material_unit="MPa",
    test="axial",
    test_axis="z",
    strain=-0.01,
    outputs=("sed",),
    export_dir="outputs/example",
)

print(result.summary)
print(result.exported)

Use dry_run=True to write the ParOSol HDF5 input and command without launching the solver:

result = solve(
    material=material,
    spacing=(0.061, 0.061, 0.061),
    material_unit="MPa",
    test="axial",
    test_axis="z",
    strain=-0.01,
    dry_run=True,
    export_dir="outputs/dry_run",
)

Material Mapping

Label images can be mapped through an explicit material table:

import numpy as np

from parosol_py import LinearIsotropicMaterials, labels_to_material_map

labels = np.array([[[100, 127]]], dtype=np.uint16)
table = LinearIsotropicMaterials(
    youngs_modulus_mpa={100: 8748.0, 127: 8748.0},
    poisson_ratio={100: 0.3, 127: 0.3},
)

mapped = labels_to_material_map(labels, table)

Continuous density images can be converted with one of the supported equations:

from parosol_py import density_to_material_map

mapped = density_to_material_map(
    density_image,
    equation="power",
    coefficient=10000.0,
    exponent=1.7,
    reference_density=1000.0,
    poisson_ratio=0.3,
)

The Mulder grayscale BMD law is available as mulder2007:

mapped = density_to_material_map(
    density_image,
    equation="mulder2007",
    active_mask=outer_contour,
    floor_e_mpa=2.0,
    poisson_ratio=0.3,
)

Release files for parosol-py 0.1.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for parosol-py 0.1.25
File Size Uploaded
parosol_py-0.1.25.tar.gz 28.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for parosol-py 0.1.25
File
parosol_py-0.1.25-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
parosol_py-0.1.25-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
parosol_py-0.1.25-cp314-cp314-macosx_15_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 15.0+ x86-64 Details
parosol_py-0.1.25-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
parosol_py-0.1.25-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
parosol_py-0.1.25-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
parosol_py-0.1.25-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
parosol_py-0.1.25-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
parosol_py-0.1.25-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
parosol_py-0.1.25-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
parosol_py-0.1.25-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
parosol_py-0.1.25-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
parosol_py-0.1.25-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
parosol_py-0.1.25-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
parosol_py-0.1.25-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
parosol_py-0.1.25-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details

Total release size: 224.5 MB

Release files / parosol_py-0.1.25.tar.gz

Download URL parosol_py-0.1.25.tar.gz
Size 28.4 MB
Tags Source
SHA-256 checksum
How to use checksums
d28c0407f4f32b32db78c7e102a8a6c490d16829b42116652d607fe365601f01
BLAKE2b-256 checksum
How to use checksums
ebb4892f20f78cccca86137656e36b9f6591cfefeaa91a820a2ccef299b25f48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp314-cp314-win_amd64.whl

Download URL parosol_py-0.1.25-cp314-cp314-win_amd64.whl
Size 5.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f405ee32542643cfc63a611487695a4a5f1b8235f499fd3e4b77c808c1676061
BLAKE2b-256 checksum
How to use checksums
4de184455c788e2e82f5b6af524a27d13a206391ed51973236c56536b95f29cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL parosol_py-0.1.25-cp314-cp314-manylinux_2_28_x86_64.whl
Size 22.3 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c938d39f84b6b20bf5fbc7e890372a9a7cf64d26116e5c4d66ddd1718ec16c0b
BLAKE2b-256 checksum
How to use checksums
0b4ae150e3b2afa7cca502dbf5825f95ed389db3c885f662b9576e97bb9ab20c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp314-cp314-macosx_15_0_x86_64.whl

Download URL parosol_py-0.1.25-cp314-cp314-macosx_15_0_x86_64.whl
Size 11.4 MB
Tags CPython 3.14 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
f3e15107b54f17f5ee6fd497eaf60a41ffdfd4002f475e22fe01eb52c9fc951e
BLAKE2b-256 checksum
How to use checksums
1bef958c90526c2e701f03a282506708bb0b41209b85cfa6f37fa5ff354cb4b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp314-cp314-macosx_15_0_arm64.whl

Download URL parosol_py-0.1.25-cp314-cp314-macosx_15_0_arm64.whl
Size 10.1 MB
Tags CPython 3.14 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
57615e8f48ee3b98a7daf341e3067b2ca119f9d08b0231211d8941ddfefda533
BLAKE2b-256 checksum
How to use checksums
c36112e04d2da1025889fe9a0deda3e991de2e62ee994c44e924fd0fbb137560
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp313-cp313-win_amd64.whl

Download URL parosol_py-0.1.25-cp313-cp313-win_amd64.whl
Size 5.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
97da9ff59a0dbe1b99237902ef74045ca5da5867b5194ca0860141363ab0e43b
BLAKE2b-256 checksum
How to use checksums
85c5429550803b936e0d26abe73c8d8176537a2bd94db6023ba43cdf7dfeec2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL parosol_py-0.1.25-cp313-cp313-manylinux_2_28_x86_64.whl
Size 22.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
55e26e60482399a11f399ad9a9b977b4fc0ff4bbf68712ad112283e5f67c9fe8
BLAKE2b-256 checksum
How to use checksums
42ddd81e6968274f65509e7fb0133160d9d86779933f910e731670ec1cd3f479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp313-cp313-macosx_15_0_x86_64.whl

Download URL parosol_py-0.1.25-cp313-cp313-macosx_15_0_x86_64.whl
Size 11.4 MB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
94db4b85db70de7c08e55c9236ca41543b54f50f1a4b27a237d1d14b62db58c6
BLAKE2b-256 checksum
How to use checksums
a17b08300ac8b8c6767edb958ec3d93b98859b493818aebebad697562e2f7a7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp313-cp313-macosx_15_0_arm64.whl

Download URL parosol_py-0.1.25-cp313-cp313-macosx_15_0_arm64.whl
Size 10.1 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
e9895226b23ba0383eb8b7aa5024d64b0a8ef2902a0c0a6625bc9979a15fc5e3
BLAKE2b-256 checksum
How to use checksums
27a538663eaaccd3f07b797055fb6e5be29a9310640f82fb6f6a6bddf31e4aa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp312-cp312-win_amd64.whl

Download URL parosol_py-0.1.25-cp312-cp312-win_amd64.whl
Size 5.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ccf09824ea5d526a70ffdb2326e166fab75e5bfb4871a3b81c2199d336b29ee4
BLAKE2b-256 checksum
How to use checksums
9ad4570f18cc6e45e52688352acffd1bf5db7fd79c7a741c23a29cbfcbdb46e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL parosol_py-0.1.25-cp312-cp312-manylinux_2_28_x86_64.whl
Size 22.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2dfdec4cd18987a005931f73810622c677ae6233138490ee0ce1f80ce909c3a1
BLAKE2b-256 checksum
How to use checksums
a4b4a18fe6ce106414696a32c9852744fa007a09362cbf40ccac2f1984885885
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp312-cp312-macosx_15_0_x86_64.whl

Download URL parosol_py-0.1.25-cp312-cp312-macosx_15_0_x86_64.whl
Size 11.4 MB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
ddf50e2c5e22b7da6ce0708802eb1a55d51da3c0de0c60e3a2e6a5be4e71cf97
BLAKE2b-256 checksum
How to use checksums
d609c3b4281174a2fd35581fce342cdf8c212a385bd6450fb737448df7f75f35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp312-cp312-macosx_15_0_arm64.whl

Download URL parosol_py-0.1.25-cp312-cp312-macosx_15_0_arm64.whl
Size 10.1 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
7fc5dc6ce07e00abbf853eafc8caa11baee87408420f557eb3b1cb0f0597d015
BLAKE2b-256 checksum
How to use checksums
a9b774af009731f759aec2c4ad99887d5de4a12cc9c86c42d59e64eca03e68a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp311-cp311-win_amd64.whl

Download URL parosol_py-0.1.25-cp311-cp311-win_amd64.whl
Size 5.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6b27b5e6a0befd02d5f4395307023b8282117fc513fd8f2c10de298f66e00da0
BLAKE2b-256 checksum
How to use checksums
9dc6972884086bb2aa256b671472a9dcd9dd5373d35c1fcdf60d4ab14bf57920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL parosol_py-0.1.25-cp311-cp311-manylinux_2_28_x86_64.whl
Size 22.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eec6a72c550729ee9cd5a64a5793bd3369ad52ce564fec8947c212f8b2371ebf
BLAKE2b-256 checksum
How to use checksums
8b94ffd9eab1f5fc606e921b36d5de52f9e995d9b7d3012322de7f9f32dd07d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp311-cp311-macosx_15_0_x86_64.whl

Download URL parosol_py-0.1.25-cp311-cp311-macosx_15_0_x86_64.whl
Size 11.4 MB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
dbc24ae846940826e68f554402283939a43b40a8cef551ba1fa84243604ca566
BLAKE2b-256 checksum
How to use checksums
d1eef17bb704c1496538bcfb45ec2255eb08b50bfdc95b63490052f64760ec72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log

Release files / parosol_py-0.1.25-cp311-cp311-macosx_15_0_arm64.whl

Download URL parosol_py-0.1.25-cp311-cp311-macosx_15_0_arm64.whl
Size 10.1 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
e24539ebf5e60371230df3d854d2333e91796c9b00f3414972a60ffd4c4a6036
BLAKE2b-256 checksum
How to use checksums
e700b6afb02b193940994ec1907e24b453be6febab1a0e961e719348e7a4f7d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 24, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page