Skip to main content

OpenMM CPP Forces Plugin

Linux MacOS Docs License: MIT

This OpenMM plugin contains platform-agnostic forces. They are computed in C++ on the host through OpenMM's CustomCPPForceImpl, and OpenMM's own platforms (Reference, CPU, CUDA, and OpenCL) move positions and forces to and from the device. The plugin therefore has no GPU kernels, and the same build works on every platform.

Force Description
CompositeRMSDForce Deviation of multiple corotating bodies from their reference structures

Composite RMSD

The CompositeRMSDForce class computes the root-mean-square deviation (RMSD) of a set of particle groups from a reference structure, where each group can translate independently but all groups rotate together. For $m$ groups $\mathbf{g}_j$ with $n_j$ particles each and centroids $\mathbf{c}_j$, the composite RMSD is

d_{\rm crms}(\mathbf{r}) = \sqrt{
    \frac{1}{n} \min_{\substack{\mathbf{q} \in \mathbb{R}^4 \\ \|\mathbf{q}\| = 1}}
    \sum_{j=1}^{m} \sum_{i \in \mathbf{g}_j} \left\|
        \mathbf{A}(\mathbf{q})\left(\mathbf{r}_i - \mathbf{c}_j\right)
        - \mathbf{r}_i^{\rm ref} + \mathbf{c}_j^{\rm ref}
    \right\|^2
}

where $n = \sum_{j=1}^{m} n_j$, $\mathbf{r}_i^{\rm ref}$ and $\mathbf{c}_j^{\rm ref}$ are reference positions and centroids, and $\mathbf{A}(\mathbf{q})$ is the rotation matrix of the unit quaternion $\mathbf{q}$. A single rotation aligns all groups, so their relative orientations matter but their relative positions do not. The energy of the force equals $d_{\rm crms}$, which makes it a collective variable for a CustomCVForce.

Documentation

Documentation for this plugin is available at GitHub Pages, including its Python API.

Installation

The plugin requires OpenMM 8.4 or later. It is distributed on the mdtools conda channel:

mamba install -c conda-forge -c mdtools openmm-cpp-forces

and on PyPI, for Linux x86_64 and macOS (Apple Silicon and Intel) with Python 3.10–3.14:

pip install openmm-cpp-forces

Each PyPI release is published once per supported OpenMM version. pip installs the newest one, upgrading OpenMM if needed; to keep an older OpenMM, pin it in the same command, for example pip install "openmm==8.5.*" openmm-cpp-forces:

PyPI release OpenMM
X.Y.Z 8.4
X.Y.Z.post1 8.5
X.Y.Z.post2 8.6

On Intel Macs, OpenMM 8.6 from PyPI only works with Python 3.10, so pip installs the OpenMM 8.5 release there for Python 3.11 and later.

The PyPI wheels work with every OpenMM platform. To run on NVIDIA GPUs, also install the OpenMM CUDA add-on that matches your driver, openmm-cuda-12 or openmm-cuda-13.

To build from source, install OpenMM, CMake, SWIG, numpy, and a C++ compiler, then run:

mkdir build && cd build
cmake .. -DOPENMM_DIR=/path/to/openmm   # defaults to $CONDA_PREFIX
make install
make PythonInstall

Usage

The example below restrains the composite RMSD of two groups of particles with a harmonic potential:

import numpy as np
import openmm as mm
import openmmcppforces as mmcpp

# A toy system: 10 particles split into two groups
num_particles = 10
system = mm.System()
for _ in range(num_particles):
    system.addParticle(1.0)
reference = np.random.default_rng(1234).normal(size=(num_particles, 3))

rmsd = mmcpp.CompositeRMSDForce(reference)
rmsd.addGroup(list(range(5)))
rmsd.addGroup(list(range(5, 10)))

restraint = mm.CustomCVForce("0.5*k*rmsd^2")
restraint.addGlobalParameter("k", 1000.0)  # kJ/mol/nm^2
restraint.addCollectiveVariable("rmsd", rmsd)
system.addForce(restraint)
context = mm.Context(system, mm.VerletIntegrator(0.001))

# Translating each group as a whole leaves the composite RMSD at zero
shift = np.array([[1.0, 0.0, 0.0]] * 5 + [[0.0, 2.0, 0.0]] * 5)
context.setPositions(reference + shift)
print(f"{restraint.getCollectiveVariableValues(context)[0]:.4f} nm")  # 0.0000 nm

# A deformation does not
noise = np.random.default_rng(5678).normal(scale=0.1, size=(num_particles, 3))
context.setPositions(reference + noise)
print(f"{restraint.getCollectiveVariableValues(context)[0]:.4f} nm")  # 0.1326 nm

Copyright

Copyright (c) 2024, Redesign Science

Metadata

Release files for openmm-cpp-forces 0.2.0.post1

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

Built distributions (wheels)

Table of built distributions (wheels) for openmm-cpp-forces 0.2.0.post1
File
openmm_cpp_forces-0.2.0.post1-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_10_13_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.13+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_10_13_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.13+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_10_13_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.13+ x86-64 Details

Total release size: 3.4 MB

