Skip to main content

Similarity search over graph databases using the Weisfeiler-Lehman kernel and a wavelet matrix

Project description

gwm

Similarity search over graph databases, in Python or from the command line.

gwm represents every graph as the set of subtree patterns found by the Weisfeiler-Lehman (WL) graph kernel, indexes that feature space with a wavelet matrix, and answers threshold queries — "every database graph whose cosine similarity with this query graph is at least θ" — with a single DFS over the matrix instead of a linear scan. It has no 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–165. https://doi.org/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 can 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

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 label set (list[list[int]]) for reuse with search_encoded.
  • index.search_encoded(labels, threshold) — search a single already-encoded query.
  • 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

Building from source (see below) also produces standalone, dependency-free gwm-build / gwm-search binaries with 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, separated by a blank line:

t # <graph-id> <class-label> <name>
v <vertex-id> <vertex-label>
e <from> <to> <edge-label>

Vertex ids are 1-based and must be declared with v before they appear in an e line. gwm.read_gspan(path) parses this format into the same (labels, edges) list used by the in-memory API.

How it works

For each graph, every WL relabeling round 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, and its norm is the size of that set.

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 |query ∩ graph|, giving the cosine similarity |query ∩ graph| / sqrt(|query| · |graph|) directly — no per-graph scan required.

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; there are no external dependencies.

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.2.tar.gz (81.4 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.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (156.7 kB view details)

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

gwm-3.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (142.3 kB view details)

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

gwm-3.1.2-cp314-cp314-macosx_11_0_arm64.whl (133.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

gwm-3.1.2-cp314-cp314-macosx_10_15_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

gwm-3.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (156.6 kB view details)

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

gwm-3.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (142.0 kB view details)

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

gwm-3.1.2-cp313-cp313-macosx_11_0_arm64.whl (132.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gwm-3.1.2-cp313-cp313-macosx_10_15_x86_64.whl (144.3 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

gwm-3.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (156.7 kB view details)

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

gwm-3.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (141.9 kB view details)

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

gwm-3.1.2-cp312-cp312-macosx_11_0_arm64.whl (132.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gwm-3.1.2-cp312-cp312-macosx_10_15_x86_64.whl (144.3 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

gwm-3.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (155.8 kB view details)

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

gwm-3.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (141.4 kB view details)

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

gwm-3.1.2-cp311-cp311-macosx_11_0_arm64.whl (132.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gwm-3.1.2-cp311-cp311-macosx_10_15_x86_64.whl (143.4 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

gwm-3.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (154.0 kB view details)

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

gwm-3.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (140.2 kB view details)

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

gwm-3.1.2-cp310-cp310-macosx_11_0_arm64.whl (131.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

gwm-3.1.2-cp310-cp310-macosx_10_15_x86_64.whl (142.1 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

gwm-3.1.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (154.1 kB view details)

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

gwm-3.1.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (140.4 kB view details)

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

gwm-3.1.2-cp39-cp39-macosx_11_0_arm64.whl (131.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

gwm-3.1.2-cp39-cp39-macosx_10_15_x86_64.whl (142.2 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: gwm-3.1.2.tar.gz
  • Upload date:
  • Size: 81.4 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.2.tar.gz
Algorithm Hash digest
SHA256 d5b23a4a08e7db2a16f78c18b6123396c42f806a2296c75721688cd7b0745b65
MD5 56c1c902df2d49d8e4132de27097567a
BLAKE2b-256 2914497b3d84af20d997112d04a00cfb4d3ba230ff3f0c53d29393a921964a5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8745d43e228e2a08dec952a80a86190e4b74e02f093f3fd8ce073de24a4aec8b
MD5 23d12ffb112672c944d997257789c6f9
BLAKE2b-256 14ba87450bb5978998ac2205ec2e205557c22ac304e215567747b31a83becfe3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f157fb13df21b5c33f4c179dcc20cba3c232b023fcece5f0528734dfca2b13d
MD5 0cab28c522614fceaf808088bd1070b3
BLAKE2b-256 974e78df24bf52a2296341a21a302b3a4485dbdc6e983a3944231a3401f85474

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 133.1 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.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bc6449c3d8cba367fc8e3c16c8905448741f07f279d6462b30a52ed51ce8d94
MD5 b1bba0231f4425c383982223ffb44655
BLAKE2b-256 abf325234c965187bbe5dc204375a0b79d9dc7300cdb22907465130d93f2d251

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5e95bb6bec1aaf409763df70975baeb23a013822031c80b6d7e9a66abba3b342
MD5 870b34e03f687c9b9a1dc36dce2a85a3
BLAKE2b-256 5457d0af5ac55e2f9f4df72b44ccab6bd9480417562b52c19494e01c8b02acbb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e27d72e2346942a626bc6d3c7b092f8f578518c8c50826f3a32a3a1d1665b411
MD5 2b7d72762c6665358aada01e2f305973
BLAKE2b-256 28474faf774a4afc2fc2fb70676edccc98d9b326a9dc524144f7764b068b6a5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f4ce5d0f4d17c6c4cab233abf7d465c262fd6800a2044615cf3ed325ce9059f1
MD5 205b33b9d966ba50fd6ed2b9238b022a
BLAKE2b-256 257d4454d470eb519aac41eb540b36dc3b50c278e67dfe8ca52f152155b7016d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.8 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.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd60bfb9a9c9ae186470bec9fb679dc553adeb2a7d1122a7b5a5ae9e725deb44
MD5 04c03bfadd9859c4a148c14b741ae0cc
BLAKE2b-256 07fe879bc48b24165ee9f089060ffd87f8246c3f1b89fc2239c0eb343f2fc632

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6910827f3bd8e56e659b3f1248677939ca86c537f870f6dc4889312664d2069b
MD5 569fff3b6c6b8326a5c7e5b9bf178d77
BLAKE2b-256 9e0944e5062e4d0159c6daa918786aa9c52e01cafa33b72b9178cba725cd6162

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5a71b37d6253c2ddd0defbe9b54b3f6bae27de1649aa5748da2b7b59aa61744
MD5 bc3c91e653cda49c9cd1145f50917dd4
BLAKE2b-256 72a9d9e0c9b852298682cdc81f3bbf2d85db543eea8f173c9fe8cb32c056c2b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0078d73e9151b7d4f62d1810a9d9f1dc490dad56c9f15334675f17de8cd8cce
MD5 0db88a4937a8c65d36d31b82f534a95d
BLAKE2b-256 f99ffc8772591b3a3b0b4377c5afe6d3981f33fb69e56bacaea7111f867cdfff

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.8 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.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5342868a496b2194309aa7706ec82beb6089b0bcb1121cc95f14a767ed7079c5
MD5 414ff3f915b6db5802d68a99a3d72bdd
BLAKE2b-256 c5b008aa6445c1c74b114a7eb737e0b7a64eac18094ba8c44d1cfe992e15cf0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cd5df557a1aa70a631aa5d2032f0b666733a1f34d52045e23c36e1b26918935c
MD5 b610c407b580d022a619f4f0f2712da1
BLAKE2b-256 165db01295c594bb057748c75f4023a3eadb1ff5526582277ac34e34e11fe043

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d3905b3751f03b903e11e2900c6c97c98c8ec41731c6c4833ecf853777ae55a7
MD5 a6e5df7f5c215c474db0690ab9538455
BLAKE2b-256 198acd3027c9ce7bce414593e09ef638fb133b43986b25ede5702c692d111af5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b51826e50e4971f8f39580192de7ff9d71528cc6ac00528afd360f7f54937545
MD5 91d4ac75c40c4a1b671f72fe4475c412
BLAKE2b-256 dc07654225428e1c33e13b5b6a4e1de34a290a31ab97f2196109467a603cdc8d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 132.7 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.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b423b3f984bd384f3b2939eba3d55d7e9a8b863c61359e280f986b3f78f492d
MD5 3ecf78b492f3e854b32d96c39e832d36
BLAKE2b-256 2e998dc13c6b81b73b615919ed08d691dc9b7d22980c3448235e98dd75116b08

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 05ff35aa177760a7e32e2d6d0b22604012c6077d25992a2d77e89dca6e311a88
MD5 6ed1d51aa60f186bca31b0efc63b1751
BLAKE2b-256 830e4e9dab07c84832ac36454d7c6cc923f86f2a955e42e5642958dff8913fb5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8515886e48f3493c125cdd15557f7af6cc70e7c18a90de1ce621451719405469
MD5 4c3014f3b6015961d21183fe66b36419
BLAKE2b-256 b5b0d5c3925b69408b5dd25a2e7b38134524bafde87229e871af8571b977d0c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b304028071072f3b048104470c0219a27ba660477dccab64962278e192dd67e
MD5 0260d2bf0bc5f395bc4c0f402fb93e33
BLAKE2b-256 af627492480e08b92b5913cb5633fda35b101cc4a90c97401a4f0b523e93c083

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 131.5 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.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0a0cf10e535c5c63dcbaca287e3d1e83a0e885f94135cd224f4d0cc30c8df57
MD5 6270837dc5a0c6738d5a51b4424cb03a
BLAKE2b-256 faada95ae282d80129fdd0eca8ff19b4fc17c51d0f60767dd3ab9b1f3d0bfcdc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ceb3146f86303a79351a3dc36e230d1b843998f9e17481b1e1a78f14df4708e6
MD5 79eb2ae2d04f1abccf0cd7154711fb42
BLAKE2b-256 ec8cf91c57d9b0550eeabc10aeb9b8a1998c9678e022412ddadf41ce0648bef3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ea6866f0ad5582d241630f7cd8abc0cc18481a65c7a74b2012dcef5d763e1a3
MD5 912423270d5abd6fb23098592e8603c6
BLAKE2b-256 7766bbd15fc81258a3cc248155330496d2d9d203852c489a89a07d2b0c0284f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwm-3.1.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a16b89b4cf16fd07412d8e3cafabc067b79ec87f75ff7d289c1634d23a9aef57
MD5 2064cfaa55f7dc19b4e069b0c8855377
BLAKE2b-256 90550d32d9905b3804d505ed8870f35d055e3947b58c9cc9eedc472544490595

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 131.6 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.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f54fff69ecb1ad80bac0c33ab3b885b158eeda06a1ee01c27f249b9e90ad4502
MD5 5fd55db0b7c08f294ea3cae58693c434
BLAKE2b-256 5b56a2755a5e227c2035ca5c43628e7da5d6d21fd604768e8183531ced9696e6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwm-3.1.2-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 142.2 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.2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 19f3b9acc2e7dbf1cded5b3d2e1ded7a36e75dca1ac7d225e9608d16b22fd1b6
MD5 0c6d41b3bbe1db281bf3024a42f952a4
BLAKE2b-256 adb240a0401468f85682313736563c61ab5498d84e34e3c175c786035516cc08

See more details on using hashes here.

Provenance

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