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.4.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.4-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.4-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.4-cp314-cp314-macosx_11_0_arm64.whl (134.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

gwm-3.1.4-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.4-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.4-cp313-cp313-macosx_11_0_arm64.whl (133.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.15+ x86-64

gwm-3.1.4-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.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (133.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.15+ x86-64

gwm-3.1.4-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.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (133.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.15+ x86-64

gwm-3.1.4-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.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.15+ x86-64

gwm-3.1.4-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.4-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.4-cp39-cp39-macosx_11_0_arm64.whl (132.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

gwm-3.1.4-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.4.tar.gz.

File metadata

  • Download URL: gwm-3.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 5e2273aad298d3ba240f10d1e662eb7aae10f3b71a99f3275362706ed23c47cb
MD5 ef0e0fa0d47272ca9de6b42520a9fd82
BLAKE2b-256 894088b9bb89fee544132ac1fa8e3712a153ebb580d215c0d294f1dc89ff35cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3124949dd9e4b8b2ea95bc6fc2946a9ecbf873a5a2b22c78ceba68b4fc931bab
MD5 2eb07e4cf0950f115d0a44a4da12272c
BLAKE2b-256 2fe5b83df0522552dca75041fa9b2c1b7967b06180de6a65b5a4a649ebd39e5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5351e7c14a79e0b7d8653f0879345705ebb5ec0939c3cfb73605e5223e8fd37
MD5 be30cb82cdea281ebcbcf8c2adad5e61
BLAKE2b-256 411c5c258c1018a2bda39bf60e79f9b1ca255ea678de769fbb8b47e8eba07085

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67fde9932c0479fb3b4e829d5a305cdfc486e31c5221fd9a21f396aee125a6ac
MD5 110399a35f4d29fbe2e1997139f416b8
BLAKE2b-256 e0b42734fe11d493f0895980d4af8ce12473bd6498af3ec9aaccfc7c82ddb88e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 887189a241c6273ac442fc2adb4e2e3c8d22d24b88ed77eea84c717ea49c9dbf
MD5 ef49315d03130d715fe42f55762e67f5
BLAKE2b-256 926b9b4a902d4a60c4df69c2dfe5addbd13ea0a61f3754c377bd18c6993726c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48e84fe80eddbebe05c7a3b2c3f899ada5f145a53301b9a207dcd96183db4e6c
MD5 30c8c3873ed60f16d8b03e5cd4591ecb
BLAKE2b-256 e2431c4438e93c1eb10dcc3c15712867c69e3061b61794ca8527de9999faf272

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bc76dbc70bace77d559560077191221f91e6bdd9ebbc7398b86be1d72505f54d
MD5 d546bd1d59c590202033c984b325bab6
BLAKE2b-256 1e658b30c6260dddf5ab4f5acc24a2d19329bcbfc9531aac3ef0d99574e2d759

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06f949be144a7d2cd27c5d575488fd37383638874f8ddc67a28eea139a59a99c
MD5 a6d87cdec769a17ca2373a783f0b2f8a
BLAKE2b-256 4cd04d0e5f5bcbb2202223800adffd69c95eae90bb7ff9382d0d8df9f73abd15

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7fb1c4a8e9fa6efe0d33bbdd1a8a67140a8fee588e96928fb42e0d233149b85a
MD5 11e85ca8e91432c996e84571025f2bd9
BLAKE2b-256 637abf6f19232e6820a3606a704d44e76a96adec1f6a9a0b615fa15015527dd2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0a9a469e8a3b2707bf09256a9e866e9c15ab32a262b7891145f2ae288a5dc34
MD5 fda70cc41f2930e9b5778b121168d042
BLAKE2b-256 1693e5fa3855d80bad5b8ab7c2aada74e9557f5a59d1b342d6b0bfe9446e573d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8dd276e3ce2e6f545ef2a85bffbe839d4980c2bb5a853f4318b2848dda2afa1e
MD5 50c6638622423bad626832c7ed8d1f5c
BLAKE2b-256 898237fea24481537a316d67345e0a4c59218663c249c496636ec7fd519d87cd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50d02c60d6ec4fe3c60f55b3336ce623f146bb633b2ab5901b4fa5732c289bd0
MD5 71866a92384a1b0cb4357a17a2545b62
BLAKE2b-256 01ae08ae67b08b26f3c2b9506b7c6cf3224feb30c252f09129ea9290111b9e24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 54bdbbc82b6019866bee9dbb2efeb9693a78d7b9c84898c7aefa02e474e42d93
MD5 48e56a8e14dd449c352ea5775c0f2c03
BLAKE2b-256 05afdc80c95e41bef1c72ae2d9b843213a31b5703935ce6b3a22e5b4d344cf09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29b7e762a6fdcc9691a15a4bb66f8eb373f0b99c2cccf78da5f6166ba2500a6b
MD5 eb17caad694fc3822a5fe0086f38b183
BLAKE2b-256 15ac911c355f0f4580d39aea96526649eaf10776b8952710c808265b63437db7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 52f6aa9765cdc17ac61722d706b1b56aff6b85a671d6ee0fb9fc6507394f391e
MD5 d9877e0db28ffaee7a1f456c76ceed60
BLAKE2b-256 add6a09eeedcd80e1685fc6a007cafd70e4e720cedc8555f0cfd7472a7feaf30

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b738fc8d53d67241349872eac61cbb203d80ed126382df22a396ed9d019f6115
MD5 8112c713502c08855e2373122df92ce7
BLAKE2b-256 4561822271180c3bf3f381d48fc734f562f335e0395249686fc79f55b30de432

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 976cda04bc5e7378cdd7589b7f3eaf80e3c290e76557dc6d999dd0086a539741
MD5 3264d23c8ded1c1edb06b3ed86b30d5c
BLAKE2b-256 a8e5df9e6953f32a413e45035ba34901e6e2784cc7bc09688a4440ca37eee490

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25dccd7512d2d3c38938e9e93776528b898b8ba10f2410b8117a2dd8557280ee
MD5 efa22dd36c1a6d45f0ffbc95fb1c5b1c
BLAKE2b-256 37c099df6aaebc7c01338fbb73e5d136c9767c3c87c4bc60d58ab8a96aff1d85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3606504fb72de21180d6c41552934bc713532ac35532ff004c93661d96ec0397
MD5 bc10ba6e665416b14744c0a0facf99ee
BLAKE2b-256 6eac784a211ffea251506bb9d6d0b3105b04ceff5606db79aaadf3d6d336399c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 234e652ca0c7ca9c7cfae599d3aaee90a855157f1529ec10c3534adce24d4322
MD5 6cf33d15ac33a81f93dbb6c833699bdc
BLAKE2b-256 895c02269f7a23b03a960324f072a4fe08a7aabc71cbd213f384a1dc59a5b305

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4c42affb26fbacf41b49c7d32327bee9b6bdb3590f288b11d91b3245a269f34a
MD5 e26b3eed1eeb4cb3567c8426910463ba
BLAKE2b-256 070ccc663ea8d9c22278af4650c14082c8dd82b04c37a4c837b28a1fbe631c69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e0a2d8806db72a5e668fcba9fcef83349be4d4b843df62df92ec0bd2f629925
MD5 4a0736ca897771a9ca37edd46c030f18
BLAKE2b-256 89e8fe47cc18846e14a121f5a808f0eabcb7c26782108742c4a8a8273016ca05

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.4-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 15bfcd0ea8ce5150629753ffcd169fb667798ddfe040127a84675464bfe41b8d
MD5 c289ef3cdaaa6e9373ca50fac7b9b26d
BLAKE2b-256 3e2512092c777866ff5c76c424ae4f03e6e9a6d8a1dcb85b7cb5444b283e5ac7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b90c10f805f6c133c23969ac77ef29fcbe7c98ac620ab3e5896bb826cdbf6c6f
MD5 a9f9042b21a5883bfc94c330d7871fb9
BLAKE2b-256 ed54a9e70c9c40b128eecb8b743aefe701c00ce0b7d7ea2a810eaca80c20d701

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.4-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.4-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6ca5e4d7b7cc3cfbb6c839ddadad4fce379bdb0355c6d16a92a63a063b92f26c
MD5 bd70dac139542eeda552f367e9ae4350
BLAKE2b-256 ebfe934a30a33a604be8c1eb686d4a4cebd12a6c407b2e486764dcb706a7f73e

See more details on using hashes here.

Provenance

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