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.4.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.4-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.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.4-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.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.4-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.4-cp312-cp312-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4-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.4-cp311-cp311-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4-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.4-cp310-cp310-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4-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.4-cp39-cp39-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4-cp39-abi3-win_amd64.whl (389.8 kB view details)

Uploaded CPython 3.9+Windows x86-64

reasonable-0.4.4-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.4-cp39-abi3-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4-cp39-abi3-macosx_11_0_arm64.whl (509.8 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

reasonable-0.4.4-cp39-abi3-macosx_10_14_x86_64.whl (527.2 kB view details)

Uploaded CPython 3.9+macOS 10.14+ x86-64

reasonable-0.4.4-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.4-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.4-cp38-cp38-musllinux_1_2_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

reasonable-0.4.4-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.4-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.4.tar.gz.

File metadata

  • Download URL: reasonable-0.4.4.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.4.tar.gz
Algorithm Hash digest
SHA256 dac7b568b5e5237ec03250dc35b786a60c32d844a94d691c3bff0b0d86f40fd5
MD5 c507fc0ff6462962abc3a1d0223e3158
BLAKE2b-256 34bbc9f2a2705532ff8791276e3a397c85c673f26c4e09eeea6a1a20f96e710a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c88dcc9d5d68d3a7b84fe5a7347ab68875d58f3b73c56bc135053fd78848458
MD5 186715e4dfbdf7114293d6dcbb1cbf8b
BLAKE2b-256 56ccfec2d8785fb7a8d2439958d445f9daf2ae6496706a265b6d465389485214

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d25caa9fc5498525e1844744ecb4d81394d73b024b4e151db70c1f834b39d32
MD5 d94e2294dd0d198609872a29a1e99cae
BLAKE2b-256 b7ae29545440b3211acb837bc576c971e58084b1240bce0850fe4eea2e0da36f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b7686c7028756d7e8f4a171d1829d56b454cb1ea083f3b2276064961bdabde64
MD5 a0dbfe95415b1a0899cc142a18c48dba
BLAKE2b-256 d6a0997fa323651d163e5ebd268497cfe991ace75cf800deedcf57beaaacb9b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0ea4173f2e3f32699b0513e5a9ad80bbebbdc354b3b775ef86f202f5690a451b
MD5 665d15b31f3bb27d6524ea7ada13174e
BLAKE2b-256 dc83d9490ee35b0b3597633f35274d6f9cabed57ed2d8e6b3f4761e75bd811be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3bc502bd578a75c70bfbb3dbde0ca8644271a527e61a8f085869a0481281f75c
MD5 9b5b3310db75d69a5a048eec39f20622
BLAKE2b-256 5e29cbb34c59b23fbe1b78be586ba0031e277a5abf0adc2e2fa1b8a05d8ba7ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa8fb8bdd7f8f4425875109b9de5947fa64ea9f929cae5952607d92abcb8955c
MD5 8ad1ea68c5baf0a4c8136936b7177862
BLAKE2b-256 f7289e1709ad6b4d4757e8597bf8ecfc4fca6b876838158ae2a29e3603663e57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d2e4c74f7476475ff4384312c5a1aa78f8b70be77eb978e50a7eb789d3211d6
MD5 8b2ff4100c12423757eca1607cc19b36
BLAKE2b-256 6e6900b96f283bbbaa9070848b26b7ed565c11ab3da035916e00d15aa457f753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de71d74486f3d0d12402a5aeecf3b8d6e7fb2a49fa2568a00af4fac04d38dd2d
MD5 c7574ebc65c88fec61c928cf19b997ae
BLAKE2b-256 3fb2e40078ee0afb8bb0c9788849907ac95ca8b4bd40e2bedcfe978264e30540

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bfcdc209f5b7f4fbb01bf059e4b961a02a40df656ed9838215bc3461d53ff977
MD5 ee04b0d0b8a68ed3451d971994193d1e
BLAKE2b-256 d82a9964da7d8828951f37d7c29aba0241bae2a5cc7adf582280c3d01d2c9440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1004223f73935a1437c89805e747283ed1889a1184e00eb84962365f000538e
MD5 a10a2d15bc0ead4515405088bb008e09
BLAKE2b-256 a80920ba8ec7380a17a0985628b9cbc03f7e21eec4ff88768cbb1e19d9753dfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18b5f6dfbfc82c4b60541bb6fbc01bdece6e4aabfebe81298ab0cf1f1b69b14e
MD5 6b7928bd436f0ba9782fce8430ba6a2f
BLAKE2b-256 c7286bc8aed4d5f28e18f400640141b4dae559154746702ac6ce88f62cae9730

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5158af3f116a4bf47454b4ba527faf3ff2494fa5eab36adc2c7fa4eae6b4818
MD5 af4151b116af6194501fef7a7959c8dc
BLAKE2b-256 aadffa13fca79131710a174d2a8d4c64566a120a16036d72528af87995d81ba0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 659cf6011e0533b4045649ca431dc151069e4b44be9db52c08affecb80a4d534
MD5 85d413a83b41bf8317fef5fdffe9dec9
BLAKE2b-256 9455b835ec0d267a71bd777138b581e36f635b633106b4a00a2bc549b417a3c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 493b299ae91acd3717d8f2d3384af706a6ebcb8ef8297e964a9aeff234ffa996
MD5 f1d9bd756465938ccf79aec01cb467d8
BLAKE2b-256 3f83db9c58723f36a7c9e433ed45b5d0d37a8e9cb1d101db21505efae7ebdc0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f8fbc411dcef6c209b472888af2e1a83a2fee73514ead3e17fae0aabcf06a94
MD5 5c89b8093efb619bcdc05b809396a00a
BLAKE2b-256 59f97081c18d6763ace79c93b25400b5604c8f673ed82b3b0196e7400905d9e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e13b41d96dcf2613b794de1bd562bb8c1d826968173ac86b2d6081e62d8fd176
MD5 4f365cc683783b3593cc21b2872add99
BLAKE2b-256 b1363365ad5783961505d1c7860e59102c3d57f70c49d0efe77ee8e99a5db71a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0a4eb6546916f6b43aab03a092a22db5e7b4456a0bb9723ec084c9a784ae3aea
MD5 bc5152e8a6c6237a5d9e60b794637e6d
BLAKE2b-256 bdf4600de01a93b008bb593c5bfcd08929faf073e6ec36bc84317e44d8878796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9729ab5f38c76b74a57bb688b20c4ff2abbf107a54e7d0ac2f075be60923dde0
MD5 46dab89c061b380bd2e40f5bc6f88fc6
BLAKE2b-256 20e407abbcf99c4dca1bf9624c5f3a38928b228b3b38143ca649a3a6a8ddf17c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 480dff402e441bec21b1cfb10e7b2791315e2c4f76c2dba97e4639b831ff48ad
MD5 ee1390c6eafa2357d0f45e2d3cf2ccb2
BLAKE2b-256 37397a8b0d24f0e75bab3f22b7c815f1ca88fddb94526132afaa9d2c02f72805

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5d0d400245fa9aee5e32b3e54616a225f9cd966e836f0813d5864e351f7c390
MD5 b09ba62b5a1eb13424a8688cc17d8025
BLAKE2b-256 e51cdbfe7e8177369f5f2227e33cd412e46b6e72aca21a761c6f197aa4cced64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: reasonable-0.4.4-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 389.8 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.4-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e7e3446a9e7ed3383730cb029a2a1b02e2f73ce5434d4c5c5cc2e2d323affa4a
MD5 52159b6e5a13f6ad2936952e51c74500
BLAKE2b-256 7bf4b633773c809f6c4d1dcf85560a9f073839b9be472fc0cf7279d29527c302

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e9c45873d2361bd1014c5d86e413617d33cd201951a08cc63444e6836736e247
MD5 f1afbeedd68ff842ee46bf29a54bd4a7
BLAKE2b-256 36c3959fa735916a29b12f9ccd40bd45487effae987ed7613005cae1f9b78968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f66ef2c94ad3893c6fd4b1320f94b69ac0e0b31415aad81541006e6d67f11042
MD5 b1e794dbec1e998ba5d185801468d42a
BLAKE2b-256 4f6950716e73c299897afde954e8a0eae31b03ca682a63dabfb6ebb8906633cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8801db6cb6bf47de4b3b4ef4df8622de8e3cc9c22a0928e51dca4477fab8fa4e
MD5 4c0a27174d7f6e3e20d30ca0a01f018a
BLAKE2b-256 0a2c759fb4fc77271bae4bf5f74b73e5967728027b0bfd7d63bbc0f7551d13f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2fcfd0ee6ae94e66f51bc82f10a5b68ec2de68918ee6cfb05124d421ab4df058
MD5 445f125442f267d47e378e08652633b1
BLAKE2b-256 926217171573c8a7e2aad0edca3e7f67108782d80f8a268748d621e64d13ddd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a66c982806297f02bf7ecd3a9713828a332ee8d96e8861756f3de6d96101222
MD5 0ae7af1108607d676cb13a075b3808cc
BLAKE2b-256 63ae587fdfdcf0d4e6f51ee7ad8d2d071dcd8dd8fb13d08f97c84ab5c16843c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp39-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 94adfb449180313a46f96548c345a549e302da939f696fc2100766ccaade4f7c
MD5 116e195364755ef2c8c7e4e17ccda862
BLAKE2b-256 381bdd88ea50cf51fa92064314d6a9820b375b5810702b9ab421b577dd98b896

See more details on using hashes here.

File details

Details for the file reasonable-0.4.4-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.4-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 85efa4f40cc2d58cc633bd21eaa44121f0741f7f27e60234ce88813075ad47e1
MD5 935db2aebd2aa8cb88501f00af9921ce
BLAKE2b-256 093f28146fde68ea3ee5e29f62918a509e23779ac2fd897b3f388024a9ff2d96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e69146fd4a869d56f6e2e2015e5a5dfc317da3e25ac2f34caf2812094b1783a
MD5 0c81c36f6fb3adae422da36b0c3fb811
BLAKE2b-256 e8975cbb572e3b72c0e716094a0cb6a447a109b6f47739a20c248d5d99e52617

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 86b83a794c5bd6954b0801e707347c80376e28f0b60dfda8ab3cf9c4d3236e93
MD5 001db588a7a8fab94d90d7508c0d3fd5
BLAKE2b-256 6e4d56528324c534ec2ca981eac4faa34931f6e93414e7a07d7f5f093f7313f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af703e12eb1d6d02753d2461e1ed368fdd13759ee146b0ec878ccda65d8e3806
MD5 efcee7327d644601b222682c9224cd79
BLAKE2b-256 22bce88861f47e133d1075eabffd510f833b44d4ba50b7110d44a59e83c7a21d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af396b9eae5248017734f8892a08ab6456692c26774277bca575394b6ef992a7
MD5 4e8fe97d8a4629ba39a6e2e82e6da703
BLAKE2b-256 ba84b71a96c3a860bf0a41cc68c70169fdd7ca32fb171973502edabb547cae27

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