Skip to main content

Graph-indexing wavelet matrix for similarity search over large graph databases

Project description

gwm

gwm finds every graph in a database whose similarity to a query graph is at least a given threshold — it answers threshold queries, not top-k or approximate nearest-neighbor search.

It encodes each graph as a binary set of Weisfeiler-Lehman (WL) subtree features and indexes that feature space with a wavelet matrix. Queries are answered by traversing the wavelet matrix rather than explicitly scoring every database graph. It has no Python runtime dependencies.

This is the reference implementation of:

Yasuo Tabei and Koji Tsuda. Kernel-based Similarity Search in Massive Graph Databases with Wavelet Trees. Proceedings of the 2011 SIAM International Conference on Data Mining (SDM), pp. 154–163. https://doi.org/10.1137/1.9781611972818.14

@inproceedings{tabei2011kernel,
  author    = {Yasuo Tabei and Koji Tsuda},
  title     = {Kernel-based Similarity Search in Massive Graph Databases with Wavelet Trees},
  booktitle = {Proceedings of the Eleventh SIAM International Conference on Data Mining (SDM)},
  pages     = {154--163},
  publisher = {SIAM},
  year      = {2011},
  doi       = {10.1137/1.9781611972818.14},
}

The package was previously distributed as gWT; gwm is the same algorithm and input format under a new name (the on-disk index format is an internal implementation detail and isn't guaranteed to match gWT's).

Installation

pip install gwm

Prebuilt wheels are provided for Linux (x86_64, aarch64) and macOS (x86_64, arm64) on CPython 3.9–3.14. There are no Windows wheels; other platforms may be able to build from the source distribution, which needs only a C++17 compiler (see Building from source).

Quickstart

Build an index from a database file and search it with a query file, both in gSpan format:

import gwm

index = gwm.Index.build("db.gsp", iteration=2)
index.save("index.bin")

index = gwm.Index.load("index.bin")
for hits in index.search_file("query.gsp", threshold=0.8):
    print(hits)  # [(graph_id, similarity), ...], one list per query graph

graph_id is always the graph's 0-based position in the database (file order, or list order for in-memory graphs) — not the id written on a gSpan file's t # line, which gwm ignores (see Graph file format).

Graphs can also be built and searched entirely in memory. Each graph is a (labels, edges) pair: labels is a 0-based list of integer vertex labels, edges is a list of (u, v, edge_label) triples (also 0-based, undirected):

import gwm

graphs = [
    ([6, 6, 6, 6], [(0, 1, 1), (1, 2, 1), (2, 3, 1), (3, 0, 1)]),
    ([6, 6, 7],    [(0, 1, 1), (1, 2, 2)]),
]

index = gwm.Index.build_from_graphs(graphs, iteration=2)
hits = index.search_graphs(graphs, threshold=0.8)

gwm.from_networkx() converts a networkx.Graph (read from label node/edge attributes by default) into that same (labels, edges) form:

import networkx as nx
import gwm

g = nx.Graph()
g.add_node(0, label=6)
g.add_node(1, label=6)
g.add_edge(0, 1, label=1)

index = gwm.Index.build_from_graphs([gwm.from_networkx(g)], iteration=2)

networkx itself is not a dependency — from_networkx() only relies on the standard .nodes(data=True) / .edges(data=True) protocol.

Index reference

  • Index.build(path, iteration=2), Index.build_from_graphs(graphs, iteration=2) — construct.
  • Index.load(path) / index.save(path) — the two sides of the on-disk index format.
  • index.search_file(path, threshold), index.search_graphs(graphs, threshold) — encode queries with the index's own label dictionary and search in one call.
  • index.encode_query_file(path), index.encode_query_graphs(graphs) — encode only, returning each query graph's WL code set (list[list[int]]) for reuse with search_encoded.
  • index.search_encoded(labels, threshold) — search a single already-encoded query, where labels is one WL code set returned by encode_query_file/encode_query_graphs.
  • index.num_graphs, index.iterations, index.matrix_depth, index.index_length, index.memory_bytes — index statistics.

threshold must be in (0, 1]; it is the cosine-similarity cutoff, not a count.

Command line

The pip package installs a gwm command:

# build an index (-iteration = number of WL relabeling rounds, default 2)
gwm build -iteration 2 db.gsp index.bin

# search (-kthreshold = cosine similarity threshold, default 0.8)
gwm search -kthreshold 0.8 index.bin query.gsp

