Skip to main content

Python bindings for Reasonable, a reasonably fast OWL 2 RL reasoner

Project description

reasonable (Python bindings)

Python bindings for Reasonable — a reasonably fast OWL 2 RL reasoner implemented in Rust. This package exposes a small, typed API over rdflib terms to run materialization on RDF graphs or files.

Quick Usage

Load from files (Turtle/N3) and materialize inferred triples:

import reasonable

r = reasonable.PyReasoner()
r.load_file("../example_models/ontologies/Brick.n3")
r.load_file("../example_models/small1.n3")
out = r.reason()  # list[tuple[rdflib.term.Node, Node, Node]]
print(len(out))

Reason directly over an rdflib Graph:

import rdflib
import reasonable
from rdflib.term import URIRef

g = rdflib.Graph()
g.add((URIRef("urn:s"), URIRef("urn:p"), URIRef("urn:o")))

r = reasonable.PyReasoner()
r.from_graph(g)
triples = r.reason()

# Optionally collect into a new Graph
g_out = rdflib.Graph()
for s, p, o in triples:
    g_out.add((s, p, o))
print(len(g_out))

Incremental Reasoning with Retraction

Use update_graph() to replace the reasoner's base triples when your graph changes. The reasoner automatically computes a diff and selects incremental materialization (additions only) or full re-materialization (if removals detected):

import rdflib
import reasonable
from rdflib import URIRef, RDF

ontology = rdflib.Graph()
ontology.parse("my_ontology.ttl")

data = rdflib.Graph()
data.add((URIRef("urn:sensor1"), RDF.type, URIRef("urn:TemperatureSensor")))

r = reasonable.PyReasoner()
r.from_graph(ontology + data)
triples = r.reason()  # full materialization

# Later, data changes...
data.remove((URIRef("urn:sensor1"), RDF.type, URIRef("urn:TemperatureSensor")))
data.add((URIRef("urn:sensor2"), RDF.type, URIRef("urn:HumiditySensor")))

r.update_graph(ontology + data)  # replaces base, auto-detects diff
triples = r.reason()             # full re-mat (removals detected)

Install

  • Runtime dependency: rdflib
  • If you have a prebuilt wheel: pip install dist/reasonable-*.whl
  • Build from source (see below) if no wheel is available for your platform.

Developer Install (from source)

Using uv (recommended for local dev):

cd python
# Install project dependencies (including dev tools) into a managed venv
uv sync --group dev

# Build and develop-install the extension module
uv run maturin develop -b pyo3 --release

# Sanity check
uv run python -c "import reasonable; print(reasonable.__version__)"

Without uv (system/venv):

cd python
python -m venv .venv && . .venv/bin/activate  # or use your env
pip install -U maturin
maturin develop -b pyo3 --release
python -c "import reasonable; print(reasonable.__version__)"

API Reference

  • reasonable.PyReasoner()
    • load_file(path: str) -> None
      • Load triples from a Turtle or N3 file. Appends to existing base triples. Raises OSError on missing/invalid paths.
    • from_graph(graph_or_iterable) -> None
      • Appends triples from an rdflib Graph (or any iterable of 3-tuples) to the base. Use update_graph() instead if you need retraction support.
    • update_graph(graph_or_iterable) -> bool
      • Replaces the base triples with the contents of the given graph. Computes a diff against the current base: if only additions are found, the next reason() uses incremental materialization; if any removals are detected, it triggers a full re-materialization. Returns True if removals were detected, False otherwise.
    • reason() -> list[tuple[Node, Node, Node]]
      • Runs OWL 2 RL materialization and returns all known triples (base + inferred) as rdflib nodes. After the first call, subsequent calls are incremental (only processing newly added triples) unless removals were detected via update_graph().
    • reason_full() -> list[tuple[Node, Node, Node]]
      • Forces a full re-materialization from base triples, ignoring any incremental state. Equivalent to clear() followed by reason().
    • clear() -> None
      • Resets all inferred state while keeping base triples. The next reason() call will perform a full re-materialization.
    • get_base_triples() -> list[tuple[Node, Node, Node]]
      • Returns the current base (non-inferred) triples as rdflib nodes. Useful for debugging.

Building Wheels

Build release wheels into dist/:

cd python
uv run maturin build --release --out dist

Install the built wheel:

pip install dist/reasonable-*.whl

