Skip to main content

Fast graph reachability methods (C++17 core, Python API)

Project description

PyReachability

CI Python License

Fast graph reachability methods with a C++17 core and an ergonomic Python API.

A reachability query asks: given a directed graph and two vertices u and v, is there a directed path from u to v? PyReachability packages a representative, best-in-class set of reachability indexing methods under a single, common interface — so you can build an index once and answer millions of queries fast, and swap methods to fit your graph's size/memory/query-time trade-off.

The library has a high-performance C++17 core exposed through Cython (C++ mode), an extensible method catalog (each method is a plug-in implementing one interface), and a reproducible, catalog-driven benchmark harness (benchmarks/run_benchmark.py). It accompanies a Software Impacts article.

Status: v0.1.0 — 24 methods implemented and verified against the BFS/DFS oracle, covering every static index class of the CSUR 2025 survey (Table 1): traversal and transitive-closure baselines, interval/tree-cover labeling, the 2-hop family, approximate transitive closure, and chain covers. See the Roadmap for what's next.


Installation

From source (a C++17 compiler and CMake ≥ 3.15 are required to build):

git clone https://github.com/reneveloso/PyReachability.git
cd PyReachability
pip install .

For development (editable install + test extras):

pip install -e ".[test]"

Pre-built wheels on PyPI (pip install pyreachability, no compiler needed) are planned for a later milestone.

Quickstart

import numpy as np
from pyreachability import Graph, BFSDFS

# Build a graph from a NumPy edge list: edges 0->1, 1->2, 2->0 (a cycle), 3 isolated.
src = np.array([0, 1, 2], dtype=np.int32)
dst = np.array([1, 2, 0], dtype=np.int32)
g = Graph.from_edges(src, dst, num_nodes=4)

# Pick a method, build its index, then query.
idx = BFSDFS()
idx.build(g)

idx.query(0, 2)        # True  (0 -> 1 -> 2)
idx.query(0, 3)        # False (3 is unreachable)
idx.query(3, 3)        # True  (reachability is reflexive)

# Batch queries: (M, 2) int array -> (M,) bool array.
pairs = np.array([[0, 2], [2, 0], [0, 3]], dtype=np.int32)
idx.query_batch(pairs) # array([ True,  True, False])

from_edges also accepts a single (E, 2) array of [u, v] rows:

edges = np.array([[0, 1], [1, 2], [2, 0]], dtype=np.int32)
g = Graph.from_edges(edges, num_nodes=4)

Load a graph from a file (.gz is decompressed transparently):

g = Graph.from_file("graph.txt", fmt="edgelist")        # one "u v" edge per line
g = Graph.from_file("graph.scc.gra.gz", fmt="gra")      # GRAIL/GREACH adjacency format

Export the edges back out (inverse of from_edges, reconstructed from CSR):

src, dst = g.to_edges()

Discover available methods dynamically through the catalog:

from pyreachability import catalog
catalog.methods()          # ['3hop', 'bfl', 'bfsdfs', 'chaincover', 'dl', 'dual', 'feline', 'ferrari', 'grail', 'gripp', 'hl', 'ip', 'optchain', 'oreach', 'pathhop', 'pathtree', 'pll', 'preach', 'sspi', 'tc', 'tfl', 'tol', 'treecover', 'twohop']
Method = catalog.get("bfsdfs")
idx = Method()

A runnable version of this walkthrough lives in examples/quickstart.py.

Methods

Every method implements the same ReachabilityIndex interface (build / query / query_batch / index_size_bytes) and is registered in the catalog. A method only enters the library if it has a peer-reviewed publication.