The single-dash -iteration / -kthreshold flags (not --iteration) match the legacy gWT CLI. Building from source (see below) also produces standalone gwm-build / gwm-search binaries with no external library dependencies and the same options; these are not part of the pip package.

Graph file format

Both the CLI and Index.build/search_file read databases and queries in gSpan format — one record per graph, starting with a t # line; blank lines between records are optional (a new t # line is itself enough to end the previous record):

t # <anything ignored by gwm>
v <vertex-id> <vertex-label>
e <from> <to> <edge-label>

The tokens after t # (conventionally a graph id, a class label, and a name) are ignored by the index — as noted above, a graph's graph_id in results is its 0-based position in the file, not this field. Vertex ids are 1-based positive integers and must be declared with v before they appear in an e line; vertex and edge labels must be non-negative integers. Vertex ids should be contiguous starting at 1 — gaps are not rejected, but are silently filled with extra zero-label, edgeless vertices that then contribute their own WL features. Graphs are treated as undirected, and self-loops and repeated edges are read as given (not rejected or merged). gwm.read_gspan(path) parses this format into a list of (labels, edges) graphs used by the in-memory API.

How it works

For each graph, the initial vertex labels are used as round-0 features; each subsequent WL relabeling round then produces one signature string per vertex (its own label, then its sorted (neighbor label, edge label) multiset). Each distinct signature is assigned a dense integer code shared across the whole database. A graph's feature set is the deduplicated set of codes seen across all rounds. Unlike the counted feature vectors some WL subtree-kernel implementations use, this is a binary feature vector — a code is either in a graph's set or it isn't — so a feature set's squared L2 norm is simply its size.

iteration (default 2) is the number of WL relabeling rounds run after the initial vertex labels, so iteration=2 contributes three rounds of features per graph: the initial labels, plus two rounds of relabeling.

At build time, every code's posting list (the graphs containing it) is concatenated into one sequence and stored as a wavelet matrix. At query time, each of the query's codes contributes its interval in that sequence; a DFS over the matrix intersects those intervals level by level, pruning any subtree whose surviving range is already too small to reach the threshold. At a leaf, the surviving range size is the number of codes shared between the query's feature set Q and the graph's feature set G, giving the cosine similarity between them directly: |Q ∩ G| / sqrt(|Q| · |G|), without explicitly scoring every database graph one by one.

Limitations

  • Graphs are treated as undirected; edges are stored symmetrically regardless of a gSpan file's from/to order.
  • Similarity is computed over binary WL subtree-feature sets (present or absent), not per-code counts.
  • gwm supports threshold search, not top-k or approximate nearest-neighbor search.
  • The on-disk index format is an internal detail and isn't guaranteed to be stable across gwm versions or compatible with indexes produced by the original gWT package.

When to use

gwm is useful when you have a mostly-static graph database and need to run many threshold-similarity queries against it. For a one-off query against a small database, a plain linear scan may be simpler and just as fast.

Building from source

make                  # from the repo root; produces src/gwm-build and src/gwm-search
make test             # build + output-parity regression

or with CMake:

cmake -S . -B build && cmake --build build

Both require only a C++17 compiler; all non-standard code the build uses is vendored in the repository (see License).

License

