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.

gWM is the reference implementation of Tabei and Tsuda's graph-kernel similarity search method (SDM 2011; full citation below). 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), macOS (x86_64, arm64), and Windows (x86_64) on CPython 3.9–3.14. 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).

Citation

If you use gWM in published work, please cite:

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

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.7.tar.gz (84.1 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.7-cp314-cp314-win_amd64.whl (333.1 kB view details)

Uploaded CPython 3.14Windows x86-64

gwm-3.1.7-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.7-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (143.5 kB view details)

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

gwm-3.1.7-cp314-cp314-macosx_11_0_arm64.whl (134.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

gwm-3.1.7-cp313-cp313-win_amd64.whl (323.4 kB view details)

Uploaded CPython 3.13Windows x86-64

gwm-3.1.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.8 kB view details)

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

gwm-3.1.7-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.7-cp313-cp313-macosx_11_0_arm64.whl (134.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gwm-3.1.7-cp313-cp313-macosx_10_15_x86_64.whl (145.5 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

gwm-3.1.7-cp312-cp312-win_amd64.whl (323.3 kB view details)

Uploaded CPython 3.12Windows x86-64

gwm-3.1.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.9 kB view details)

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

gwm-3.1.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (143.1 kB view details)

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

gwm-3.1.7-cp312-cp312-macosx_11_0_arm64.whl (134.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gwm-3.1.7-cp312-cp312-macosx_10_15_x86_64.whl (145.5 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

gwm-3.1.7-cp311-cp311-win_amd64.whl (322.9 kB view details)

Uploaded CPython 3.11Windows x86-64

gwm-3.1.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (157.0 kB view details)

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

gwm-3.1.7-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (142.6 kB view details)

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

gwm-3.1.7-cp311-cp311-macosx_11_0_arm64.whl (133.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gwm-3.1.7-cp311-cp311-macosx_10_15_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

gwm-3.1.7-cp310-cp310-win_amd64.whl (321.6 kB view details)

Uploaded CPython 3.10Windows x86-64

gwm-3.1.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (155.2 kB view details)

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

gwm-3.1.7-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.7-cp310-cp310-macosx_11_0_arm64.whl (132.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

gwm-3.1.7-cp310-cp310-macosx_10_15_x86_64.whl (143.3 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

gwm-3.1.7-cp39-cp39-win_amd64.whl (322.6 kB view details)

Uploaded CPython 3.9Windows x86-64

gwm-3.1.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (155.3 kB view details)

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

gwm-3.1.7-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (141.6 kB view details)

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

gwm-3.1.7-cp39-cp39-macosx_11_0_arm64.whl (132.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

gwm-3.1.7-cp39-cp39-macosx_10_15_x86_64.whl (143.4 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: gwm-3.1.7.tar.gz
  • Upload date:
  • Size: 84.1 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.7.tar.gz
Algorithm Hash digest
SHA256 96cfeab058a4862e99255649a464bb51280a83368be66e827bb387fd88f2c147
MD5 f6558797a3cf95979ea9fdb221bfb9c3
BLAKE2b-256 553d2b42caabf83017afa6c08a5918ee7f3a7167170f164659ad18b40f27e7af

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7.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.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 333.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d54c502fad25886d2f5de46ca1b8c3866c6bdef6c41b3ba227c85b62ed0c3997
MD5 d8dd816c7c8bf3dab50389d587311167
BLAKE2b-256 676e392fc16e396e610d1309da05886c013061452b014bd69cc99f21e0926951

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp314-cp314-win_amd64.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.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8598ee1fc59074ed5bf3dd45c853910c66214118cc7bde4b589ae489acec6105
MD5 8f8bc61659acb65a012a0c521e6a08b3
BLAKE2b-256 34c94af4c42c9f4ab9192e83aa98c396366029650ede3206a4f7e2a6e23b3253

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0886829ba0000801c533989f3f504ae1cc17c470393673f0a47f4c144530a2cd
MD5 ef7fd54fa3b095c05abe9a1ebfeb6cfa
BLAKE2b-256 43f6df8b878233001b4efd6f49c291fbf6fa992c8c5c8e6c32b044eac5744bff

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 134.3 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.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b68d5fd9a2631e4fe565e6a87fffceb66cc39341377044369a81c93d8f84d392
MD5 5ca944fef73aa9f0e393623287d2d61f
BLAKE2b-256 6208edd4075727bfea64bf23673fb01ab511af90d8151c3f4e6bb362c65e6d6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 041c44e76ca43137a1a5a1fb5e098e94dab2e3b1845135fa1cff982296110f49
MD5 f2754037601f092471dde4199457dfb9
BLAKE2b-256 7a4d1fc0d9f7746e18ee035d3fe7849523432cf2619427916ca9a8186f35e49c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 323.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2377c4568135bd976aab08eb085ae8d8a33fce8932b1b7ca98317e7501acb716
MD5 168c729f0355f3193726d67a6df354f5
BLAKE2b-256 45c82db2ccec028217a09284fb5fc4cfb7f77a38ae44762934e294537d266cf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp313-cp313-win_amd64.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.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41af37ef2bd825098776d92889e6ac29cbb282642aaa50bce88db49bada6f0bb
MD5 fbab352954bb384c03868b8569925983
BLAKE2b-256 a2a436e8aaa10dba4ecb5c9d8b9923dbcbae3c0f47e7ee18e1b8eed6215b87a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6415dc25fe014625c64e36a846be6850a9854ea5d268490b6de619714282362
MD5 40ddb512495c496dc24cfa33e82c2dc5
BLAKE2b-256 b058e11054d85074c64cf9ca699f51ad85fc2fb2d19b82272c533cd7e692ac90

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 134.0 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.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c44317c4431c2677bf08eb95059d0229a1e1a574ec93ec0f95f1547433c5a698
MD5 363a3e7823d830c5e109621ce1f6c340
BLAKE2b-256 13e2fd0bfaad6c1b8028fe48851c18dae9959103cf37634e4d03d1886ffb9c9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 24c8c68cee2261174ffd72e801d584234611e1f2b9c25ace7dc11481e235d9bf
MD5 f0426854ecbd87447755fec638dbf77e
BLAKE2b-256 c7392e1d28946b3bf028c8448a9e4ee9784b8acbaa9d8046c163c1c9d3e99ed2

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 323.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b49be8cc58d1a670eba48df2c68f5605cb4c271b1dfd186ad01e99494fb1dfd1
MD5 0b6d603834fabb7e945f3ea748f7bb63
BLAKE2b-256 a4b96a56c81ddb05e2d6b3cc7a5f43b3fc4fd861a3dec128d00eb249b29e9e01

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp312-cp312-win_amd64.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.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2efe1675126d6bcab3e37d5b2e6c957aef4dd891b2fa546aa9e026bdef4be013
MD5 f1cc73994c3f818ea37fab243b235c0e
BLAKE2b-256 f47220ebf96b1d842e765d84af1a063bcced6bd9fa5a6fcabe8efc8ec871c094

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 41f33438b71875a5c73579318ed234677ff6b2b752440097513c07d8292f50a0
MD5 031cb80d95960ce27f36e0a54e4f983e
BLAKE2b-256 6528c59070de29b7f654eaaf3b6fd0aa1ae8ec3a8d8b30aa8e63be991f8ff9de

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 134.0 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.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 317c074f6d6b0faca146a1160b3cb486a6179ccc5eee169721b093f2dde14559
MD5 db8bc124fff18454fa5b446ab7d65850
BLAKE2b-256 9195625723219430d006989ce88930ca8822dfa27cf1e253de9685bac6c24f22

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 38f115ab36415ad0111217a6d1d50d54c96bb4232825fc91f737e3249c24380c
MD5 16c41eec46af8302c34fd7cbbe3f1484
BLAKE2b-256 c51a447548112544df25424f1341ef2ea0d6ed55478328df2b980692220b1197

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 322.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 29a6ebc44760a04535b1d32813e14025af1b164a2412fa4314d46935639bcb0b
MD5 06aa83b43f4a0e75fd081227dd98dc31
BLAKE2b-256 75993b6f84fd0e579883ba8f8c91968a057c7321b3cdf3e93248208d51ceb77d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp311-cp311-win_amd64.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.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54a39bbd703488896c5967b980c83a7b47c354af0853471dd58493f42abd2f5b
MD5 ee142c6527f79d16e0644c95eb698bac
BLAKE2b-256 46a05bfdf1ba445f9b2dd4af3397a32b93c674b0ffb4b321b323b6133a06c7ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9e5656b2753ae5a2f58d84a617270484cfe160ce91be03401f527b627621dd0f
MD5 10218906005b9bdc52984b01184e3379
BLAKE2b-256 e8642d0665080438091fd4cf2252a6a02dbd29ffeda675e9f5bd1f44a43d121d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 133.9 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.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1107e5f67f5633bccef31e34b5f06e7cafe5f6c8f9db8faaa1cc5bad5bf2add3
MD5 4840adc85078e4269405b0f543df1bf3
BLAKE2b-256 17a51e40dbe5832c3af6af63978fac3d1d288bf42e472ff5c114018901b45b5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 898e380e272174d93fb04289b2816bf74bc328c1946f4bbb0617af76237170db
MD5 982160466ec50353cea36a7eb1c5b57e
BLAKE2b-256 79463c4e7732ffef370a6c2e038aa89d751c84c8bcf0e7f5af24e94b05abe007

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 321.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1c64b5576863ae8297aa847debbeeec6cea5f380939a1a8c26a2217941711f6c
MD5 78180fc9df7e81fda2a6b84e8411c52c
BLAKE2b-256 758240723b09364f92a3f1dc855dfde8074e15d439199214d65dd58500089d71

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp310-cp310-win_amd64.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.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2733f4d4148634b7ade75de7c329e83c853cf6706d6911a6ec045b7b4c4de807
MD5 eb3825e751a21ac071507970507f45d1
BLAKE2b-256 184971b98204dcd3028efe1684b860623d41131813511801c4eeb82ecd37f4c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8c6a893647d6b29ac3a51fe00f73907e80ce4534cfa6d6e3f080417ea4de42bb
MD5 62ce2b98b8b46bfd80fefa2d013d2005
BLAKE2b-256 855de5f0e0c472c641966f781cdb865899d589f51f41e4c4939f35efc0fa9bcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.7 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.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbd540b1a0305546109aaa939e8b93f8a35733d4b7068099ac5ff55ed053dd78
MD5 1a05a4adbbb396759f8a55940014aee3
BLAKE2b-256 86c09be4ba7d78ee28f3768857dc82a8b6ac82b6512dc295a012e10bc0745b83

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 55ba1d2bce1f9ba811bf1bccafd307b91e627b052816b7e00dc1f4002ff460c0
MD5 1f64abd5d4386a9ebc3f2183d0ae6c9b
BLAKE2b-256 87d3e868631ab358bb6025f763899686d5e971e52f57a103ba2c20f323771194

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 322.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gwm-3.1.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7cf00fa07a5af7d6c71a7ed01534b27a06822005e6e0d5e21124823050a79f69
MD5 009045d25bbc619f99321049a8d2f372
BLAKE2b-256 daacea6f739c3226a6be1b2b5ab4f04cf0e48fd94b5a4faf878bc9970099e851

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-cp39-cp39-win_amd64.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.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebeaf6057710944bf6b36d7d4d78a54b2d9a5a81cf2b17000e834111b3a9c3b4
MD5 77e2871b0b2792ed8ae23eaf8d59507d
BLAKE2b-256 2e52788930f0dcb4d967d2f55ddf8f274478bd6913bf030d6052f869ce3110c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gwm-3.1.7-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8119ea39a3a504e12c54257744bbced49d3db42fdab64fa25d3d281e6a33c199
MD5 046a0dd20b3fe6539f75986f49579c82
BLAKE2b-256 dc6ebfab94f138197322055935c807cb058b091af2605e43bdce5eaa8dbae908

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.8 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.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c3e83d412e8534d8b69bbfe29f15df4963b5edb1163313b85ee245fe1029b0f
MD5 5509447eb8436f60ab91e48dfcfdaeef
BLAKE2b-256 2339b0a5685e178cabd9ceaad331d4e67b2133f35492c20c8613897974652455

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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.7-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: gwm-3.1.7-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 143.4 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.7-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 79ed949ee3ac08673cde1167406291641a7a23debf818a4791d3e3956e78d041
MD5 7fe599e66fa64cd448d49d7c514cbcdd
BLAKE2b-256 5c043114c3d4bc7050180e37db068bfeb79e8920bd3eeb880448314e2c0479dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwm-3.1.7-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