Skip to main content

General-purpose finite element solver - pyfe3d

Github Actions status:

Actions Status

Coverage status:

Codecov Status

About pyfe3d

The pyfe3d module is a general-purpose finite element solver for structural analysis and optimization based on Python and Cython. The main principles guiding the development of pyfe3d are: simplicity, efficiency and compatibility. The aimed level of compatibility allows one to run this solver in any platform, including the Google Colab environment.

Citing this library

Saullo G. P. Castro. (2026). General-purpose finite element solver based on Python and Cython (Version 0.11.0). Zenodo. DOI: https://doi.org/10.5281/zenodo.6573489.

Documentation

The documentation is available on: https://saullocastro.github.io/pyfe3d.

Important features of this library

  • efficient and simple for linear and nonlinear analyses
  • importable and cimportable code
  • 6 degrees-of-freedom per node

Available finite elements

  • 'Quad4' - 4-node plate with linear interpolation, equivalent to Nastran's CQUAD4. The recommended quadrilateral plate element.

  • 'Quad4R' - 4-node plate with linear interpolation, equivalent to Abaqus' S4R. It has a not very robust hourglass control.

  • 'Tria3DSG' - 3-node plate with linear interpolation and a discrete shear gap transverse shear field, after Bletzinger, Bischoff and Ramm (2000). The recommended triangular plate element: it is free of shear locking by construction and needs no tuning parameter.

  • 'Tria3R' - 3-node plate with linear interpolation, equivalent to Abaqus' S3R or Nastran's CTRIA3. Its transverse shear is taken at the centroid and locks, and it relies on the alpha_shear_locking stabilisation to unlock. No single value of that parameter serves every problem class, so it has to be verified per problem, see the element documentation. Prefer Tria3DSG for new work.

  • 'BeamC' - 2-node Timoshenko beam element with consistent shape functions and analytical integration. The recommended beam element.

  • 'BeamLR' - 2-node Timoshenko beam element with linear interpolation and reduced integration.

  • 'Spring' - 2-node spring element with 6 stiffenesses defined in the element coordinate system.

  • 'Truss' - 2-node truss element with only axial and torsion stiffness. I recommend using the BeamLR instead, which is physically more consistent.

Development history

See CHANGELOG.md for the details of each version.