Method Family Status Reference
BFSDFS online traversal (baseline / oracle) ✅ implemented CLRS, Introduction to Algorithms
TC transitive closure (bitset) ✅ implemented Warshall, JACM 1962
TreeCover tree / interval cover ✅ implemented Agrawal, Borgida, Jagadish, SIGMOD 1989
GRAIL tree-cover, interval-label pruning ✅ implemented Yıldırım, Chaoji, Zaki, PVLDB 2010
FELINE refined online search (2 topological orders) ✅ implemented Veloso, Cerf, Meira Jr., Zaki, EDBT 2014
PLL 2-hop labeling ✅ implemented Yano, Akiba, Iwata, Yoshida, CIKM 2013
BFL approximate TC (Bloom filters) ✅ implemented Su, Zhu, Wei, Yu, TKDE 2017
ChainCover chain-decomposition TC compression ✅ implemented Jagadish, ACM TODS 1990
PReaCH contraction hierarchies + bidirectional search ✅ implemented Merz & Sanders, ESA 2014
TwoHop 2-hop labeling (near-minimum greedy cover) ✅ implemented Cohen, Halperin, Kaplan, Zwick, SICOMP 2003
TFLabel 2-hop labeling via topological folding ✅ implemented Cheng, Huang, Wu, Fu, SIGMOD 2013
TOL 2-hop labeling, contribution-score order ✅ implemented Zhu, Lin, Wang, Xiao, SIGMOD 2014
HL hierarchical 2-hop (recursive backbone) ✅ implemented Jin & Wang, PVLDB 2013
OReach constant-time observations + guided fallback ✅ implemented Hanauer, Schulz, Trummer, SEA 2021
ThreeHop 3-hop: chains as highways (TC-contour compression) ✅ implemented Jin, Xiang, Ruan, Fuhry, SIGMOD 2009
PathHop path-hop: trees as highways (residual-TC compression) ✅ implemented Cai & Poon, CIKM 2010
Ferrari budgeted exact/approx intervals + guided search ✅ implemented Seufert, Anand, Bedathur, Weikum, ICDE 2013
DualLabeling tree intervals + transitive link table (sparse graphs) ✅ implemented Wang, He, Yang, Yu, Yu, ICDE 2006
TreeSSPI tree-cover + predecessor index + guided search ✅ implemented Chen, Gupta, Kurul, VLDB 2005
GRIPP pre/postorder order-tree instances + hop technique ✅ implemented Trißl & Leser, SIGMOD 2007
PathTree path-tree cover (3-tuple labels) + residual TC ✅ implemented Jin, Ruan, Xiang, Wang, ACM TODS 2011
IP independent-permutation labels (approx TC) + guided search ✅ implemented Wei, Yu, Lu, PVLDB 2014
OptimalChainCover minimum-chain decomposition (Dilworth) + chain labels ✅ implemented Chen & Chen, ICDE 2008
DL distribution labeling (2-hop, equivalent to PLL) ✅ implemented Jin & Wang, PVLDB 2013

These span one+ method per index class of the CSUR 2025 survey, plus the baselines. The catalog will grow to cover the survey's full plain-reachability list — see docs/methods.md for the source-backed coverage map.

See docs/architecture.md for how the pieces fit together and how to add a new method to the catalog, docs/fidelity.md for how faithfully each method follows its source publication, and docs/AI_GUIDE.md for contributor conventions, the method inclusion policy, and verified references.

Roadmap

The library is built in milestones, each producing working, tested software:

  1. Foundation ✅ — build system, CSR graph, SCC condensation, catalog, BFSDFS oracle, property-based tests, CI.
  2. Representative methods ✅ — GRAIL, TC, TreeCover, FELINE, PLL (one+ per index class of the survey, plus the baselines).
  3. Benchmark harness + datasets ✅ — benchmarks/run_benchmark.py compares build time, index size, and query time across all methods vs the BFS/DFS oracle on standard DAGs (bash benchmarks/fetch_datasets.sh).
  4. Comprehensive catalog ✅ — the static plain-reachability indexes of the CSUR 2025 survey (Table 1): 24 methods implemented. The method list is taken from a peer-reviewed survey, not chosen ad hoc — see docs/methods.md for the coverage map. (U2-hop, the one remaining static method, lands in v0.2.0.)
  5. First public release — PyPI wheels, Zenodo DOI, GitHub Release. Docs site follows in v0.2.0.