Requirements

  • Python 3.9+ (ABI3, built with pyo3/abi3-py39)
  • Rust toolchain (rustup, cargo) for local builds
  • maturin for building wheels
  • rdflib (runtime dependency)

Testing

Run the Python test suite (uses pytest and rdflib):

cd python
uv run pytest -q

Alternatively, with a local venv:

cd python
pip install -U maturin pytest rdflib
maturin develop -b pyo3 --release
pytest -q

Compatibility Notes

  • Python: 3.9+ is required due to the ABI3 setting in the Rust crate (abi3-py39).
  • Platforms: macOS, Linux, and Windows are supported by PyO3/maturin; building from source requires a Rust toolchain.

Troubleshooting

  • ModuleNotFoundError: No module named 'reasonable':
    • Ensure you ran maturin develop in the same environment you’re importing from.
  • Build/link errors on macOS (Xcode/SDK):
    • Install Command Line Tools: xcode-select --install.
  • OSError when calling load_file(...):
    • Check the path and file format (Turtle/N3). Use absolute paths when in doubt.

Contributing (Python bindings)

  • Keep tests under python/tests/ minimal and representative. Prefer inputs from example_models/.
  • Format/lint Python with standard tooling; Rust code follows cargo fmt/cargo clippy.
  • For broader project info (CLI, library, benchmarks), see the repository root README.md.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

reasonable-0.4.3.tar.gz (56.0 kB view details)

Uploaded Source

Built Distributions

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

reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp312-cp312-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp312-cp312-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp311-cp311-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp311-cp311-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp310-cp310-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp310-cp310-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp39-cp39-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp39-cp39-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp39-abi3-win_amd64.whl (390.1 kB view details)

Uploaded CPython 3.9+Windows x86-64

reasonable-0.4.3-cp39-abi3-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp39-abi3-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