Main versions Changes
0.11.0 Non-linear static solvers in pyfe3d.solver (Newton-Raphson, arc-length methods of Riks and Crisfield, Crisfield's convergence criterion as the default, with a round-off floor of the residual); damped (quadratic) eigenvalue solver complex_frequency(); fixed sign of the shear parameters of BeamC; fixed piston-theory slope of Quad4 and Quad4R; fixed MatLamina c11 and q31 and the 66 row of GradABD.calc_LP_grad; pyfe3d.shellprop mirrors composites.Laminate (breaking: force_* renamed make_*, get_transf_matrix_displ_to_lamina; new shear corrections, make_smeared, a posteriori transverse shear); derivation scripts in theory/.
0.10.0 New Tria3DSG element with discrete shear gap transverse shear, the recommended triangle; physics-based drilling stiffness (Allman, Hughes-Brezzi) as the default, with the K6ROT penalty kept through drilling_model; fixed lost K6ROT coefficient; new pyfe3d.solver module for linear buckling and natural frequencies; speedup with Cython and compiler flags.
0.9.0 Shear correction factors as per Rohwer and Vlachoutsis.
0.8.0 KCNL matrix for all elements, with more accurate nonlinear analyses; fixed KC0 and KG for beams; fixed KC0 for Tria3R.
0.7.0 Drilling stiffness re-coupled with in-plane rotation using K6ROT; fixed drilling stiffness integration; restored missing pid attribute.
0.6.4 Internal force vectors (finte) for all elements; fixed drilling stiffness (K6ROT) scaling; added Python 3.14 and removed Python 3.8 support; Linux wheels limited to 64-bit; Exposed update_probe_finte to Python; new documentation examples.
0.5.2 New Quad4 element; K6ROT drilling stiffness; probe.update_BL; removed alg3dpy dependency; topology optimization tutorial
0.4.28 Piston theory aerodynamics for Quad4R; fixed array casting on some systems; Quad4R less sensitive to small element sizes; new pid attribute for elements; exposed element orientation vectors; Python 3.12 support; fixed build for Linux and macOS wheels.
0.3.24 New Tria3R element; fixed BeamC formulation; fixed beam torsion stiffness; fixed lamination parameters and added their gradients; fixed lumped mass for Tria3R; removed dependency on the NumPy C API; OpenMP build fixes; improved Zenodo metadata and documentation layout; Python 3.10 support.
0.2.8 Material coordinate systems for plate elements; Fixed Truss mass matrix; more aggressive Cython directives; license changed to 3-clause BSD; license info in README, author metadata updates.
0.1.16 New Spring element; Rotation matrices using direct rij terms instead of Euler angles; renamed update_xe to update_probe_xe; probe made a public attribute; KG with a given stress state; renamed update_ue to update_probe_ue
0.1.3 First release: Quad4R, BeamC, BeamLR and Truss elements; shell properties; linear buckling

Installing pyfe3d

First, you should try to install from the distributed binaries by simply doing:

python -m pip install pyfe3d

If a distribution could not be found, you can try to install from the source code using:

python -m pip install .

Another alternative is the following:

python -m pip install -r requirements.txt
python -m pip install --no-build-isolation .

If none of the above alternatives worked for you, this link shares some information on how to set up a C compiler on different operating systems:

https://cython2.readthedocs.io/en/latest/src/quickstart/install.html

License

Distrubuted under the 3-Clause BSD license (https://raw.github.com/saullocastro/pyfe3d/main/LICENSE):

Copyright (c) 2021-2026, Saullo G. P. Castro (S.G.P.Castro@tudelft.nl)
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Contacts:

Metadata

Release files for pyfe3d 0.11.0

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

Source distribution (sdist)

Source distribution for pyfe3d 0.11.0
File Size Uploaded Provenance Actions
pyfe3d-0.11.0.tar.gz 3.9 MB Without provenance Details for pyfe3d-0.11.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pyfe3d 0.11.0
File Actions
pyfe3d-0.11.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for pyfe3d-0.11.0-cp314-cp314-win_amd64.whl
pyfe3d-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyfe3d-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyfe3d-0.11.0-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details for pyfe3d-0.11.0-cp314-cp314-macosx_10_15_universal2.whl
pyfe3d-0.11.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pyfe3d-0.11.0-cp313-cp313-win_amd64.whl
pyfe3d-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyfe3d-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyfe3d-0.11.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details for pyfe3d-0.11.0-cp313-cp313-macosx_10_13_universal2.whl
pyfe3d-0.11.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pyfe3d-0.11.0-cp312-cp312-win_amd64.whl
pyfe3d-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyfe3d-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyfe3d-0.11.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details for pyfe3d-0.11.0-cp312-cp312-macosx_10_13_universal2.whl
pyfe3d-0.11.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pyfe3d-0.11.0-cp311-cp311-win_amd64.whl
pyfe3d-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyfe3d-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyfe3d-0.11.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details for pyfe3d-0.11.0-cp311-cp311-macosx_10_9_universal2.whl
pyfe3d-0.11.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pyfe3d-0.11.0-cp310-cp310-win_amd64.whl
pyfe3d-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyfe3d-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyfe3d-0.11.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details for pyfe3d-0.11.0-cp310-cp310-macosx_10_9_universal2.whl

Total release size: 134.8 MB

Release files / pyfe3d-0.11.0.tar.gz

Download URL pyfe3d-0.11.0.tar.gz
Size 3.9 MB
Tags Source
SHA-256 checksum
How to use checksums
a230203d7512520fad4054e7ea5e65e45f41720c74746fdc6c5917188a92dea6
BLAKE2b-256 checksum
How to use checksums
7073567469852c19b003f15b379b08ba7727b96ed5f249d5a6099c129e714513
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp314-cp314-win_amd64.whl

Download URL pyfe3d-0.11.0-cp314-cp314-win_amd64.whl
Size 5.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ad2cc0b51d3e9d83fd48f31278b1d6cc6549f8b0c0d5517e1ad3873de7e22607
BLAKE2b-256 checksum
How to use checksums
3a395f859198fc40e2be582d0fd6ef64744060804cd5c18c5c47355f71618536
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.9

Release files / pyfe3d-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfe3d-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 13.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ccd63bab3f7bc2bf19cf4b7c5bcec568d90ff2055f872f3f97f0b4e814f4e308
BLAKE2b-256 checksum
How to use checksums
4cf3a03a8cbc71b28f1d1b2621e89db7f54a88c40eb02507dd5b6e542282a4c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp314-cp314-macosx_10_15_universal2.whl

Download URL pyfe3d-0.11.0-cp314-cp314-macosx_10_15_universal2.whl
Size 7.2 MB
Tags CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2707667b6a7b26e981ebd3ff78b4f8ccb339c48cb9e3dd3d10c72e2ca2ef6bf2
BLAKE2b-256 checksum
How to use checksums
e689b8c3fa6ff869f7367f6c52f0d26baa30049de4100ea2443634dfa1e1bad4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.9

Release files / pyfe3d-0.11.0-cp313-cp313-win_amd64.whl

Download URL pyfe3d-0.11.0-cp313-cp313-win_amd64.whl
Size 5.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
029ca83790c7231a6a018dd47374732ae6725116e0ed832ce02ce89b59407407
BLAKE2b-256 checksum
How to use checksums
7f463c117347135f6746566e023abb54a5d0397127b766ff8331b32a95f7e08d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pyfe3d-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfe3d-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 13.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a77b2e83cbd9f11f63d49be15a478d5bf6da11b243481418c091f7533cb4dff2
BLAKE2b-256 checksum
How to use checksums
5262fd871f07f27be579b4c43564394f0c0b915186156aaa34bf3dcbf77ab6a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp313-cp313-macosx_10_13_universal2.whl

Download URL pyfe3d-0.11.0-cp313-cp313-macosx_10_13_universal2.whl
Size 7.2 MB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
5d17dfb61902e49c26659a76350e24cf721eda5b951482b8e9c573ec463c1c71
BLAKE2b-256 checksum
How to use checksums
8c13cf341ad324bac67035ec9ccf3b4972d2c6ff51d18378ec5e3aa58ac91ff6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pyfe3d-0.11.0-cp312-cp312-win_amd64.whl

Download URL pyfe3d-0.11.0-cp312-cp312-win_amd64.whl
Size 5.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9e1a6b27e5a0d7d3ec91f8c60b09580d168734b1f8f9d4fade661d9581eca31d
BLAKE2b-256 checksum
How to use checksums
18b02b12b4216c80cdfe6e1dfec1250470863e9a6f926e913c2c8db517275aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pyfe3d-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfe3d-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 13.8 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
782b9f0990c94c5d95f9cab8aafa8f02845a4dd2c9329ed818df27ca7f7f6c78
BLAKE2b-256 checksum
How to use checksums
00230556f27be56f50e59cec295da8dcc3679d638ac0be490cdf27c801e4314a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp312-cp312-macosx_10_13_universal2.whl

Download URL pyfe3d-0.11.0-cp312-cp312-macosx_10_13_universal2.whl
Size 7.1 MB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
5c2c04a91befaf9f476a2747f5f1a7b40ff27ab819c1bdea90b7babeb1073d00
BLAKE2b-256 checksum
How to use checksums
096e42523fd43f2647c347a0d3d6b048a74692141450f323125e93938bf221f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pyfe3d-0.11.0-cp311-cp311-win_amd64.whl

Download URL pyfe3d-0.11.0-cp311-cp311-win_amd64.whl
Size 5.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
95fac28ad9549b7807b1cc421f23d21a511b9d23a33900e145b0f368e6ee31ab
BLAKE2b-256 checksum
How to use checksums
704d4b07931790fb39a2948d9f248420f3597c77cb4fce04497b476adcb34ef0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / pyfe3d-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfe3d-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 13.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
45d06f8d38a49984bab6e2b2ce94ba476bfd2dbe42f0e8fc35e8afbfc1e548ea
BLAKE2b-256 checksum
How to use checksums
4932200612553e0f72acfd4a219443eaae2325b3ef24462e4d7e731581639e8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL pyfe3d-0.11.0-cp311-cp311-macosx_10_9_universal2.whl
Size 7.1 MB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f74657b7245e55e193a21302d4704c5b2c704a43b3bdd367e1bcc22252226f66
BLAKE2b-256 checksum
How to use checksums
6001f47a683cb7d15d705fcaeb1ed1886f7d151f4c21be82c3fc1d56070aa721
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / pyfe3d-0.11.0-cp310-cp310-win_amd64.whl

Download URL pyfe3d-0.11.0-cp310-cp310-win_amd64.whl
Size 5.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
03678310b04b04d282d4c1daa57fe0faf98e59cf35ca285e97be2e864789db41
BLAKE2b-256 checksum
How to use checksums
ec119bb9c161ccd2742e67eeaaf570d8fd835a5957dd3f203b478a40409dc0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / pyfe3d-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfe3d-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 13.4 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5601d51d752d4f5a02c7379adedfd5f0a9899220bdb3727a508ee9a37be189da
BLAKE2b-256 checksum
How to use checksums
e796556357e92f46e783c6ac736a5036b12aacc60acf5418b247b5df4390cf83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pyfe3d-0.11.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL pyfe3d-0.11.0-cp310-cp310-macosx_10_9_universal2.whl
Size 7.2 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
558504515fe2c8e0fa7f13c8e41cbfa1235601033b8714c4d755f7aa56731baa
BLAKE2b-256 checksum
How to use checksums
c6b0fabce6481e701f5784c994879a84cb543098b891fe98eba4c3ce4e823211
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Security for pyfe3d 0.11.0

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.

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