structure-clustering – Fast Exact Clustering of Molecular Structures through Parameterized Connectivity Graphs
structure-clustering groups molecular geometries by their distance-derived connectivity.
For each structure, the algorithm builds an undirected graph in which atoms are element-labelled vertices and connected atoms are edges. Structures are assigned the same cluster only when their graphs are exactly isomorphic. Fast graph signatures and Weisfeiler–Lehman refinement are used to reduce the number of expensive isomorphism checks. The edges describe the molecule's connectivity, not it's bonds.
Installation
Install the package from PyPI:
pip install structure_clustering
Upgrade an existing installation with:
pip install --upgrade structure_clustering
Prebuilt wheels are available for common platforms. Building from source requires a C++17 compiler and the Boost Graph Library headers.
Quick start
Cluster a multi-XYZ file:
structure_clustering structures.xyz
By default, only structures with fully connected graphs are clustered; structures with disconnected graphs are sorted out. The command writes the clustered structures to the Chemcraft-compatible file sc.chemcraft.chd.
To choose another Chemcraft output path:
structure_clustering structures.xyz -ec results.chemcraft.chd
To write only a deduplicated set of structures, use --representatives-only:
structure_clustering structures.xyz --representatives-only
This keeps the first structure from each cluster and all unique singles in the exported file. Clustering itself is unchanged; the option only filters the written output. If native output is requested with -e, the same filtering is applied there as well.
The native clustering format is optional and can be written in addition:
structure_clustering structures.xyz -e
This writes sc.dat alongside the default sc.chemcraft.chd. To choose paths for both outputs:
structure_clustering structures.xyz -e results.dat -ec results.chemcraft.chd
The native .dat output can be visualized with cluster-vis.
Command-line interface
usage: structure_clustering [-h] [--disconnected] [--config CONFIG]
[-e [FILE]] [-ec [FILE]]
[--representatives-only]
xyz_file
Options:
xyz_file: multi-XYZ file containing the input structures.--config CONFIG: TOML file with connectivity settings.--disconnected: include disconnected graphs in clustering. By default, disconnected structures are sorted out. An explicit CLI flag overridesoptions.only_connected_graphsfrom the TOML file.-e [FILE],--export [FILE]: additionally write the native clustering output. Without a filename, usessc.dat.-ec [FILE],--export-chemcraft [FILE]: set the Chemcraft-compatible output path. Chemcraft output is written by default tosc.chemcraft.chd. Note that the file extension needs to be.chd, otherwise Chemcraft will not read it properly.--representatives-only: export only the first structure from each cluster, plus all unique single structures. This affects both Chemcraft and native output and does not change clustering itself.-h,--help: show the command-line help.
If the installed structure_clustering command is not on your PATH, use:
python -m structure_clustering structures.xyz
Example
structure_clustering structures.xyz -ec clusters.chd --representatives-only
A typical run reports the number of clusters and singles, the number of structures sorted out, cluster-size statistics, and connectivity statistics. In the default connected-only mode, the sorted-out count includes disconnected structures as well as redundant members removed when one representative per cluster is retained.
Connectivity model and configuration
Connectivity is derived from interatomic distances.
For atom pairs without a dedicated pair-distance rule, atoms are connected when
0.8\,\text{Å} < d < r(A) + r(B) + 0.4\,\text{Å,}
where $d$ is the distance between the atoms $A$ and $B$, with their covalent radii $r(A)$ and $r(B)$.
A pair-specific distance replaces that rule for the selected element pair. The CLI defines an O–H maximum distance of 2.3 Å by default; it can be replaced in the configuration file.
Example sc_config.toml:
[covalent]
He = 0.90
Ag = 1.59
[pair]
O-H = 2.30
[options]
only_connected_graphs = true
All sections and entries are optional:
[covalent]overrides the default covalent radius of an element.[pair]defines a maximum distance for a specific unordered atom pair.O-HandH-Otherefore refer to the same pair.[options].only_connected_graphscontrols whether disconnected graphs are eligible for clustering.
Distances are in Ångström and element symbols are case-sensitive.
Connected vs. disconnected graphs
Connected-only clustering is the default. In this mode, a disconnected input structure is sorted out entirely: it is not compared with other structures and does not appear in either result.clusters or result.singles.
Use --disconnected to include disconnected structures in clustering by graph topology. With that option enabled, disconnected structures can appear in clusters or as singles just like connected structures.
How clustering works
For each input structure, structure_clustering:
- Builds an undirected, element-labelled connectivity graph from the geometry.
- Computes inexpensive graph descriptors such as vertex/edge counts, element counts, element-degree combinations, and connected-component sizes.
- Applies WL refinement to obtain order-independent vertex colours and a compact graph signature.
- Buckets structures with matching signatures.
- Runs exact Boost graph-isomorphism checks only inside the surviving buckets.
The signatures and WL hashes are filters, not proofs of graph identity. Final cluster membership still requires exact labelled graph isomorphism.
This makes the current implementation conceptually different from the previous version, which compared each structure against existing cluster representatives much more broadly. The new approach moves most rejection work into reusable signatures and reserves exact isomorphism for plausible matches.
Graphs do not have a natural ordering of vertices. Weisfeiler-Lehman (WL) refinement creates a canonical, order-independent description of a graph’s structure.
Python API
Cluster structures from a multi-XYZ file
import structure_clustering
machine = structure_clustering.Machine()
# Optional connectivity overrides.
machine.setCovalentRadius(1, 0.42)
machine.addPairDistance(8, 1, 2.30)
machine.setOnlyConnectedGraphs(True)
structures = structure_clustering.import_multi_xyz("structures.xyz")
result = machine.cluster(structures)
print("clusters:", result.clusters)
print("singles:", result.singles)
result.clusters contains the clusters (groups), result.singles contains eligible structures that have no clustered equivalent. When connected-only mode is active, disconnected structures are excluded from both collections.
The indices in clusters and singles are zero-based indices into the original input structure list, so skipped disconnected structures can create gaps in the reported indices. Do not rely on the ordering of the cluster list itself.
Create a structure programmatically
from structure_clustering import Atom, Structure
structure = Structure(0)
structure.addAtom(Atom(8, -1.674872668, 0.000000, -0.984966492))
structure.addAtom(Atom(1, -1.674872668, 0.759337, -0.388923492))
structure.addAtom(Atom(1, -1.674872668, -0.759337, -0.388923492))
The integer passed to Structure(...) is the structure's stored ID; cluster membership is still reported using the structure's position in the input list.
Inspect clustered structures
After clustering, graph-derived information is available through result.structures:
structure = result.structures[5]
print("atoms:", structure.numAtoms)
print("connections:", structure.numConnections)
print("fragments:", structure.numFragments)
print("hash:", structure.getHash())
first_atom = structure.getAtom(0)
print("atomic number:", first_atom.atomic_number)
print("x coordinate:", first_atom.position.x)
print("fragment 0 atom indices:", structure.getFragmentAtomIndices(0))
Export from Python
result.export("clusters.dat")
result.exportChemcraft("clusters.chemcraft.xyz")
The native .dat format contains cluster groups, singles, graph edges, and geometries. Group and structure numbers written to that format are one-based, while the Python result indices are zero-based.
Structure hashes
Structure.getHash() returns a 16-character hexadecimal WL-style graph hash. The implementation uses deterministic 64-bit FNV-1a-based mixing, so the hash does not depend on Python's process-randomized hashing or C++ std::hash implementation details.
The hash is independent of vertex ordering and useful for keeping track of clusters across multiple program runs (e.g., molecular dynamics simulations). It is not a substitute for exact graph isomorphism: hash collisions and WL-indistinguishable non-isomorphic graphs are possible but very unlikely.
Example:
0504d8ff3dc965c0
Example structure with two connected components:
Changes to v1.1.6
- Significantly improved performance: graph signatures and integer WL refinement now bucket plausible matches before exact isomorphism, instead of broadly comparing each structure with cluster representatives. Graph isomorphism remains the final equivalence test.
- Deterministic hashing: the previous string-WL approach is replaced by shared integer-WL/FNV-based hashing.
- Chemcraft CLI output: the CLI now writes Chemcraft-compatible output by default.
No breaking changes compared to v1.1.6. This version is confirmed to produce the exact same results as v1.1.6.
Development
Local development requires Python, CMake, a C++17 compiler, and Boost headers.
Create and activate a virtual environment, then install the project from the repository root:
python -m venv ~/venvs/structure_clustering_dev
source ~/venvs/structure_clustering_dev/bin/activate
pip install .
Python bindings are defined in src/main.cpp. When adding a new C++ API method or property that should be available from Python, expose it there as well.
The GitHub Actions workflow builds wheels for the configured Python/platform matrix when the corresponding workflow is triggered.
License
structure-clustering is distributed under the MIT License. See LICENSE.
Metadata
Release files for structure-clustering 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| structure_clustering-1.2.0.tar.gz | 26.6 kB | Details |
Built distributions (wheels)
Total release size: 4.5 MB
Release files / structure_clustering-1.2.0.tar.gz
| Download URL | structure_clustering-1.2.0.tar.gz |
|---|---|
| Size | 26.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06d3e175065462d678137491fceb64af3f07acf4e0b6a9dca6bebb8d4e6016b1
|
|
BLAKE2b-256 checksum How to use checksums |
c5f5a5395cadf8fed555db286498f3534dd8c73cb0c24bdfb4ef91ab0aeb1523
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp313-cp313-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 176.7 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5cb654791f4d05a4b156711b6e8352eca2b57abc65f4fa5156158f8426788e2b
|
|
BLAKE2b-256 checksum How to use checksums |
29f808e9d0932ef15b4bdde86b57d8abfe966604f7bd8148421b5342a9524f78
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp313-cp313-win32.whl
| Download URL | structure_clustering-1.2.0-cp313-cp313-win32.whl |
|---|---|
| Size | 145.7 kB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
1cef2d0acb37aa37e29ffe6660c90f2acd76904d8d936b05cb76f50ccf1d4efc
|
|
BLAKE2b-256 checksum How to use checksums |
5abdacaa14d597479541959a87e2a26e5142d330175bd3e26d18fd5adc75fa3b
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 197.8 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
28008fa6860240a68b37ada38f7fc66b3ab369f8c5c731ce02f56571a026180f
|
|
BLAKE2b-256 checksum How to use checksums |
f4e5a3e3ad68cafac446ed2922d187ce652025a9901d36fc31683930008fda1e
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 150.6 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6a05fe25dce031ddec3433894f77f468e3dc307050919dacf5c2ded31c4a44a4
|
|
BLAKE2b-256 checksum How to use checksums |
c341bbdeddefd8b8b171b1bc71e10e32716132f9903345de7d40cfa1d3469da1
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp312-cp312-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 176.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
683a8ad9867b5ed9d036c1e31e36913f598bc22887f6aeed0aef89a2278dcbe4
|
|
BLAKE2b-256 checksum How to use checksums |
a05226957dc6cc005b93e49cbdaec6913a16f696729a4f3d1048aaf37f7aa407
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp312-cp312-win32.whl
| Download URL | structure_clustering-1.2.0-cp312-cp312-win32.whl |
|---|---|
| Size | 145.8 kB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
5e3606b60f64c85bdbaa93224e0fc496840172dd15df12dddf50b59d8e8ee7ec
|
|
BLAKE2b-256 checksum How to use checksums |
1f97d91e329fa190b113c41583598b71c0b3868c281277b9ac4036a948597fea
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 197.6 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f1021bca358cc91a3577d44f30249f72648b18fd40025c9858d5a8b0e9753d48
|
|
BLAKE2b-256 checksum How to use checksums |
fde9a5e7b42eee8f53eb7c7e55bf43cc63ec59a73159e1db597930be6f77e405
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 150.5 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0ca711a2a74c584eaad1a5479e6eb53db070cce58818d0cab0e4874778501fc0
|
|
BLAKE2b-256 checksum How to use checksums |
80652575c4919b644007002ae9b93e33a620002b814deb1a6bef06184adf18dc
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp311-cp311-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 174.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
21ebaf66a941c77276e20c2077c60d6ade4e994e7f84cf0401025b1fad16aa15
|
|
BLAKE2b-256 checksum How to use checksums |
9df8c91e92160d284a4371739eed5544753483671c9a6a42849854ff68f1d2f3
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp311-cp311-win32.whl
| Download URL | structure_clustering-1.2.0-cp311-cp311-win32.whl |
|---|---|
| Size | 145.3 kB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
500b233b18a5d590c97526da7d80f4aed313b3d77f430d4fe11be305ee4de854
|
|
BLAKE2b-256 checksum How to use checksums |
c799fd7ef362db44ca6f62628c553bf9d0c29615e8057cae117327251744acf3
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 197.6 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
183b80d53407a0c5e1096ff55a9cd202789e400ab4776008a3fbd905e41b6d0f
|
|
BLAKE2b-256 checksum How to use checksums |
08d9e7f2b26ff630b682711bda1cf2f1e7e7c6dfdea56935ce3b0386c99c6b1c
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 149.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
29edb0da9deaefe98bf5d980635ccf9c14e2642fce355e1950e4716fc1f613b5
|
|
BLAKE2b-256 checksum How to use checksums |
c387b8890667fcd4de07718de1541a568adbf78c8ef186e57c76793e296e275a
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp310-cp310-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 173.2 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
755d13541acb84ea44c3cca98a53df973ab4022f4af85077d643f2d3599a2997
|
|
BLAKE2b-256 checksum How to use checksums |
be1da9d0d49b0ba0f594902b4dd4eedc1916db5eea075f9788bef462f373c619
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp310-cp310-win32.whl
| Download URL | structure_clustering-1.2.0-cp310-cp310-win32.whl |
|---|---|
| Size | 144.5 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
d7de82e586fe1e8c98bd9233c5ff14b58732ee791ace0527cdb89079b718cd11
|
|
BLAKE2b-256 checksum How to use checksums |
220b3507497387639b3792543e3f3a6715db3c52297d8fa7767e2498547aedb2
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 196.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1461dce09ceac9ba5392a5a288babe9a36afd94a91f4cd5cdc7e673c79bedd08
|
|
BLAKE2b-256 checksum How to use checksums |
c5807d4e5c8989b46c216cf59600051580004c8f27c21de908463f7a2518f05d
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 148.5 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0866d8d0671fb7a3fb46acdc919a00bcd1afd6e23b3ce24e588935700ed8cb36
|
|
BLAKE2b-256 checksum How to use checksums |
0eb4168b0e8c34899f050c5502d63ea638206b89e9378a44d09516e882506be0
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp39-cp39-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 173.4 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
609d0c93c82057f761ebb5144aa13ac3440b3ef68dc3f0408a567d399602cbc0
|
|
BLAKE2b-256 checksum How to use checksums |
4699b5076ad4788e4b76afacc5b8da0ec73e7f37c6478628d476c14c6248b487
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp39-cp39-win32.whl
| Download URL | structure_clustering-1.2.0-cp39-cp39-win32.whl |
|---|---|
| Size | 144.7 kB |
| Tags | CPython 3.9 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
53050dbd76ae4b078917dedb7e3008c867fc81ee2be927b2209b91a10311dafa
|
|
BLAKE2b-256 checksum How to use checksums |
8512f17076fea0298dfe6045429976379932162414f750170f36bd3c6dbb2ad1
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 196.6 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1ee66efdaaf91830bd914c08dd16dcc6fff55287cbc7b2c1e5ea8a9e19bbe8c6
|
|
BLAKE2b-256 checksum How to use checksums |
f702caecf19ee43f04826f54d3d85257d690893dfc37c9a7f7f7f42c23c99ca5
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 148.7 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5272e1b2ed2c96f26d5487baad8a7826c43b2d5b6981d6fe42af228b80a4ecf5
|
|
BLAKE2b-256 checksum How to use checksums |
efa94997bc6c62a69dc5eb765a010d9070681411b02d378da621d1d46cd435cf
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp38-cp38-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 173.2 kB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0a74d03bb037a0a3730ea8b000c2eabc78302a3045815e23e791279921f53e51
|
|
BLAKE2b-256 checksum How to use checksums |
9d0e7e635568619d8a1e0c062e9b47cf6cfe06eb159193107b3a95771f5e5232
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp38-cp38-win32.whl
| Download URL | structure_clustering-1.2.0-cp38-cp38-win32.whl |
|---|---|
| Size | 143.1 kB |
| Tags | CPython 3.8 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
aa6f741780a58519a77a2e7eb7a9451d0126ec2af29e1bd01831827bfb9c4ef8
|
|
BLAKE2b-256 checksum How to use checksums |
cbaca3a46ebb8dd4a4605283f6c1c16b45f40e72ad65c604f0efbb8ba7b0ffc2
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 195.2 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e518bc08eeeb6e2cdd0b15637d6df6aae7e7c6c8e79faba13d1ee54508dc8327
|
|
BLAKE2b-256 checksum How to use checksums |
17d946c268a179677d694f2a6b560b67db695e1767fd7984d9a48982d74cd826
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
| Download URL | structure_clustering-1.2.0-cp38-cp38-macosx_11_0_arm64.whl |
|---|---|
| Size | 147.3 kB |
| Tags | CPython 3.8 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8eedb206d09ae5baad52fc1f5873aefed3cf96e3dc279038973eb00575144ffc
|
|
BLAKE2b-256 checksum How to use checksums |
afaac13651ad1d803435fd9b214eba24450218944ae3075ca6a76017bac98dbe
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp37-cp37m-win_amd64.whl
| Download URL | structure_clustering-1.2.0-cp37-cp37m-win_amd64.whl |
|---|---|
| Size | 157.9 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0f44d6497f3b703eedc80a5fbec97d2033606fcdcbf88b949e3bd823a3075d18
|
|
BLAKE2b-256 checksum How to use checksums |
e5576726fb49c813631e5f48c1d84d8cf2f5225e07265b91b8e205523bc5c65a
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp37-cp37m-win32.whl
| Download URL | structure_clustering-1.2.0-cp37-cp37m-win32.whl |
|---|---|
| Size | 133.7 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Windows x86-32 |
|
SHA-256 checksum How to use checksums |
aba8fb75d4037cc2d186533a3f0eb92674f55bf5e3f46fa684f90a6b3ac0e217
|
|
BLAKE2b-256 checksum How to use checksums |
288a6e5a9617848a20e24b89332f6f8e900043e38c75f045ca8a5c57868a4627
|
| 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 Aug 14, 2026.
Transparency logRelease files / structure_clustering-1.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | structure_clustering-1.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 179.8 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0bb315641c6d31b62b32a9034b3decf92e4aa06944e2757c562ee77f277b811c
|
|
BLAKE2b-256 checksum How to use checksums |
97fc82c47b9e874bf0923cf5e34fd0c5235f0546ca16c47df270e1e7a5fb94d1
|
| 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 Aug 14, 2026.
Transparency log