gwm's own code is MIT licensed (see LICENSE). It vendors Sebastiano Vigna's sux rank/select library (src/rank9sel.{h,cpp}, src/macros.h, src/popcount.h), which is LGPL-2.1-or-later (see LICENSES/LGPL-2.1-or-later.txt). The distribution as a whole is therefore MIT AND LGPL-2.1-or-later; full source for every component, including the vendored library, ships in the source distribution.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gwm-3.1.3.tar.gz (83.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gwm-3.1.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (143.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp314-cp314-macosx_11_0_arm64.whl (134.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

gwm-3.1.3-cp314-cp314-macosx_10_15_x86_64.whl (145.7 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

gwm-3.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (143.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp313-cp313-macosx_11_0_arm64.whl (133.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gwm-3.1.3-cp313-cp313-macosx_10_15_x86_64.whl (145.4 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

gwm-3.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (143.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp312-cp312-macosx_11_0_arm64.whl (133.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gwm-3.1.3-cp312-cp312-macosx_10_15_x86_64.whl (145.4 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

gwm-3.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (156.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (142.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp311-cp311-macosx_11_0_arm64.whl (133.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gwm-3.1.3-cp311-cp311-macosx_10_15_x86_64.whl (144.5 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

gwm-3.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (155.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (141.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp310-cp310-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

gwm-3.1.3-cp310-cp310-macosx_10_15_x86_64.whl (143.2 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

gwm-3.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (155.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

gwm-3.1.3-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (141.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

gwm-3.1.3-cp39-cp39-macosx_11_0_arm64.whl (132.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

gwm-3.1.3-cp39-cp39-macosx_10_15_x86_64.whl (143.3 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

Details for the file gwm-3.1.3.tar.gz.

File metadata

  • Download URL: gwm-3.1.3.tar.gz
  • Upload date:
  • Size: 83.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3.tar.gz
Algorithm Hash digest
SHA256 8330e681146b841b315e005b27316ec648fa8f9a9184673b28e19eb21625a586
MD5 b12733fb167b8b0ece3c709c1319edd7
BLAKE2b-256 73eb00a1696b86bac6d24384353c53fc5c8c9f3e0a722b3aebc681f69befdb54

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3.tar.gz:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e86cefa5cb95f30e058c1a6a0d8868c6a62b7010c9537caaaa28adc5363bbeb5
MD5 f14f770111ac0bb170026aa04d9ff102
BLAKE2b-256 d007684f5efeb747882825b88b6006627622c7666d9f422d71cdc2cdff1934b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e0048e30b72c50d0108e64faa12afe4566d563a1669e79aade33a4dae7ceea9f
MD5 183364dccc89cce58c40480c98e45a16
BLAKE2b-256 0a68ef9240b5d67383515e31a033be1ee8e18f81ed26b519c65d1e3837ce9fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 134.2 kB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0045aef000adc5ef23d3754eb53cb297a2e3f0355cf5a8c93aa53c2435146a11
MD5 e893512e452bfca5902c32c1b5dd654d
BLAKE2b-256 e8afa45a092a54ae68c16c47c0ace61fa87aca5b04e7fcad7d37f448c87529fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e0653cfe74fe1777964362634e4bea0ad376c8bcfdce38c3f64695093b403c67
MD5 9e5a799e9ced6d87811b6418264bf520
BLAKE2b-256 eaff5c3acc3fbddd392976436d7a01d0485a6e68137e5bb81bede8643b924134

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9df221271c1baab873e5f5716d6f0525f20aa083d3044178593a2e631cba3efb
MD5 af2685fe30fac45600abedfd9195a2c6
BLAKE2b-256 fe9ab1b5386cc92b122610bf69241b0c99016d4bf31f97f736a5ecad642918d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1afd8ccad4cc2f2131ced0d2495786217bfb7f22bfe4dcd686537af76dece75a
MD5 90ced09a3dc54682d476e46300746a30
BLAKE2b-256 5b7178cccc014daae3f47b5cde66f6039c1dd7f4a67511298c14d63b52b6287e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 133.9 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db68a6f6b847484ef4eb00ab649d629761dfb45dcc08ddf6dd4919fc34e05cc1
MD5 25441061bfa4e557f8f0f4291efef757
BLAKE2b-256 46cea19147366b6bc0ffc9f424592f121f7ac67dbf34432d76323be0bd0ab3d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e84a1e47f8aba22569d0e8b373ddd6662f7217751da396d97e84825cc4f12e75
MD5 89e851544d00fc35afe157fc63034d45
BLAKE2b-256 2398786977d07cabb7b29fbe20552b6b76c209c4403e4b6cf89e69b152b598a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp313-cp313-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec3f45bbf1238b25b898d684ce8e3eded240f6da295d2e1ada385e4acf37df8a
MD5 bacc983bb8aeb33397fa0dd7be9aa85a
BLAKE2b-256 622fef4345a900ffacc0711832d136511d9502c9b21dc6ede7614be632bd0203

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a3f061049d6365ce5005f27675242ba67a88cc93c607e9d032799a0f795d2b84
MD5 26040e92762fd6f305020956f0871fef
BLAKE2b-256 0bcb85e0406284687a456dc2505c8061b4ceaa0d68e40597b2b49c24fa382818

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 133.9 kB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d78cf13151fc8ad5a05057a10ce546d7da20b7804d257aacaa322b41252d115
MD5 0bcf06821fe15b42e441462e999ee091
BLAKE2b-256 43621c7bbd2cb3e28d6ed32d30d2ea53b198c2ba24cacef07fd8fe36398b6720

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6f8ccc5a44e63ff9bccb99fb053e6169eeffc7ecd55306fc6b13922a44449836
MD5 1b0b5383c759baa191f6afb6418c7a73
BLAKE2b-256 9ce35113e8db9d1eb2a74b1bb65c5d59e15982095cc0b27eec30c14acc680cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp312-cp312-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9328d367fdd69dd4ea2615e6672f67bb2bfbd1548ea99614d4374f2cb097d81
MD5 8942469973058eea10340c80891466a6
BLAKE2b-256 37812372cd6f20f497a3ae9b20196ac9f3373576403a8939555f4fec6c43fa68

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 40b726a56450278535fb46efa392c92522df112f6236d886a244d88b5813641c
MD5 c7a54e43866560db826abfb90e0a1d20
BLAKE2b-256 8256bf9f73d04269924e67ed0b32aec0bdf1b24bf642b6a9549fc7f944b68c39

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 133.8 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60cec60244f3fba1c295dbe27affa4ba465b9797217ec2b9797ed60172f256b4
MD5 814d70a1a5b1ae7d8cdddd8f94cfefa7
BLAKE2b-256 33bac6b5060a81a15d1bc9045a8f066ed6a1ba493b3a17d992c6f260ef07bb5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 69fc7428b2905d2d2682b8293f3da3359e7c7f7d7033308339434e9537fabfa6
MD5 2f2c26898d1d654d28fbed7a03194d43
BLAKE2b-256 5d9049e05ff2c3d6398b2c17ce1bf16bf84d1358236698b788729bb0c4ee907b

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp311-cp311-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bb1759737ffc34536541cc87f7e99843c45220588eafee7359f75d6dd81b7a9
MD5 163a5c829a088592e561cf87ecf012b3
BLAKE2b-256 3e4640040a864ba6a1bd37f6b078d18c07af81e8668a31e7e939f1d29b0091a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0716cfbd3b3796b95082cf90ec0ce25b5c1965a5605efd882841e111d0331af7
MD5 de36788c7582a16ad49969bcde3b652b
BLAKE2b-256 c18e70d9610f2403f54854a8b6d0e8b34383b0e0535c506a9d4747fb1fd9c4c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.6 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d44c1a49a845da97e7788a9d87cf378e6c4bcd5e4cf607413038ad180155965a
MD5 9c0752f647f41693b42037e37a8e4453
BLAKE2b-256 b864099d75d13f13ce8cf77c96f746605f7dd2e846eb39231e39b0f54fbf9893

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 75907f20e75530700e9c27cf426d0a08f6fd741448954e317ec5ce93feac4e3b
MD5 198a2019a0c47052c5f31ec9d97cc6c4
BLAKE2b-256 ec1e1b07dc4106c455379775c81772c680a3ebfd60d2409e3889cbe5662cf3d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp310-cp310-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25a30333b0b8612a56f6bdd0b8bf22aae43607a874def9a28b94c9060e86fc9c
MD5 4f8dc7bcf4bc15306a855baca2cff005
BLAKE2b-256 ac0fa3a78816969ed8ed232c18e170278e57b9e5673e45b7dbefcd107d944102

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.3-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ec305a8bd0e7b8587ecf7ddfe1c83cb3e89d32b438b591b969dc380ed35d99b8
MD5 26837a3db6e582955aa5eee695185c68
BLAKE2b-256 002935ed9a5c838cad9cc03c2dbccf5e4b14a717e02881fe6b84f5e6ab6a078e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.7 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fbeb32c19d4fa73613f12aedce73b5eed0d1ea33926507ddeea999dc663b172
MD5 13c54bf41ca3ba10ef68d7a6df5fa8e4
BLAKE2b-256 3bf6becf9a1c17bcb9a568864613a747ce61dd9d451b2e5369856827be648979

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwm-3.1.3-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: gwm-3.1.3-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 143.3 kB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.3-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 598bc0d984e9b7f39b19cc613ce948eb1db36b4ec859616faab634cadcf0df54
MD5 d48eec0802a6be00e19e3be92735808a
BLAKE2b-256 066c9a3e64ff6bde346e43929f4d47d1a096b874d8511aebae8903ad96e63acd

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.3-cp39-cp39-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on tb-yasu/gwm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page