Release files / openmm_cpp_forces-0.2.0.post1-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp314-cp314-manylinux_2_34_x86_64.whl
Size 501.0 kB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
d0a8f04c860da60452d0c94e85726c2ffa525fbfa2927223d4a5fcaf1c745ddb
BLAKE2b-256 checksum
How to use checksums
ea04d185e9322c4a8c673ef8b53eb6948e5077d48e869c6d5597af6b0ab687d4
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_11_0_arm64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_11_0_arm64.whl
Size 92.5 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
81a5a3b35b8331e98e681fb6ef688fb74fb42bc922de20200e6ee3f617820eab
BLAKE2b-256 checksum
How to use checksums
5ceb5ab477fcc5da0242cb88723dc0850417f51f590be6223820c88693c00a68
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_10_13_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp314-cp314-macosx_10_13_x86_64.whl
Size 100.9 kB
Tags CPython 3.14 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d3e380fa3ca2286b7e0b05cdb914501cc6b00e7e25709d377602b889d2f95f51
BLAKE2b-256 checksum
How to use checksums
cad76566f859233def2d5c092fac042686607f02fad69705f351308e596acf31
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp313-cp313-manylinux_2_34_x86_64.whl
Size 501.8 kB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
2e32b8bbe4551c706f42877330a21f6dda0f10c172e17d69345d2f09fd0b1edd
BLAKE2b-256 checksum
How to use checksums
b05d2bc927e71e762f3e016775bf57dbadd5b9589115355b268607fcdc3572ff
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_11_0_arm64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_11_0_arm64.whl
Size 92.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
38361ecc01242ccef6e371badbe73ba260e6761a3ec01e50f8799856f19d8232
BLAKE2b-256 checksum
How to use checksums
97003eee0f1bc4d28b7ac29546b50cb3d88719bb61f8e3ce88c9238726cf823a
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp313-cp313-macosx_10_13_x86_64.whl
Size 100.7 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
8276f275074349bdc6b8d708edea5068fd723499219585d49a7955c358d6559c
BLAKE2b-256 checksum
How to use checksums
8e464598c6406174edfbd15a205b7bd230c4e8d6aa5055c4007c297b8af1a29b
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp312-cp312-manylinux_2_34_x86_64.whl
Size 500.2 kB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
9ef9161a2e4e9189c8e57f89d4976a087c391bb9f21d88b7b7adb470f09b4b5f
BLAKE2b-256 checksum
How to use checksums
f9a960809801e17c5c9d31c42e12782fa21a7e8acad5f5f1932270657727dcb9
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_11_0_arm64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_11_0_arm64.whl
Size 92.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c2c69890b850e849a2b1cedd804d69e0fed74ffc8ccc95f8903bd2f6907acfeb
BLAKE2b-256 checksum
How to use checksums
73069961dc1134e8908eb54895b4581ff7a9508f9aa41ecb0ed8c9702bd7c16d
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp312-cp312-macosx_10_13_x86_64.whl
Size 100.9 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
6f9a20fe85c5164922d446882136e95a59367288bcbaddada1d9db0f5074ed3d
BLAKE2b-256 checksum
How to use checksums
374a51dd154c267cd9d774ff489a1df441a8f5fcb7ff74ef4098243fbf526007
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp311-cp311-manylinux_2_34_x86_64.whl
Size 487.6 kB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
9fa0eaf2812c775e8c784b963f0140d6b834c16cb99be5fe5bfd97b5900d20e7
BLAKE2b-256 checksum
How to use checksums
68e58edaf7c596c2135b42915099ae9ad8217b962564b44ef5c14286bf9adca9
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_11_0_arm64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_11_0_arm64.whl
Size 92.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bdbe7fca18a30e9008c35850861e53b4dcab946adb06181341a1207d9e399743
BLAKE2b-256 checksum
How to use checksums
a2c0c6683efa97daef61686a00c7e65ede53814d7e1eb20333dc3c4a023e2544
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_10_13_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp311-cp311-macosx_10_13_x86_64.whl
Size 100.5 kB
Tags CPython 3.11 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
bdb397bf32734a40990fe83fbb83c74bf04f4edadec6018d9f0ba2bdc00498d6
BLAKE2b-256 checksum
How to use checksums
1d515e8e4867dec3d71df6d8d70a0ced1dd63750869e40dc89df95077255ac9e
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp310-cp310-manylinux_2_34_x86_64.whl
Size 481.3 kB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
817371ce37e0248358a1dd47c4cb7702b53f8cead63aea6376e034cee31b7ff0
BLAKE2b-256 checksum
How to use checksums
72235c3fa51e00f032f6f57f386d8a80398d443830bab2b8d29387d70d41dc6f
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_11_0_arm64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_11_0_arm64.whl
Size 92.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2ff75a375ef6bda4934f602ae4e7f9193bebf454ecfae4d8dad59c046d47d7f4
BLAKE2b-256 checksum
How to use checksums
b9c7447c3ee85e98fd3a39ff5e388d0cb0a3976c10d7fa441a45a641edf75df7
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 15, 2026.

Transparency log

Release files / openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_10_13_x86_64.whl

Download URL openmm_cpp_forces-0.2.0.post1-cp310-cp310-macosx_10_13_x86_64.whl
Size 100.6 kB
Tags CPython 3.10 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
4e83129ce32566d9f198835f2d9dd086e3eda3c9731210bfd377cc74db72426a
BLAKE2b-256 checksum
How to use checksums
fca53b5ab379e6ba4b1283c6f5b7d17b55644e99ccd7f35ab84d72a56b8a90ea
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 15, 2026.

Transparency log

Security for openmm-cpp-forces 0.2.0.post1

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.

Full provenance

All 15 files in this release have been uploaded with provenance metadata.

Select from 15 files

Attestation for openmm_cpp_forces-0.2.0.post1-cp314-cp314-manylinux_2_34_x86_64.whl

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 15, 2026.

Transparency log

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.

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