Dynamic-graph methods (DAGGER, DBL, Ralf et al.) and label-constrained / path-constrained reachability (edge-labeled graphs, the survey's Table 2) are planned later extensions.

Benchmarks

bash benchmarks/fetch_datasets.sh                     # standard SIGMOD'08 DAGs -> benchmarks/data/
python benchmarks/run_benchmark.py benchmarks/data/*.gra --csv results.csv

The harness builds every catalog method on each graph and reports construction time, index size, and average query time on random pairs, checking each method against the BFS/DFS oracle. Methods with super-linear construction are capped to smaller graphs (shown as skip); a tiny all-methods graph can be generated with python benchmarks/make_synthetic.py.

Development

pip install -e ".[test]"     # build + install with test deps
pytest -v                    # Python test suite (incl. property-based tests)

# C++ unit tests (doctest):
cmake -S . -B build-cpp -DCMAKE_BUILD_TYPE=Debug
cmake --build build-cpp --target cpp_tests
./build-cpp/cpp_tests

CI runs the suite on Ubuntu for every push to main; the full Linux/macOS/Windows × Python 3.9–3.13 matrix runs on pull requests and manual dispatches.

Citing

If you use PyReachability in academic work, please cite it via CITATION.cff (GitHub renders a "Cite this repository" button). The accompanying Software Impacts article reference will be added on publication.

License

MIT © Renê Rodrigues Veloso

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

pyreachability-0.1.0.tar.gz (172.5 kB view details)

Uploaded Source

Built Distributions

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

pyreachability-0.1.0-cp313-cp313-win_amd64.whl (329.1 kB view details)

Uploaded CPython 3.13Windows x86-64

pyreachability-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyreachability-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (374.6 kB view details)

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

pyreachability-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (331.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyreachability-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl (364.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pyreachability-0.1.0-cp312-cp312-win_amd64.whl (329.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pyreachability-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyreachability-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (374.4 kB view details)

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

pyreachability-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (331.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyreachability-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl (365.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pyreachability-0.1.0-cp311-cp311-win_amd64.whl (337.8 kB view details)

Uploaded CPython 3.11Windows x86-64

pyreachability-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyreachability-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (391.8 kB view details)

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

pyreachability-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (330.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyreachability-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (365.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyreachability-0.1.0-cp310-cp310-win_amd64.whl (337.2 kB view details)

Uploaded CPython 3.10Windows x86-64

pyreachability-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyreachability-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (391.5 kB view details)

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

pyreachability-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (332.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyreachability-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (365.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pyreachability-0.1.0-cp39-cp39-win_amd64.whl (337.3 kB view details)

Uploaded CPython 3.9Windows x86-64

pyreachability-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyreachability-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (391.8 kB view details)

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

pyreachability-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (332.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyreachability-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (366.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file pyreachability-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for pyreachability-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c098d74ee5b46074e9b8cf2c241d8a9e8a3a13fc121c13b21775c5f3c5038cda
MD5 35f21097fa504c029f9034ba234c46e1
BLAKE2b-256 1603c89c10ffcb4568cd786cc129e42e79327e1e597feed81ac6faa443187ae5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0.tar.gz:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a95eef704e170fd32cf1f8f45ff09d180f3eff78a26442eb3c92814a6e9a9172
MD5 804221cc0ac73584508f690b0058a736
BLAKE2b-256 cc5bb060cd961baae014f1787c55c4d8e5b78d7381fdc8b10e4f24aacc736b14

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b4cce8e1e035914862817a8b01fc6451d8da85e38a52cc92f2aaca6ee5e039bd
MD5 17a6eab57197e3d250657654a2d901f9
BLAKE2b-256 e4b490d8ebe868476ad1275bdeda8ad1f7a6d06da517c8456946d0abb4d94a9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19471f81d15a82b4f74213c2858083ef48701d8dac2b6297c0874db1b0d0fae2
MD5 045352d3aca143b2cd788101232abc4d
BLAKE2b-256 fa89b2e5ae524e6f1f4c8fbd01f484a4aca7bf229fd1c77f79a130f63877964c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ab8e1a8021f2a93d1bef7466013719196a0554017f846e7278a088746b9ce34
MD5 84abe0c0508b5b6b61047f9be0952d72
BLAKE2b-256 1fe36d5487c1cb61d5ccdebbf8689fb712232fcb89a1f01ea4e837cad4afdb49

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f8b5d63a52ac28958a48f81e5e9256b3f4994d15b29a899308cdee072f22b2d3
MD5 709839bac1605a6140ceacea0065bffa
BLAKE2b-256 570c0370fd6dd5d8a1e74b8c411ef84cee901804f213442ac64e74a769238a34

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e1397037890da17e99d6a38b7753c4ce92277d6808471528d0026a2490e8d650
MD5 c30ca87ed2e683dab43950d7b38b24a2
BLAKE2b-256 8eab0b0e5c501ed358cab07890b103eb9b467398fd854e19085b31c662ca3d8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ba42de97d2a97c804c39af7442cead39091e7a9d1ca45bf0b1a6185b37c292e
MD5 b1d76c50046553e12324d401c701a3ae
BLAKE2b-256 864c065a5912624ff64bda4b846ba5a2c1bc8592ad811eaad1c22acde53da001

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c288549359bc876f50ff6ef5f51be1056a496fb06c73b95444344367fe3b13d
MD5 7c350e7d6f7e2f59362ce0567fd88fe0
BLAKE2b-256 cd9f10053aa6f1ccdf901088bc7240709e46a71f32b1f735f37f29ab2d98b63b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50cb31e472b426e3cea4286fb0f97606a8d5edbf84e867ec42d76dcb9977ac47
MD5 ab332421d2d67edc4113599cde705014
BLAKE2b-256 ec13984e60704f371e43657c2f1578ecedf8fc9942fe6192a483be7948ac151d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 478a21c285ea39eed3c92bf467be97cbf26296895ea91da3719c808dfed83f72
MD5 2930b470d1efb4211fb7ec8f5dc951f5
BLAKE2b-256 df53b49cfb8ce41f830d2a3cb77576c01efcd8498088c31da4af727e013cdad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 689d87bfbbc3fa0a469796e7eb45c37ad2640eaf992401ce150964ca53afca88
MD5 39bd0137b728e4e7048c7848de8e26ed
BLAKE2b-256 ef975c3b84a14895a9ca8e35f300fa3b49cbcc27a81dc816e8ab13ee7cb68963

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f24bbf38f6f9e8d28bdae59e0386b6059f1c11a1eb609fad28b53d23ee2aac80
MD5 810806104a2959b92b6db4437d8766cd
BLAKE2b-256 909a646293b695c82fefe4ad1b068a515f1d55b1fb3dcb7c41a0805d0af725ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd1ee79fedfcb3ff721b297b77094078f5d71f674339539e1125ec0d1b897af3
MD5 1d07c884b93a114e6589c92d4e2470ac
BLAKE2b-256 7ceabcb3dd531cd903f62b30c83db9eb500dc248f71e3f2581e1f320a0b14aaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe7b21cf0dbb1ee59f678297ef2e265f2781b60e4158bf906a6564a93135f4af
MD5 6ca237c40dcb60351838f2b4477299fe
BLAKE2b-256 d3c0218f44cb8b128654de688a107afe3227c4f9eb0603ae59e823bb28c86757

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 85bc9dacc7858c88ee14b086336855718d4b37be2f9c300596c470a106ecb72f
MD5 d63caecf640b9751e3ddaaef430e16e4
BLAKE2b-256 0a00378f7876266e92f1dcd0226286158304955f443ffb4d870d58ff869f42f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 22b159559e5ac2210f4a3d0a1c350a79cfc0b45c99c582d259128a989e2fe0ef
MD5 a86f01416aedc49176ec45c20675e0ff
BLAKE2b-256 fac5ddeb27f850c3b4030948cda9419036519d9213b57c49527f785f238f6a10

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e2d1e773c0e7f87bb2ac6e91da910d574f2f7e69928bcf5ae2a500f1fd714664
MD5 2070fc571cb509eae04677c5acb787e9
BLAKE2b-256 8d986d9e0176e774c5ba8fd235c0fbfca2fc60bb50416f8d8824c557c181eb44

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0bc3bcb71fcbfaefe7c611cd76c2f40dc48d4869f2de7e5fffd6c2388fe247b
MD5 127bc6022b3c292d0cba45a72a576174
BLAKE2b-256 2094ba258f9b3e7e11fb13ec62dcf2f409816f76ad46a5b36aba87483b7e7103

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e104666ac7a0e89d43481ae27b90007552647bd93ebcef7f2191b884b9d213b
MD5 fd8fa13e2bad7ab936fa3266b20d2634
BLAKE2b-256 94a2b0670db1225fddb97fa1e0f0bc00cc90939494012d9d44677c9e0aaef653

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f2a80df6e51714af234098e7b22c016719d290f66fe6e84a67669cdebe27fd35
MD5 ea51dbb92fb2d3c71a857b07cbd8429c
BLAKE2b-256 f15fbedeab493f4a6650695da5d2fa56bde574f9042b28a5197c93eaaa2fa843

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2445367cecfcc20529a114d2601f283ac1f8c5a05df133b35e41e36875e57659
MD5 1dbe12239dd84d89c30909a3e776222b
BLAKE2b-256 ff73777232d9a921e4a5b834e31917bed43e2d0cf42cc128753af37a6e9067db

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3cb48bb629fe53019d92d5ba626e692a626506239d48529afb537697d3f167f
MD5 5ef6465bc46196034570831c2e4865c7
BLAKE2b-256 8295a3ccfd744d17aa735c6b3dbe9a8bff1d117e7a2b45572c3228d10813ba9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37830f6ee1dd1a84c76d77050bb4154d3d1f4b5abb0365e70bbf0861c8d73d40
MD5 7f91d3d9bbc8bde1bc203a105549e47b
BLAKE2b-256 2d79f56447c196d5ade258ee9a6ad07ae62117b96cbe57e170b3023fe5b4731a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8505d89e0f05216224123c3b977af2ff45b4a9ee112e56b987ffd4d0a589e492
MD5 6d1b3e94eb2c8ed36ee9d662b272911a
BLAKE2b-256 bb7aefcb0a5e91463e87f8b49f4dfe6ff41cc94319700f41d1ec58be357066d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on reneveloso/PyReachability

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

File details

Details for the file pyreachability-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyreachability-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f391b3ab0f7b718a9675a4dafe33a7e5eee74b4035edbee3fc3f1ad1b2b42835
MD5 fec567790b6b8699c04aa445524e454b
BLAKE2b-256 81b81a456e27640727af643d893b00b630088d33753c8b7905fa306c6b64d5ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyreachability-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: release.yml on reneveloso/PyReachability

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