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.0.tar.gz (49.7 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.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

reasonable-0.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

reasonable-0.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

reasonable-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

reasonable-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

reasonable-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

reasonable-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

reasonable-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

reasonable-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

reasonable-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

reasonable-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp39-abi3-win_amd64.whl (379.2 kB view details)

Uploaded CPython 3.9+Windows x86-64

reasonable-0.4.0-cp39-abi3-musllinux_1_2_x86_64.whl (4.9 MB view details)

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

reasonable-0.4.0-cp39-abi3-musllinux_1_2_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

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

reasonable-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

reasonable-0.4.0-cp39-abi3-macosx_11_0_arm64.whl (497.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

reasonable-0.4.0-cp39-abi3-macosx_10_14_x86_64.whl (512.5 kB view details)

Uploaded CPython 3.9+macOS 10.14+ x86-64

reasonable-0.4.0-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl (994.2 kB view details)

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

reasonable-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

reasonable-0.4.0-cp38-cp38-musllinux_1_2_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

reasonable-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

reasonable-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: reasonable-0.4.0.tar.gz
  • Upload date:
  • Size: 49.7 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.0.tar.gz
Algorithm Hash digest
SHA256 21dff10a8f587ecce1e5c45e684eceea45dc2484e93973ff1c5ae4545d80840c
MD5 ef1200ce6ad797e196998a015b9a8bda
BLAKE2b-256 7ae714a2539e2f7f96e534fbab4b8804edd264533198a1f21ec76e4f1117e883

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab8d07d8b50b17ecd8b310cade3a59878c68c216947b3840e1513692ad5663e7
MD5 8194d01466e3f763eb63cc40d14c4bfd
BLAKE2b-256 62e4a492822d89a1c3fb73eb7d9631ac61522bc1b3f983de93f29ae2e7e9d3fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8926a80e5f3b4ff7e09acf3a122fbd555cfe9fda72de54e7b0bf27897cec057a
MD5 f2eeee962aceb4c32c565e12553749b5
BLAKE2b-256 91d136a390768e34b777ea3637e22e90ff3568a4c21ef1da85bec995901ff45a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 545dc6a92f6dca8d2b093673de2057833eca5c728691361f4c9529a01db78dc4
MD5 5de4694073863fd2700323e83dcee1f3
BLAKE2b-256 cb66b37615ffa3795fd3cddae240e516c20528b2fa4b5e1fe8b2beb9b0777f7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7bfe9fd264b6e8b8d7b44f0bbd18aae9e024349666c8a1bd4eb84a2e9ead6c3f
MD5 0f980be16979afcb346a6e2674ea2336
BLAKE2b-256 800f73bbc5445a02f91a133c72f4da1dbbe93566355ef6f29548735fa9fbe4ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9950ce4848b24ce81134f69c052aee820936a4a10b98ead263f2c8da0c5f3094
MD5 61d4f515d53eccd5d7db95522eaa725a
BLAKE2b-256 0db74f30ced2113bda3c49be1174c34fb479f4c14d44dd3daf785dd39c88f894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0e3de6e245b1788624c8f3c780dcde004a21856030e513bb96c6530fa0a66435
MD5 3dbffc91f5384c4e68a6e1b84c425588
BLAKE2b-256 27a122a21e970dee99c8ff988b5917ae3a413e27e4f10a81165dbb9d3829761e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbc59740da7e13c0da317a55c4f1db2f552bc3abccd0716c9d269a2faa48fc02
MD5 de56a24969229b5f93dd269d8cf96d85
BLAKE2b-256 6c28a4f7af81a82c66e38c101c0337d3001668426ce23fc86164fc8d9284b625

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6ae979b6bb30052be33a3495ea5fd7c24f0fb2cd82c5e0abf130f4b563848fdc
MD5 56c10886ae80cf858787c3c8e28a8147
BLAKE2b-256 be24b28ea9557f7280eb30537cf14237ccbf3072f724cb33621ff0a8e8983779

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 572b45cee30f985b3b6d5087f81ff50ee8f487fc0c14931294371b240189dff0
MD5 e7f0b19bd1f5807b8cf47ea509c3c96a
BLAKE2b-256 909b074243b4dcb426b8ba3de945f1ec5631af1ac768e21f669ee5a99508c47a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7eb9c8fbb9e44bf6f3b4c2955969bfe3981a176be852345cc4fa4d83f94c175a
MD5 cd0c3a7173eae4ea6d2acf46bf42b3bd
BLAKE2b-256 7e7e48f1236a413f55bb1cee31d39dc6e17c4052a58b9637518d0e6bd96aa424

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9af94e232dc7849a91734fbedf0cf64bfa15dbb9b601cff03d1243dfe3b0eb4b
MD5 01e2612b71b38a3ba8bef11ea42ca9d6
BLAKE2b-256 08a2e5b65d1d35de22b56d5b18cd72e3d5f4ee680439c604567a95c9f9c57443

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb0a28139772b37cb16a1ad02532077f123e5c07a9b92f3bc8b41c242be1055e
MD5 b0f012f12457cd2111a0ed954d94427c
BLAKE2b-256 6c8f33c26783741569145aa755454e463523d96fe3e8f538720f4afd678a134c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3fdb1397c68c032682852958aae77b22171e40dcc6f1565bee1689ba23b2653
MD5 b8cb80acf89998af1504f0230ae8fb70
BLAKE2b-256 a8a8f0cb41e9ffd4beb4e02487d1c8137c3089c9646b195f469e08dcffa22ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 526b67121675484abe656112c6cbb05622f7adbf19eb8eb5837e3fbeb811e7d7
MD5 c37aeba981023d4b7ad24ebba1640e36
BLAKE2b-256 357ce5a587acf23eca9da1e8c2b99836d63b410ba37cca11734b109f7d35a1b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85cf72747077121a8a3fea8bd7a44a3212d9d9552b21379bd53231a132bc7e45
MD5 05cdb5523cb85fbdc60cd14d02bf827d
BLAKE2b-256 f77560da0286839526ceac26d24eea471eb49241decda574fd4e39372d839b67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c422f23a877e794bae00b3fe3e44f3b6141a9287de2b00f469d4562df6bd3047
MD5 2b36f86be95d5dc030ff210a4b24bf83
BLAKE2b-256 e5ddd8c06b711f527b0b74a7f9a038580f0e83f25714c543eb7f7562eb673a5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aa82e6aa0559497838c72402f804f0825c0ca9b07b90f099da73eb6a9e030bbb
MD5 4047ec94f652d2292ee5b65a500a5c22
BLAKE2b-256 fb842e6fb1204fc2aa371d8e6721ea9595727b76cdbf48fdb5988b77644b443e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f235834663b8d72cf90665e2b141c7960e8ba841b216c757c86902b1c36acc5c
MD5 faf9274089b320ea5e0e107d3387a60f
BLAKE2b-256 e977c24ad05c3e3d2944ad03d35dba98ddc822798bf4caf200bbddc03386ecea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bc6f044f4b97ae0be90909b2c2ee1868a2284c52123261b4aacd6cf6ed56946
MD5 f5f7e861b47431d51c382814aed24554
BLAKE2b-256 ac98ebafdf29eef67842dc093b9248d4977026f92049c76a23c347719b5b9cd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8cab5e782c814344474e3847f18f8d2e287e9bdbd641f3b99a8a01228a6c3778
MD5 463e307dd1762f5fc58cfd85c690afa1
BLAKE2b-256 713bd058713d2e58980f248241a6022cf75cd98c052da7a18f6af11b25d5533c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: reasonable-0.4.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 379.2 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.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9869bdda8195d6ee63f53c6199968f197400bef4944b5732161a5ff74b85f474
MD5 a97585e0c73ef33186d460f29bae9d61
BLAKE2b-256 72ebf5be128c047fbc6d41f7fc816a476590b6cc047f1dc5212390965a9bc0ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 635aeac47a5da51411a334312bda7d175cb33ecf73aa0a288e86bd8f1fc808aa
MD5 da9d49cd212f11177fcc4aaa8ccb6792
BLAKE2b-256 a63dfc6732592f8aebdd2a076da924a8720ee5033830f4b8f4f868c53a8834ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5bfcf036be330d0731c6cdc9327b45beac6ac5eb117aae105d88d3e3c2de5b94
MD5 61454f9181754770cdde04c0b157240d
BLAKE2b-256 7d08f1b1ba976abc910f8833c3b94c05be845bed025014057662e7efbb5e2030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5cc0ed059390192ee87eae352ded7395a9969b5fe065a87f877c6d5daeaffa8
MD5 4b43db9e1438358d4c8c1842a4cb5b81
BLAKE2b-256 e482d67a3ccb40aa2bcc2bdfb31aa31589d96fdd3f5007fc54887cfd3a55d888

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 912fec5e4e4d90a06c9ee0f1f3be3f603c98d3249d6f3a45f94cb59c9e29446e
MD5 c5e1812354173e903652c395eda8c68b
BLAKE2b-256 8fbf8d2e37b00618ae3ce9164e01e8b08de327694c8a8f93e9ac718cfd3f55a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 775eadf961f6914a0a89827815b33864b22df7b0bb4fb71f0af8184039fb1472
MD5 54b71438269e22023e8b6fd503df1fca
BLAKE2b-256 e2f605a81f50e69eb02fcd7f874f342060012453f79dc5309c09d58193c91c01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp39-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d3504e9899d5a41e0d35492f1934af7315694a2dfafcf4813a41a26926530368
MD5 0334f1bb7db13ee18a403fa6acb3121a
BLAKE2b-256 84dcec7e56605c96b68006d042cb0dfb3d1b74e08e6f9f8f687dad0bcf095879

See more details on using hashes here.

File details

Details for the file reasonable-0.4.0-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.0-cp39-abi3-macosx_10_14_x86_64.macosx_11_0_arm64.macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 094730c83b395321dce776350555388e634ab54c62246ba246eab3d44a153875
MD5 7de7b01ecfd9d9604a8461cae561edd4
BLAKE2b-256 72c3b2a7d58c61470ec2c7113e8de3072bd94111f607996b478a46c7f94a66ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af26d05969a534417c4f38a0afb3b5d8baef5a43367da8b735ecec88064c8948
MD5 e55b28a4e2b4727c53e292b2014e2015
BLAKE2b-256 2b11f9255d1765cd471a4790dddfccd5b0fbe48295bced4b47f2e7fb7c4e1463

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6f5f1171e68b6f58fba4fda6e04ef408b6713865505533909f108c9f323ee83
MD5 f457231f3d6f1075cf1949fe81eaebf4
BLAKE2b-256 cead845fef8c9696f0f9eae45d51da689dd8cf615d4edb3b32ec573ce9426cf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da46b59092b406e4d243973ee2dee7fcacec2ee4e2b9e7f3eebafbea9ea291c2
MD5 919be38d43446a3e357d62679398cb92
BLAKE2b-256 1852cb34885a488cdc407cab8d1d78836c880de4931eb4093b7ec4cbfd5e31ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reasonable-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 92d1ab7748723aabf0efae6265b31377a67430fc9f4c1941b4d359e0ddd69b7a
MD5 7020ee759089b2add6eb42226e9dda89
BLAKE2b-256 6b91ee6a030acfe40b49b35e5bb92202dba2316953f1c9936349786ecdfb2962

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