This release is a pre-release and may not be stable for production use.
Efficient Adaptive Non-Maximal Suppression (ANMS)
This project provides a Cython implementation of the Efficient Adaptive Non-Maximal Suppression (ANMS) algorithms, designed to achieve a homogeneous spatial distribution of keypoints. This implementation is based on the paper "Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution" and offers improved packaging and installation via pip.
Installation
You can install the adaptivenms package directly using pip:
pip install adaptivenms
If you have cloned the repository, you can also install it from the project directory:
pip install .
Example
The following example demonstrates how to use the square_covering_adaptive_nms function to select a target number of keypoints with a homogeneous distribution.
import numpy as np
from adaptivenms import square_covering_adaptive_nms
# Randomly generate sample keypoint data
n_kpts = 10000
width, height = 960, 720
kpts_x = np.random.randint(width, size=(n_kpts,))
kpts_y = np.random.randint(height, size=(n_kpts,))
kpts = np.stack([kpts_x, kpts_y], axis=-1)
responses = np.random.random(n_kpts)
# Apply square_covering_adaptive_nms
kpts_idxs = square_covering_adaptive_nms(
kpts, # 2-dimensional array of shape [N, 2] representing keypoint coordinates (x, y)
responses, # 1-dimensional array of shape [N,] representing keypoint responses (e.g., cornerness scores)
width=width, # Width of the image
height=height, # Height of the image
target_num_kpts=2048, # Desired number of keypoints to retain
indices_only=True, # If True, returns only the indices of selected keypoints; otherwise, returns the selected keypoints themselves
up_tol=10, # Tolerance for allowing slightly more selected keypoints than target_num_kpts
max_num_iter=30, # Maximum number of binary search iterations to find the optimal suppression radius
)
print(f"Original number of keypoints: {n_kpts}")
print(f"Number of selected keypoints: {len(kpts_idxs)}")
References
- Paper: Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution
- Original C++ Implementation: GitHub - BAILOOL/ANMS-Codes
- Original Cython Implementation (Forked from): GitHub - viniavskyi-ostap/adaptive-nms
Metadata
Release files for adaptive-nms 1.0.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| adaptive_nms-1.0.0a2.tar.gz | 5.7 kB | Without provenance | Details |
Built distributions (wheels)
Total release size: 26.8 MB
Release files / adaptive_nms-1.0.0a2.tar.gz
| Download URL | adaptive_nms-1.0.0a2.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38b3e65b39540abb75265efaf70a70a98a0acfda6dc49c0ea54d98cda583f6ca
|
|
BLAKE2b-256 checksum How to use checksums |
c7e632486864d02969136e1c266823888838946a347773594c46bd3498dcdfdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4fa85ee4d3448db241a2fefb3fce114842ea14ec691b04d1cb8a36c21c2560a
|
|
BLAKE2b-256 checksum How to use checksums |
10a2c1ca766cc4bd095fbf1d9ab138481e628acc653914a1794ca7e818bb40db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
899066c5953d64af95ce051b063039aa5fb855643323aa4623b4bc439d3c8226
|
|
BLAKE2b-256 checksum How to use checksums |
c644555cb5f088c92f101a99e3e0934255d710dd85ac5f9c141d4c96e12332d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 631.4 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bea618ea27cd2eddd20545fe8848655573ed08ba9dc61a8692be9016ee542f66
|
|
BLAKE2b-256 checksum How to use checksums |
dd7684388029fea2badd312205a477a78172cbc261f532aeb8b8424ffeb8f986
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 608.9 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3a617b54f1fe73be3a57adb3bab4a2f8a6cc975292599317c0651f0bc080ddd9
|
|
BLAKE2b-256 checksum How to use checksums |
42f69ee3b2bf4bcb7aadfb9d9392ffd0a694539ab010816db5c74cd736eb59d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
447298a257e736facd87a35010f728e42745a6c7c05efdc88bad5e5fda13367a
|
|
BLAKE2b-256 checksum How to use checksums |
33d17bc8d27f1d7e3fbef4d2fd6344b3d0e97132dd238426be08d97503dae447
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
e5833c13b1c09bae6141d90e1bd26b23d463e13e2c362d9a66fa2bf3ee5e066e
|
|
BLAKE2b-256 checksum How to use checksums |
dfb2735163b74c6fb4a8cd5522fa1a7b9894d5756f6859297694dab0bdf7be6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 632.4 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ed4e9519cedb0ace3ce21bdb88bb7674660116edf601140ddddf393577e6eefc
|
|
BLAKE2b-256 checksum How to use checksums |
ee4d9ac6eceb15247daaed961ea3235444108565107fb0b32164580c13c242ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 612.3 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
17169ff5a4799e6a2f3987862e310ecd2c86eecc445e77fae5083461778f62ff
|
|
BLAKE2b-256 checksum How to use checksums |
50126cbe4d8de9a74a34ef72c38ea10a22919a181412b9d3e83f5e90fe7c553d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
a1ba57cb85aa3228872c3502c6d09ead4c8dc18d549e4cc9d68a8400843c7ce2
|
|
BLAKE2b-256 checksum How to use checksums |
fbb146e5139da716f9ac9201366147070e2ff20aa931138dd3b882e3298057eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
0ae06fb4d44b5179e87faf48f87e36ba2a047e8f2f9a3f59ff10a53d2bbdda67
|
|
BLAKE2b-256 checksum How to use checksums |
2d0f184696247e6bf8a8527f4895e86b7bfd6030c3ceae67f65fd88fe2ec3cc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 637.2 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f872d957792cdaa5334ef3cd7e83451805859a18a984105b8211f1e3e28d691
|
|
BLAKE2b-256 checksum How to use checksums |
70d95816b89a4d343f956af65fc4f7b06756f8d0382171065a513fcc51c6cf52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 622.3 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4474650325f87b06645f62f35f965485a165d56de4ecf5e482370951a54b78cf
|
|
BLAKE2b-256 checksum How to use checksums |
fc3ba8e4ceaede4f8fb274b5a2b843139f6da9298609ce2ecaea0c10e270a004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
31d57577d67a6081979872892640be0ed1c1e5cc3aa968bfd41b79a783f1f517
|
|
BLAKE2b-256 checksum How to use checksums |
48a79ef413aef20a3d415be1c17e2093a3874f586425dbed92ce2fee8de660d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
af8e298cc74aa198e8578e78215556461034f54c7e656aad82139896e52241ef
|
|
BLAKE2b-256 checksum How to use checksums |
15f07c102e8b159c7450b6cbfd078806e7f3a7b3b2fb4e6f2f7be28f4c940294
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 607.8 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b896a1ea9479622a02546d904a78dcaa265b89d04a7149adc8adf0bc46add311
|
|
BLAKE2b-256 checksum How to use checksums |
77e5c25173106b5308fec9025a3bf75b8ad89140e99292b6a5a10daf09d7ad2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 591.5 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
20d478c3516ad8a5eac9f27f87a0963f949ffbfdf1ece7c2715f689e6222c807
|
|
BLAKE2b-256 checksum How to use checksums |
109ff54285aec8c1bcc6157c06eff1a05d986a16135bba1203072e0b7f3159ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
537fdda520509113b189cb5653b365cbfd32097f1b566334426d667157fa0da0
|
|
BLAKE2b-256 checksum How to use checksums |
731440f5607ba5191497c67f3446c0723e8fa68840ab7696995aa498b213bb88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp39-cp39-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp39-cp39-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
313597a4486f2de4766e323554595c9d35b7769a44f0d1ed82bf60eeb37b0fe9
|
|
BLAKE2b-256 checksum How to use checksums |
ec0706f0beedbc611559faf9296b7f98784035a45ad5883d32012208681053f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 609.1 kB |
| Tags | CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1ea7c4090c9ba663b766b47a6d506fb511d92abb0f55a071cd402ba6da911286
|
|
BLAKE2b-256 checksum How to use checksums |
d47bc273390d99c88adf9da4a3c895deaa5188a133413d12c8b45a5880f41a80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 593.1 kB |
| Tags | CPython 3.9 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d07ead4ad72b9c3630a0cc9e833758be5a91b8d31a782bab93eae5aebf5ae00a
|
|
BLAKE2b-256 checksum How to use checksums |
06a9519f57c49d3d6713fe23164684ee765c66d3b104fd6b7644996ee2173f95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp38-cp38-musllinux_1_2_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp38-cp38-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
0021608d83968aa52f52b418257a48cee3d7bef4d9411e6bcd646ea0b5911357
|
|
BLAKE2b-256 checksum How to use checksums |
4c93bfee848b398ad5f90b98085f3ac9120e6134bfb00fae31e758bd4cd9c5c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp38-cp38-musllinux_1_2_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp38-cp38-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
2c8d620037e0c870ad49e73068adaab940a68b73b0abbeb11a6806472836bee2
|
|
BLAKE2b-256 checksum How to use checksums |
b8051a93feeed112540834d0bae730bc00e61ed8f313b299d373c4177d5b8eec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | adaptive_nms-1.0.0a2-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 623.6 kB |
| Tags | CPython 3.8 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fce895f7009fc20f8cf519379d03ce420a0590aaf188c7a339e946554d2d4b3
|
|
BLAKE2b-256 checksum How to use checksums |
5968bc44c010fc0347d01b098514a1a0db64bdbd6ce0aab01ffcf7fe0b615b41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / adaptive_nms-1.0.0a2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | adaptive_nms-1.0.0a2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 607.6 kB |
| Tags | CPython 3.8 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8a61b111637c6b851fc2d4421eafe51a6cf24e99c76af7a682fccb088013a88c
|
|
BLAKE2b-256 checksum How to use checksums |
f9b9f4b87f507a88ca6bc443232297823b6c68a29dc325efb3258281f5e001eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Security for adaptive-nms 1.0.0a2
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.