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,
)

Metadata

Release files for parosol-py 0.1.26

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.26
File Size Uploaded
parosol_py-0.1.26.tar.gz 28.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for parosol-py 0.1.26
File
parosol_py-0.1.26-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
parosol_py-0.1.26-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.26-cp314-cp314-macosx_15_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 15.0+ x86-64 Details
parosol_py-0.1.26-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
parosol_py-0.1.26-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
parosol_py-0.1.26-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.26-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
parosol_py-0.1.26-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
parosol_py-0.1.26-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
parosol_py-0.1.26-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.26-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
parosol_py-0.1.26-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
parosol_py-0.1.26-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
parosol_py-0.1.26-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.26-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
parosol_py-0.1.26-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details

Total release size: 224.6 MB

Release files / parosol_py-0.1.26.tar.gz

Download URL parosol_py-0.1.26.tar.gz
Size 28.4 MB
Tags Source
SHA-256 checksum
How to use checksums
534e98aef6a2d16c5bf4748d00b207dfa7add6c977f823bb1d21de2f70d172bd
BLAKE2b-256 checksum
How to use checksums
42f934d2cfa9d5451d397c415a1afa23d334eabcf50ed3f88b7aa6e2340d0b37
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-cp314-cp314-win_amd64.whl
Size 5.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
799370fb2b2c53051455745fb70049b6d019b9d37635814f499b80eea41b4cb8
BLAKE2b-256 checksum
How to use checksums
258a37fca038cd852c9ae18ceffdf1b0bced7d063c1ed6970a42137585bc792e
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
c30dcdcce3644654bbcb13af73909d0a93ec762bffd490ddafc775612c3b38eb
BLAKE2b-256 checksum
How to use checksums
c8e4f9e00a3509d878f38c82043bfeb81a32c416d6147fe32ed8a92b485a8918
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
7e0b78c45e3d346ea5db25a1cb4c137167ce07c57ba64801bf1b9b55aabe7fbf
BLAKE2b-256 checksum
How to use checksums
3b904863bf5b32bde095e63bfd5812cbe95b0f1bfcd27e418ffc1669ce981df7
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
3797e49032b4eb5dd1fb5a3a2ceccea00de40b1a59ee382d61e7ebc519aeda1c
BLAKE2b-256 checksum
How to use checksums
2f50f441097b0233f9e9cf03a38a171b31c7e1db044a41ddcf08b916a472ca08
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-cp313-cp313-win_amd64.whl
Size 5.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0f4a649fe5f5eb662d606f9dd79508583f5f11e3637b32aa4748e1ad3621ecf0
BLAKE2b-256 checksum
How to use checksums
fc213848b6e576c5cafa8770e89b8f2b5aec09e49fc3c9f7e558cbcbbf3e8379
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
5f005d1288d1e056fd0f09da5416a0c53474bf33b3346c5f06e18b30cc29fd4a
BLAKE2b-256 checksum
How to use checksums
352e023dec2a5a19ff704ee7b7b510a0a6dcc47cd8dd8871e90cdd81dd4def56
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
fb6667a7ac0616a30029ab88297d6e1359a0f64fdf3d058ceff46e9f7927b3f7
BLAKE2b-256 checksum
How to use checksums
89334fe4ce21c9481160daccbf3447d889163749ac0e91ac27452115e800a3ce
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
2fd37c16547183ff2a84065edf80f7f962ff2ca2e4a6430173145ae0b9f8cb50
BLAKE2b-256 checksum
How to use checksums
cf4d0fdf5bb105d8123f4f07b17f6f21a61fc82547091444b6ef2fc9e830b027
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-cp312-cp312-win_amd64.whl
Size 5.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b18b5f899e56664c553dfc356a2170b0de95d5a1dbb4dd69d0cd36db4bf97618
BLAKE2b-256 checksum
How to use checksums
301c33552e8e1062c0e7d2497508c273aedb801f1e6a5afcee320e515da137b4
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
4bf80f71b48ced991ce089f11b67181455cc65713bf13a4db9c2c0deab3ac111
BLAKE2b-256 checksum
How to use checksums
f56124407a74fe32ba739b9845ce72d4778d7a8516df76eaccec5287e6b52091
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
14c614400eb5c3c4551e247a8b7d870e6d235f441ff63ea52e1c4b9b29f7638b
BLAKE2b-256 checksum
How to use checksums
3902ef1b70d34e1f99b21ab6712c78c5b95ff85a47775903a03213028eb38fb4
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
ad728c24c541b007db180ded797868219f090ad0dff966a0bf38e795fab9e66e
BLAKE2b-256 checksum
How to use checksums
a4c7a64bc1dea933f7a2020251e9a65050ed60affcb14492fa89651ae4158597
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-cp311-cp311-win_amd64.whl
Size 5.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ba5f8258583307fdc9001c7ed15f285cb4ff121e6476122a6bbf137bc894b354
BLAKE2b-256 checksum
How to use checksums
55426202862cde9f16b66f09a097bd80f7b9f46a2efa93bd8eb28aa773aebf75
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
cade1c2113711903a93a62939cb9f5bab8d8fef5b539fd80acb3b7dead1dd59c
BLAKE2b-256 checksum
How to use checksums
4c5d8cc83e3b30e2d338a4609b889f3662f06919d522c51a96f9bcd9f536f0d4
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
6e39146a731f03ff666974e6378523cc0886cb38f9526017e4f63302cc72ae70
BLAKE2b-256 checksum
How to use checksums
5a5e76270f97450bcdb04bb5bbc742671fd915c02a970052fe902ae787b3539f
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 Oct 3, 2026.

Transparency log

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

Download URL parosol_py-0.1.26-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
58fa4c57358025b5220ff24f14527f7dc4def9126ca5ba747e3d980d8039ae0d
BLAKE2b-256 checksum
How to use checksums
f864c4dd0f7221bf3faf8bc70fd673c77af54c4b9a5ce67befe2f0ccba8096df
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 Oct 3, 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