reasonable-0.4.3-cp39-abi3-macosx_11_0_arm64.whl (508.4 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.whl (526.6 kB view details)

Uploaded CPython 3.9+macOS 10.14+ x86-64

reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl (1.0 MB view details)

Uploaded CPython 3.9+macOS 10.14+ universal2 (ARM64, x86-64)macOS 10.14+ x86-64macOS 11.0+ ARM64

reasonable-0.4.3-cp38-cp38-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

reasonable-0.4.3-cp38-cp38-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

reasonable-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

reasonable-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file reasonable-0.4.3.tar.gz.

File metadata

  • Download URL: reasonable-0.4.3.tar.gz
  • Upload date:
  • Size: 56.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reasonable-0.4.3.tar.gz
Algorithm Hash digest
SHA256 2761ef99e8d3fc4075d5b8607c1c5de19642a5044e01b9a6a839f484954c63a2
MD5 8dc028ef89608bf3eb915e52dee24f91
BLAKE2b-256 209b10633ce78650a60d033bd5ae60a4672b390d1a5ab5f0f10b366b908c6051

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 596c800172f025076de62777bffc88df96cb24962492009dfee750e6dfd55b49
MD5 49de1163ebf7c5354dca63d5c107d7a5
BLAKE2b-256 7147d399f7e40e1db7b960628b6bd2b4dd5409e32f92fea67f1ab63479fc490b

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4dc5f93e141d456674c36fb30b925f1932a7af663deabe733e5cad689a04a68d
MD5 d8d2bb7a46d5606a43f9e57745054787
BLAKE2b-256 1e44f7541211a5caa41630cca2ba99943fee67e9a95d72fee7cb7cb891adeab0

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 158fda33dadc1105b156d9941c791eda7938b8b9bbb5b6a9662a785463a61c4c
MD5 47192bf8297398a66d7136a9260ca70b
BLAKE2b-256 42765706c20a8c7d20c94c08bef3e3dab39a76c2070f4abe09d5fe7844083353

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5daa822c0fd89283007b791adafb910db797a2b25aeb6944f52e5d5e10c3f258
MD5 6917828d240f6560637b556e06d53ef6
BLAKE2b-256 25017954a9ce11fc069a78e65a629c496afcc025c21850ff626722770efed935

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cb16fffbc25f51605cdf136232962218f56e80c2d749cf34ef25d863676e891f
MD5 8ad54ca0fe5c289afcb1ad70abad9c7b
BLAKE2b-256 2e87137a671007a74b684a45f3dec331747d17e5642bbabb9f5921b888b9de0f

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 445c21e286d277da3d79b9829ad64d619e8fad6ff5bcbffce0b82a6917ce5329
MD5 de4e3b7ec04c0aff027fbc4336a6a0af
BLAKE2b-256 ecac36e532ad4bb1bd86e1aa4520ab7ac68f47669707fe3435dec08add90e0da

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab0772fcc450a46f53c59849dd87edcbcf5c7387a74cf38889117e37d9db0c67
MD5 f6e1bb5bbce85f563642fe504c6217dd
BLAKE2b-256 6b516175b63cdd82ba4d46c8537358708162aaf90d49a60db2ffa0c61d927c20

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07aba6e0c850bd8ae9846b6233fb0067c21fc881722e6bea6cf9e71185ddc88b
MD5 5b4d2d4a68e60890cdb0595127e37e0f
BLAKE2b-256 b9587135ab7b649f6ea50fc656d74eadbd8de65a582e54095bf4c24065a1ceab

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7d18e1e6757dbdaa1b3971ef478371d8fea1693538610b5be0b7d9f1fa2a326a
MD5 a4f6486d8f758cbeabb010c38c77ca94
BLAKE2b-256 f936c2bcb5a561836c862231d93d00785e7340dfe19edca53c7e61b38de43ce0

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 81b447baabafb35d2ed5cf2ec56f46d4835b7c604f9b0fba3c085d76af032ec4
MD5 624d877d081fbf58a71a2f1a23d41615
BLAKE2b-256 49a42db1033b57ff15268ecf7735c29bd06d1af247d6e04adadc32cbf5d16fe7

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 250992f907509cabe25bb64b7effa1ad45514037a3ebe6afe22ecbfc92e170a8
MD5 d0e80217ffd4b0962d5c912bceb63d23
BLAKE2b-256 5a603c6bf353c7dd740bc483afec4542b53f6954e62a737bd9b022db486d6c61

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68e58653c77b4162ef28936915827687202d7fe401ce6ac4855a4535af65b362
MD5 86308a02f05bc4388c04b7c505c8fc63
BLAKE2b-256 fb7310ebaa921ba35823bfb0c0ccc54a5d60d2368b975306b54ee038d6f651ee

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2bd7ee08890394d732b09b6319feeb10472f3b99e493cb96cd93a8a94477ce3
MD5 a06c5d42b008535dfcb8b9f2fc73daf9
BLAKE2b-256 fa8b9a2e453434ccf944b667325a219ee3a5ad921e361241605b9b7b9464078f

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa365d45ea25e34dd2ebda99f88dfc56fc1e3d4bc32220630ab9b4982111a37b
MD5 61f4fb77d82f1119fb1451f99e3963d2
BLAKE2b-256 90313ad67d5a1954edea988325a568bf64588103dd6a2d8bde64546dff02e534

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fd1018ab595a3a0718b7438e456d10c5b62f735ad29fad1c181b652baa9a06f
MD5 deed8294ec375a7c80c171fb5ae5a34c
BLAKE2b-256 b472e6a7d2b9e1a2b6f7a63cc2975d413dede70e45ad1bbe83b2f4092b5df9b2

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa2472fff4c333c50164b7e4af81bfae1417c7840bf333aebe958a86030656a8
MD5 4af23195470e0ec76e08debf0a4fcde3
BLAKE2b-256 bdad8272e6c6fe3b8cbfdb68e4ed0034dda63ce8f23cd309c25275d94ae8d3cc

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 22b60ab0562b44f31d194f07733d5550424fd6a54091d540dfb70160460e9eb6
MD5 4d5f75d62ffbb112ded27cf6cdb2bdd1
BLAKE2b-256 89633437e13c56110f02956c7186761fe17a2ca1b850cd9473fa60d1a4d3d127

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e3f1517ead3ac22c3e676012bf1c1f5f608fc26d8988da95b89784d3eb77d0d
MD5 19176c229e49762cc037d117f375cca9
BLAKE2b-256 4e3dd7fb0e518d7cfdeca8f468dda64d9a290b90e4b7477e6fae1cfa52bffae6

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e4a127ccd6a4002f19ddda1b407a049bbef2bf4d047f19b9594d959faace585
MD5 04139944040aec1f8da7afbbc6895a86
BLAKE2b-256 726cdc470dab9f0253682aea277a95efbf4a20308250142a0b79295afc053b6d

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a46c3e1041b291b62cf08850edec5098f737857c37bdba5db62fb908854ad78b
MD5 9c8204b7a614262e23e6719c504c0a7c
BLAKE2b-256 95dfb44eebad6a7d859bc4c28ba6e5aef84d06ba25f34cd8b8dbe784b4793417

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: reasonable-0.4.3-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 390.1 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ba6ccfe90e2284ff30ba0caac5a3fb95b29b6be28c62385092902e7bd2a1d03d
MD5 eb20d14f0b975fa58308f8e2006ac67d
BLAKE2b-256 9b304381c5d0ef927b32e438a9bd75f1178941439f79be3be8e8c2a99419dc41

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e750260bdcb128f797b230141b05361ca1f6b5b49ff48161d9e5bcbc96e111f
MD5 0132a1a15a9e163b9686e7c8f6ead14a
BLAKE2b-256 74d2c0d6a166f1e0e340a3acbf51e047064b384bc0157dc75c86f4eb8c99d520

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8730ec15fa953e5bf16d536007020cdefe7d349926a191171ec108de15b1d2bf
MD5 b3faac0290550373636be0bb1be57f47
BLAKE2b-256 f9e203dbceac0d5b723dc7284408bf4998dba254512d85313a8593af18a9b3ac

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a85674ccc80c6d83676215153a3ee005df497f2e9d0682d1ae59d6b5d0da640
MD5 7e1feab3c41681a47ab2144fc61badcd
BLAKE2b-256 cf5a5e62dcd6359122b1f8e41638fae554235066e9b1fc2786cf995e5afc6d6d

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fbdffaee07f7036dca30a39748dc76652386873d6814c3c8c156f21489d1f8a6
MD5 d966f7fec125b11db1a3406b1b5f2f3d
BLAKE2b-256 3ea08b3d13242c3b27be526985b6a7dbd2cb41fe53b2d27f744934601b3d64af

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32f8b0b477a2cf68df536879eddebd91a616f9c84fa43f96139358986abc948d
MD5 02c846d7ff882e1976b7db2e845908e1
BLAKE2b-256 50a4bc28f38dd197893c9bd4a9dd40af1f60991b4283542ff218a3ab71c81ee8

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3226de974cf6cdd3cf49245bddcfea230557974f550232acbd529c96229bdc54
MD5 8a948ebbcab0496eb65da2480effe1f1
BLAKE2b-256 09b3fb7365c75b818c3f82086acca0c5ba3b63cac5807ebe77dfbad7db5effb6

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 316cd014330acf5af253b48064a1f5c49a2f6eaf4f58ae37010625b3dcd7955e
MD5 4732980406d43b4e575069c2c23542d1
BLAKE2b-256 c1c6551cd6302f991f164c1ec4777dd09abb9a9906a254001bf6d58cc4b93478

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8e39f98a49e412db4c2d08f275d7abd55d784d0a1e9955360dfb302495142090
MD5 53b0c678917588b5d225817dbc38b5b9
BLAKE2b-256 6d5b531808f17b66d7b8b2221655b1d10915cb5fe975dccbf8ac5723a482eeb5

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e70a71b406be7ad550dcd1b3b3a0967fbc116e34abebbbb42251a38254f519fe
MD5 e2e24735289aa8fa9033a718dd2f38ac
BLAKE2b-256 b5b64f22671fe71cffc4686c0c1cc2b44d2095e1798ffadbc602fec855b85270

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c020115922c7db6a740d3a858ea8bf0644776abe739c237512170f3a6c6117e8
MD5 40ebb30cb2d9fa195e6962f99dd8f17b
BLAKE2b-256 55fbe35969c1ff6cf6545a9867124014ba609949fa927c32ae36880eb7fb8e52

See more details on using hashes here.

File details

Details for the file reasonable-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for reasonable-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 329edb1b4ece81e6d2042d5667e4699d33408d7f376f2157bdbedf9093561a9e
MD5 1b7d0ec5e6f9baa41473d649aeee3b6c
BLAKE2b-256 6fb743caafc6da79485fb36913b49dc1b96bd7acd6a926f51a74c0254c7a0e32

See more details on using hashes here.

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