Skip to main content

sedumipy

ci wheels docs License: GPL v2

A MATLAB/Octave-free Python port of SeDuMi — an interior-point solver for linear (LP), second-order cone (SOCP), and semidefinite (SDP) programs — as a standalone C kernel library plus a Python (NumPy/SciPy) package. No MATLAB or GNU Octave runtime is needed to install or run it.

It solves conic programs over a symmetric cone K — one call gives you both sides of the primal-dual pair:

\begin{aligned}
\text{(P)} \quad \min_{x} \;\; & c^\top x
  & \qquad \text{(D)} \quad \max_{y,\,s} \;\; & b^\top y \\
\text{s.t.} \;\; & Ax = b, \;\; x \in K
  & \qquad \text{s.t.} \;\; & A^\top y + s = c, \;\; s \in K^{*}
\end{aligned}

K is a product of blocks of five kinds — free, nonnegative orthant, second-order (Lorentz), rotated Lorentz, and positive semidefinite — so LP, SOCP, and SDP are the cases where every block is of one kind, and a single problem may mix them freely. An LP, for instance:

import numpy as np
import sedumipy

# minimize    7*x1 + 4*x2 + 10*x3
# subject to  3*x1 + 1*x2 +  2*x3 = 9
#             1*x1 + 2*x2 +  4*x3 = 8
#             x1, x2, x3 >= 0
A = np.array([[3.0, 1.0, 2.0],      # one row per equality constraint
              [1.0, 2.0, 4.0]])
b = np.array([9.0, 8.0])            # their right-hand sides
c = np.array([7.0, 4.0, 10.0])      # objective coefficients
K = {"l": 3}                        # all 3 variables are >= 0

x, y, info = sedumipy.sedumi(A, b, c, K)
# x = [2., 3., 0.]   the optimum, costing c @ x = 26

Here x is the primal optimum and y the dual one; K = {"l": 3} says all three variables are nonnegative. This mirrors original SeDuMi's own [x, y, info] = sedumi(A, b, c, K) call.

The usage guide defines each cone and works a mixed LP + SOCP + SDP model end to end, from the written constraints down to A, b, c, and K.

New contributor? Read CONTRIBUTING.md first — it has the current phase-by-phase status, the porting workflow this project follows, known scope limitations, and the prioritized list of remaining work.

Status

LP, second-order-cone (SOCP), and semidefinite (SDP, K.s) problems are all fully ported and verified against original Octave/SeDuMi output, to tight numerical tolerances, including on published SDPLIB and DIMACS benchmark problems (see Benchmarks below). Dense-column preconditioning is also implemented. Wheels are published to PyPI for Linux (manylinux), macOS and Windows by wheels.yml's cibuildwheel job (the Windows build uses an MSYS2/MinGW toolchain and has only been exercised on GitHub Actions' hosted runner, not hand-verified on a real Windows machine) — see CONTRIBUTING.md for the full phase-by-phase status and known limitations.

Use it from cvxpy

Problems can also be written in cvxpy's modeling language rather than as (A, b, c, K) by hand — install cvxpy alongside sedumipy (pip install sedumipy[cvxpy]) and hand solve() an instance of the solver class:

import cvxpy as cp
from sedumipy.cvxpy_interface import SEDUMIPY

x = cp.Variable(3)
problem = cp.Problem(cp.Minimize(c @ x), [A @ x == b, x >= 0])
problem.solve(solver=SEDUMIPY())   # 26.0, with the same A, b, c as above

