SMSD Pro™ for Python
SMSD Pro provides substructure search, maximum common substructure (MCS) search, fingerprints and similarity screening for chemical graphs. Core matching needs no RDKit, CDK or Java; RDKit is optional, for RDKit molecules and the RDKit image helpers.
Installation
python -m pip install "smsd==8.0.2"
To include RDKit, install the rdkit extra:
python -m pip install "smsd[rdkit]==8.0.2"
The CPU/OpenMP wheels cover CPython 3.10–3.14 on macOS arm64, Linux x86_64 and aarch64, and Windows x86_64. See the supported-platforms table for operating-system requirements and Docker support. Free-threaded CPython and Intel macOS need a source build.
Optional CUDA package
smsd-cuda provides optional NVIDIA CUDA screening on Linux x86_64 and needs
the same version of smsd:
python -m pip install "smsd==8.0.2" "smsd-cuda==8.0.2"
The GPU computes integer overlaps; scores use the CPU expressions and hits keep target order. Matching runs on the CPU. See the CUDA section for dispatch and CPU fallback behaviour.
Quick start
import smsd
query = "c1ccccc1" # benzene
target = "c1ccc(O)cc1" # phenol
assert smsd.Substructure.find(query).match(target).found
result = smsd.MCS.find(query).with_timeout(1000).match(target)
print(f"MCS: {result.best.atom_count} atoms") # MCS: 6 atoms
Substructure and MCS prepare a query once and provide match,
match_all and match_many. Each match maps query to target atom indices and
records the selected bonds and fragments. A search that stops early can return
a valid but unproved answer, so check result.optimal, result.complete and
result.status; an empty incomplete result does not prove absence.
MCS defaults to a connected maximum common induced subgraph (MCIS), ranked by
atoms and then bonds. MCS.Objective.MCES selects the maximum common edge
subgraph (MCES), which maximises common bonds, then their atoms, and adds no
isolated atoms. with_fragments() allows disconnected common graphs.
Batch search
Parse molecules once when you reuse them. Results follow the target order, and each target has its own search budget:
import smsd
query = smsd.parse_smiles("c1ccccc1")
targets = [smsd.parse_smiles(s) for s in ["c1ccc(O)cc1", "CCO"]]
results = smsd.Substructure.find(query).match_many(targets, num_threads=2)
assert [result.found for result in results] == [True, False]
assert [result.best.atom_count if result.found else 0 for result in results] == [6, 0]
results = smsd.MCS.find(query).with_timeout(1000).match_many(targets)
assert [result.best.atom_count for result in results] == [6, 2]
match_all returns up to 1,000 matches by default, symmetry-related mappings
included; check complete before treating an enumeration as exhaustive.
TargetCorpus holds targets for repeated queries. Batch calls use OpenMP, or
run sequentially without it.
For repeated screening, TargetCorpus.screen_many returns ECFP4 Tanimoto hit
indices for each query, and screen_targets_many returns similarity-bound hit
indices. See the
corpus API
for preparation and return order.
Fingerprints
Radius 2 gives ECFP4; mode="fcfp" gives functional-class fingerprints
(Rogers and Hahn, 2010). similarity() is
a screening bound, not a fingerprint metric; use the coefficients below for
fingerprint similarity:
import smsd
query_fp = smsd.fingerprint_from_smiles("c1ccccc1", radius=2, fp_size=2048)
target_fp = smsd.fingerprint_from_smiles("c1ccc(O)cc1", radius=2, fp_size=2048)
score = smsd.tanimoto_coefficient(query_fp, target_fp)
assert 0.0 <= score <= 1.0
FingerprintOptions configures circular, path, torsion and structural-key
fingerprints, including the 166 MACCS keys, with the same bits as in C++ and
Java:
import smsd
options = smsd.FingerprintOptions(family="ecfp", ring_size=True, cip_atoms=True)
fp = smsd.fingerprint("CC(=O)Oc1ccccc1C(=O)O", options=options)
keys = smsd.fingerprint("CC(=O)Oc1ccccc1C(=O)O", options=smsd.FingerprintOptions.maccs())
assert fp and keys
Screening
Rank a library by ECFP4 similarity, then search it by substructure as a prepared corpus:
import smsd
library = ["CC(=O)Oc1ccccc1", "OC(=O)c1ccccc1O", "CC(=O)Nc1ccc(O)cc1", "c1ccccc1"]
ranked = smsd.batch_similarity("CC(=O)Oc1ccccc1C(=O)O", library) # (index, Tanimoto), most similar first
corpus = smsd.TargetCorpus.from_smiles(library)
corpus.prewarm()
acids = smsd.Substructure.smarts("C(=O)[OX2H1]").match_many(corpus, num_threads=0)
assert library[ranked[0][0]] == "CC(=O)Oc1ccccc1" and sum(r.found for r in acids) == 1
With OpenMP, as in the published wheels, num_threads=0 uses every core
unless OMP_NUM_THREADS sets fewer. The
Python examples
screen a library of 2,744 molecules and set aside targets that cannot reach an
MCS similarity threshold before computing the MCS; they also cover count
fingerprints and the other coefficients.
RDKit molecules
With RDKit installed, pass its molecules directly. Mappings use the original RDKit atom indices:
from rdkit import Chem
import smsd
query = Chem.MolFromSmiles("c1ccccc1")
target = Chem.MolFromSmiles("c1ccc(O)cc1")
result = smsd.MCS.find(query).with_timeout(1000).match(target)
assert result.best.atom_count == 6
Conversion passes through SMILES, so coordinates, data fields and query
predicates are not transferred. from_openbabel and to_openbabel do the same
for Open Babel, without its atom numbering. See
input atom numbering.
Documentation
- Python guide: searches, chemistry options, timeouts and the full API reference.
- Python examples: fingerprints, drawing, layout, stereo, MOL and SDF files, R-groups and scaffolds.
- Installation guide: platform requirements and source builds.
- Validation record: release checks for 8.0.0.
- Benchmark guide: workloads and mapping validation.
- Changelog: what the release provides.
Build from source
From the repository root, with Python 3.10 or later, a C++17 compiler and CMake 3.18 or later:
python -m pip install build
python -m pip install -e ".[dev]"
python -m build
The standard wheels use CPU/OpenMP. The optional smsd-cuda package needs a
compatible NVIDIA driver; macOS uses the CPU. gpu_device_info() reports an
available backend, not the one a particular call used.
Other languages
SMSD Pro is also available for Java, with CDK integration, and as a header-only C++17 library.
Citation
If you use SMSD Pro in your research, please cite:
Rahman SA. SMSD Pro: Coverage-Driven, Tautomer-Aware Maximum Common Substructure Search. ChemRxiv, 2026. DOI: 10.26434/chemrxiv.15001534/v1
For the original SMSD toolkit, please also cite:
Rahman SA, Bashton M, Holliday GL, Schrader R, Thornton JM. Small Molecule Subgraph Detector (SMSD) toolkit. Journal of Cheminformatics, 1:12, 2009. DOI: 10.1186/1758-2946-1-12
A machine-readable CITATION.cff is provided for citation software.
Licence
Apache License 2.0. Copyright (c) 2018-2026 BioInception PVT LTD. Algorithm Copyright (c) 2009-2026 Syed Asad Rahman. See LICENSE and NOTICE.
Metadata
Release files for smsd 8.0.2
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 | |
|---|---|---|---|---|
| smsd-8.0.2.tar.gz | 1.2 MB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| smsd-8.0.2-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| smsd-8.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| smsd-8.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| smsd-8.0.2-cp314-cp314-macosx_26_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 26.0+ ARM64 | Details |
| smsd-8.0.2-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| smsd-8.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| smsd-8.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| smsd-8.0.2-cp313-cp313-macosx_26_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 26.0+ ARM64 | Details |
| smsd-8.0.2-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| smsd-8.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| smsd-8.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| smsd-8.0.2-cp312-cp312-macosx_26_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 26.0+ ARM64 | Details |
| smsd-8.0.2-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| smsd-8.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| smsd-8.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| smsd-8.0.2-cp311-cp311-macosx_26_0_arm64.whl | CPython 3.11 | CPython 3.11 | macOS 26.0+ ARM64 | Details |
| smsd-8.0.2-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| smsd-8.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| smsd-8.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| smsd-8.0.2-cp310-cp310-macosx_26_0_arm64.whl | CPython 3.10 | CPython 3.10 | macOS 26.0+ ARM64 | Details |
Total release size: 38.8 MB
Release files / smsd-8.0.2.tar.gz
| Download URL | smsd-8.0.2.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13e73110a7e37099a5c1f7fcc047b5421bf6d570976ed72dcf4f4486f575b82f
|
|
BLAKE2b-256 checksum How to use checksums |
a0e775dd785326e2fc0ab5ae17bd51422ceddf7048735755025f1638c608e82e
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp314-cp314-win_amd64.whl
| Download URL | smsd-8.0.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
57f0565dfc39506cbcaa73fc424e30c2c9986188d5038de5aca9a422f2a5eb16
|
|
BLAKE2b-256 checksum How to use checksums |
aa748080bf9ee39a727724f44a3ee5adf14ffdb770d8af18640170849dece01d
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | smsd-8.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3893b259cf50b577f92cc295452690718d69dd10809192bb62375f56e915069d
|
|
BLAKE2b-256 checksum How to use checksums |
831a5bea518ad7579ccca5edf30f230b01174a56443ad01e495341e1396cf615
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | smsd-8.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8c8a8e3fdd614d108cea3fa7d8df16e1014fa6ed4fa9cf8baebcbb5d67067818
|
|
BLAKE2b-256 checksum How to use checksums |
b5a3e6cf96fdf44b4dc23647ea4824b7dc9d0169e49a4a219c2097c1cab7826e
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp314-cp314-macosx_26_0_arm64.whl
| Download URL | smsd-8.0.2-cp314-cp314-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c3bccb82314391188e7c55cba9cf94fbeacfd6529278032ae74f024092c846e5
|
|
BLAKE2b-256 checksum How to use checksums |
5549cf48428937e66604688c513d91a27cceb08a2091099da3fa75445ed9bee1
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp313-cp313-win_amd64.whl
| Download URL | smsd-8.0.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9d3fb514edfb70747cec6e21845e3610a9a215df32d42426deff72d3073e4773
|
|
BLAKE2b-256 checksum How to use checksums |
4a9d115c8ee31ac940a2d1a75e0c55a59850bcd520c7e3a4dd6335aa9ef123b6
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | smsd-8.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6331e82f644a7f56679478121970c4bc4b3b9a185146baca5f0ead876a4877ec
|
|
BLAKE2b-256 checksum How to use checksums |
227c77de56427eb9bb59df3302b64893e6a9530f4f3197c95e5203815faeb4d6
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | smsd-8.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
7a9bf117feac96e5afb5fb8e9afc1cbfbac6df8634b069ed89136a2e566134af
|
|
BLAKE2b-256 checksum How to use checksums |
b3fdf226b258d6050906c5135c1cf0bac42c0d44b52fce450743fa639be5648f
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp313-cp313-macosx_26_0_arm64.whl
| Download URL | smsd-8.0.2-cp313-cp313-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0c62b19d1d45adbbfae6d0b53b1eb41d993d7e01c439d06135d45f79e469e9d5
|
|
BLAKE2b-256 checksum How to use checksums |
8302f4f3f9e53287ce5dd7c12d8c2e829a57aecd50902989e11e9861a9fb192e
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp312-cp312-win_amd64.whl
| Download URL | smsd-8.0.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b7b15f8b42f9c59f27eaaa24a8fe873b8c62733b1e5b2a8964ed20f2b9c50db4
|
|
BLAKE2b-256 checksum How to use checksums |
29a7e990eeaf3c328c51bc1185b90249280d354273213d44fb46db1c69076feb
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | smsd-8.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e2c59cef9253993bb6212d20840c58c367e668e37e8d061a04832e89c274e9d
|
|
BLAKE2b-256 checksum How to use checksums |
412df2da2c29e3cf18beca72385b4492abc8d6e776080d5bc91097b697b07d0a
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | smsd-8.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f7b939a3cfeee90013ae192b68b410ee2f81697ad8d1fa6087e0f6a064c2d2ee
|
|
BLAKE2b-256 checksum How to use checksums |
a127e6874a8ba2465f4b39a8942b11a18cdb990f62b7003546c3959b715aab5b
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp312-cp312-macosx_26_0_arm64.whl
| Download URL | smsd-8.0.2-cp312-cp312-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
55841f7f63ac673172ddabdbfba5675c861adf11c4522d5b93cc8ef12b849bb9
|
|
BLAKE2b-256 checksum How to use checksums |
d94805bd6391434abc1fe0f4437567d1208dc329a199ec97ae540da7902379ab
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp311-cp311-win_amd64.whl
| Download URL | smsd-8.0.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c77fbd848a0a78638918d50264376ec132124673e75d945104db3b4b71ec647d
|
|
BLAKE2b-256 checksum How to use checksums |
b9d685d7d0a81cb7279b70950a4943348d31ceb22f1f8d57427adad71e26edda
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | smsd-8.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f14e57798ab573a734cd1b7ccb738cba49e8a94fdd5e26a824e367c455a0d86a
|
|
BLAKE2b-256 checksum How to use checksums |
747d525073b8c17b8d07b0e8ee63786a0d172dd827cfc35478be81c46ef5a0e9
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | smsd-8.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
a4df8cc49cc2a8f2324f4d504a0d61eb6bbb68ff25c77f2e862ae0197e960ed8
|
|
BLAKE2b-256 checksum How to use checksums |
30e475c2a4f8270aa82a5aae293bb30443b6c6d9110a6451b29e2515ce1f03ab
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp311-cp311-macosx_26_0_arm64.whl
| Download URL | smsd-8.0.2-cp311-cp311-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
973a7823ecf8d9dabb717bc3d6d31b8125d7276c2d87e5bf0a3d9f2ae3cd2c7e
|
|
BLAKE2b-256 checksum How to use checksums |
67a266eda89a04f4392a623b58c6ab5916a1dc40eeb842ff7f14fd9a08634c09
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp310-cp310-win_amd64.whl
| Download URL | smsd-8.0.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7186664650b74eeb4007af48ec1bfdb5ea72cf45daa4c8d600efd0ba84c3fa2e
|
|
BLAKE2b-256 checksum How to use checksums |
dff90b00d0869899e2d4d5bbff8079f02a645e1c0c8cff66d99d14be1bd4ce1e
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | smsd-8.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a0c1a557740f4736f63be55d5c0c7e20f338ea352ae3a76477aaffc2d67ee10
|
|
BLAKE2b-256 checksum How to use checksums |
a7db059d13842708ec58452c3e1ce2bd0b8ba034ecf3fdcd87594da3866c7250
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | smsd-8.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
a21858bd3a89194eb4f98a24806202b0304a37f64247eeebc0a65257a654f9f0
|
|
BLAKE2b-256 checksum How to use checksums |
a09af171a8e8866f4347607ba92ddf1a0eef7169a152733f12d7734560c2255a
|
| 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 23, 2026.
Transparency logRelease files / smsd-8.0.2-cp310-cp310-macosx_26_0_arm64.whl
| Download URL | smsd-8.0.2-cp310-cp310-macosx_26_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fdc996d304874d10c6893fbd06cfc1ebcf9406f5d4540c91f2b587bfb4b69590
|
|
BLAKE2b-256 checksum How to use checksums |
e4ce3c0435c428ffe747e1cec2f1318f7b67b99ba10e88a05bd163129d5f1ca8
|
| 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 23, 2026.
Transparency logSecurity for smsd 8.0.2
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 21 files in this release have been uploaded with provenance metadata.
Attestation for smsd-8.0.2.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 Oct 23, 2026.
Transparency logA 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.