A stock cvxpy install is enough (this uses cvxpy's own custom-solver hook — nothing has to be merged into cvxpy for it to work), and it covers the same LP/SOCP/SDP scope the solver itself does. See the usage guide for solver options, dual values, and what is out of scope.

Installation

pip install sedumipy

Wheels cover CPython 3.10-3.13 on Linux x86_64 (manylinux), Windows x64 and macOS (Apple silicon), with the compiled kernel library and its BLAS already inside them — no compiler, no BLAS install, no MATLAB or Octave. Anything else falls back to the source distribution and compiles locally, which does need a toolchain: see docs/installation.rst.

Documentation

Full documentation (installation, the problem/solver API, and the internals reference) is published at napinoco.github.io/sedumipy (built with Sphinx from docs/, auto-published to GitHub Pages by .github/workflows/docs.yml on every push to main). To build it locally instead:

pip install -r docs/requirements.txt
sphinx-build -b html docs docs/_build/html

Repository layout

The original MATLAB/Octave/MEX implementation this project ports from is kept as a reference-only git submodule, pinned to the commit the port started from:

sedumipy/
  vendor/sedumi-upstream/   # submodule: sqlp/sedumi (reference only, not built by default)
  examples/sdplib/          # submodule: vsdp/SDPLIB (published benchmark problems + optimal values)
  examples/dimacs/          # submodule: vsdp/DIMACS (published benchmark problems + optimal values)
  csrc/                     # forked, MEX-free standalone C kernels (source for libsedumi.so)
  src/sedumipy/             # the Python package
  tests/                    # test suite + committed Octave-generated oracle fixtures
  tools/                    # libsedumi build script + oracle/golden-reference generators
  docs/                     # Sphinx documentation source

Getting started from a checkout

To work on sedumipy itself (rather than just use it — see Installation above):

git clone --recurse-submodules <this-repo-url>
cd sedumipy
python -m venv .venv
.venv/bin/pip install -e .[test]
.venv/bin/python -m pytest tests/ -q

If you already cloned without --recurse-submodules, run git submodule update --init --recursive first. Building libsedumi.so (the compiled C kernel library) requires a C compiler (e.g. apt install build-essential on Debian/Ubuntu, or nothing extra at all on macOS — Xcode's command line tools provide cc; on Windows, install MSYS2 and its mingw-w64-x86_64-gcc package first — see the Windows note in docs/installation.rst or CONTRIBUTING.md); it's then built automatically the first time sedumipy is imported, via tools/build_libsedumi.sh. It also needs a BLAS. On macOS this is always the system Accelerate framework — nothing to install. On Linux/Windows, run pip install scipy-openblas64==0.3.34.106.0 (a pip-installable, prebuilt BLAS with wheels for both — the same, version-pinned one the published wheels themselves link, see pyproject.toml's [tool.cibuildwheel] comment for why it's pinned) before pip install -e .[test] --no-build-isolation above, or skip that and it falls back to a system BLAS per OS instead (e.g. apt install libopenblas-dev on Linux) — see docs/installation.rst for the full story. The Octave submodule is only needed to regenerate oracle/golden- reference data, not to run the existing test suite.

Benchmarks

tests/test_benchmarks.py solves published SDPLIB and DIMACS problems (added as git submodules under examples/) and checks the result against each collection's own official optimal-value table -- a correctness/regression check against real reference numbers, not a synthetic self-check. It also prints a timing/iteration-count summary and writes it to benchmark_results.csv.

Coverage is essentially the full published set: all 92 SDPLIB problems and every DIMACS problem sedumi() can read directly, minus a documented handful this port can't yet solve in bounded time/memory or that hit a real solver limitation -- see the module's own docstring for the full exclusion list and why each one is excluded.

git submodule update --init --recursive   # if not already done
.venv/bin/python -m pytest tests/test_benchmarks.py -v          # everything, ~101 problems (~10 min)
.venv/bin/python -m pytest tests/test_benchmarks.py -v -m mini  # fastest subset only (~35s)

Problems are grouped by pytest.mark.mini (<2s each) / timing (2-20s) / extended (20s-130s) by measured solve time -- see the module's own docstring for the sign conventions each collection/family needs.

A note on citation and attribution

sedumipy is an independent, unofficial re-implementation of SeDuMi, created without involvement from the original SeDuMi authors or maintainers. Although it aims to reproduce SeDuMi's numerical behavior faithfully, it is a from-scratch port and may differ from the original in ways not yet identified — in short, it may not always behave identically to the original SeDuMi.

If you use this software in research, please cite the original SeDuMi paper to give credit where it is due:

Sturm, J.F. (1999). Using SeDuMi 1.02, a MATLAB toolbox for optimization over symmetric cones. Optimization Methods and Software, 11(1-4), 625-653.

At the same time, please make clear in your own work that results were produced using sedumipy, an unofficial Python port — not the original SeDuMi. Any discrepancy, bug, or unexpected numerical behavior you observe here is a property of this port, not of SeDuMi itself, and should not be attributed to the original project or its authors.

License

SeDuMi is licensed under the GNU General Public License v2 (see LICENSE); this port, being a derivative work, is licensed the same way.

Metadata

Release files for sedumipy 0.0.4

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

Source distribution (sdist)

Source distribution for sedumipy 0.0.4
File Size Uploaded Provenance
sedumipy-0.0.4.tar.gz 424.9 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for sedumipy 0.0.4
File
sedumipy-0.0.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
sedumipy-0.0.4-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
sedumipy-0.0.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
sedumipy-0.0.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
sedumipy-0.0.4-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
sedumipy-0.0.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
sedumipy-0.0.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
sedumipy-0.0.4-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
sedumipy-0.0.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
sedumipy-0.0.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
sedumipy-0.0.4-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
sedumipy-0.0.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 62.6 MB

Release files / sedumipy-0.0.4.tar.gz

Download URL sedumipy-0.0.4.tar.gz
Size 424.9 kB
Tags Source
SHA-256 checksum
How to use checksums
14ae4ae4872ce01360ada14796635b51f53e68b299489e13119a33a3c1c5ef05
BLAKE2b-256 checksum
How to use checksums
64cd7bfc23af28dd3ba5126881abe43e27c04de4138f6ef2a3c7db23e369f904
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp313-cp313-win_amd64.whl

Download URL sedumipy-0.0.4-cp313-cp313-win_amd64.whl
Size 6.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e5c26ac650944a584e630aa92d81f6bf788cf4f41e0bf5a7e02ed1d135db8313
BLAKE2b-256 checksum
How to use checksums
43f6d000ff65b4b90bc75b11c105e3b73960b7f0744660807304874fbee4d29f
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL sedumipy-0.0.4-cp313-cp313-manylinux_2_28_x86_64.whl
Size 8.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6257724ae8515f57bb984a167b28549b5f6cb68c4d77d4cb9d6f26ba3d4cb278
BLAKE2b-256 checksum
How to use checksums
38398d8fcb122c32dffb71874532186af96d4b82d68228c4a353b5435d841457
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL sedumipy-0.0.4-cp313-cp313-macosx_11_0_arm64.whl
Size 155.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b78583e78bc0db4f55ce559e1006e447121df876653d11020d20b3b3474809c5
BLAKE2b-256 checksum
How to use checksums
428fa8f4b89a64a803f0b8f695bd51cbd1bd88921c450ec2f25bddb3d4e1e899
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp312-cp312-win_amd64.whl

Download URL sedumipy-0.0.4-cp312-cp312-win_amd64.whl
Size 6.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b71b3f7a0f49ca5c31033f36be613edf205b955bf7906438867fd742060cdcec
BLAKE2b-256 checksum
How to use checksums
79b62904526668b420537a8144e9ed141894b25d8ad8709c76cd70b90359c6a6
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL sedumipy-0.0.4-cp312-cp312-manylinux_2_28_x86_64.whl
Size 8.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
96f548af9b2f96239c644fccaf64fb039e6ce10bfbe1d0c980a97dc2ef28455b
BLAKE2b-256 checksum
How to use checksums
ac8de03afc0819c2f3afeb95229cf17c42c622089342957b0741f8ffb56cacc0
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL sedumipy-0.0.4-cp312-cp312-macosx_11_0_arm64.whl
Size 155.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
51dd60cd2c8560420ee9b57190309116e955e69d94b43736d19985797e0f6048
BLAKE2b-256 checksum
How to use checksums
f8a7f486fd4a34835cd93470f28cc6a73b8d19bb6ef674fc61ed87bc3fa78393
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp311-cp311-win_amd64.whl

Download URL sedumipy-0.0.4-cp311-cp311-win_amd64.whl
Size 6.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
da40bf561b53f7763381cbe3a8cbd8d152857562c2e854c8ea673ccc93720393
BLAKE2b-256 checksum
How to use checksums
dd998d0e482d0761bff837ac8cd7b93dfa8522470887f201bf80db6f2e6f0c68
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL sedumipy-0.0.4-cp311-cp311-manylinux_2_28_x86_64.whl
Size 8.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9dd04b87327445d77a1b0faf5bba44d5e6ae4800366dfd63dd84c4293d3720dd
BLAKE2b-256 checksum
How to use checksums
b6ad5add58a3dbdb34bdbc77abc7883d476f8aa7b7580c2f03822afed2264d83
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL sedumipy-0.0.4-cp311-cp311-macosx_11_0_arm64.whl
Size 155.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e1118cf68e64f92acfefddc07ba6d01d978f3c1a81f63570573b32d5fefb44d8
BLAKE2b-256 checksum
How to use checksums
f2fe5391472603a517763b2ea0a32898d7cd63b04215ebcc52430832bb27f54e
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp310-cp310-win_amd64.whl

Download URL sedumipy-0.0.4-cp310-cp310-win_amd64.whl
Size 6.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9f7badc19d6a5298665d69ff1ea587e22b1a3c292740c63f6878bbe8796a6a37
BLAKE2b-256 checksum
How to use checksums
82340e9542d92e768abcea501dfccba6180f84aab60031dcf73de0c46a3917f0
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL sedumipy-0.0.4-cp310-cp310-manylinux_2_28_x86_64.whl
Size 8.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aee070c88accf8f8402341f8276fc4b8a2fb4f95a6b36a119751d7767a95e974
BLAKE2b-256 checksum
How to use checksums
8f236b1e7248e18eca75e2538f568316d8b4a022ea3e9a03dd75f5a850053589
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 6, 2026.

Transparency log

Release files / sedumipy-0.0.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL sedumipy-0.0.4-cp310-cp310-macosx_11_0_arm64.whl
Size 155.8 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b5e7777c7e91a17ef031bcc27936a39da75b2b2942c5ba196e22cbeafdc5660c
BLAKE2b-256 checksum
How to use checksums
f39b83daaac6c94f812341ca42df6e0abcbf07f8f00022cee06d09dc446cc3c8
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 6, 2026.

Transparency log

Security for sedumipy 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.

Full provenance

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

Select from 13 files

Attestation for sedumipy-0.0.4.tar.gz

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