Skip to main content

Resin — Reactive Signal Inference

CI Release PyPI version Python versions License: MIT

Resin is a probabilistic first-order logic programming language for building reactive inference pipelines over continuous, asynchronous data streams. Resin programs are compiled via Answer Set Programming (ASP) into Reactive Circuits: vectorised, self-adapting computation graphs that perform Algebraic Model Counting (AMC) in real time.

The core library is written in Rust. A Python package (pyresin) is published to PyPI and built with Maturin.

Installation

For employing Resin with Python, you can install the pre-compiled package via PyPI:

pip install pyresin

To use Resin with Rust, you may clone this repository and build locally with cargo.

The Resin language

A Resin program declares sources (incoming signals), rules (first-order logic), and targets (the quantities to infer).

Source types

Type Declared with ASP encoding
Probability a value in [0, 1] choice atom {name}.
Boolean true/false choice atom {name}.
Density a continuous distribution one choice per comparison threshold
Number a scalar value one choice per comparison threshold
Categorical a vector of class probabilities 1 { c₀ ; c₁ ; … } 1. exactly-one constraint

Syntax

Here is an example Resin program for an autonomous aircraft system navigating an urban environment.

# Source declarations
over(park)         <- source("/map/over/park", Probability).
distance(hospital) <- source("/map/distance/hospital", Density).
distance(airport)  <- source("/map/distance/airport", Density).
speed              <- source("/sensor/speed", Number).
flight_hours(w1)   <- source("/metrics/flight_hours/wing_1", Number).
flight_hours(w2)   <- source("/metrics/flight_hours/wing_2", Number).
flight_hours(w3)   <- source("/metrics/flight_hours/wing_3", Number).
flight_hours(w4)   <- source("/metrics/flight_hours/wing_4", Number).
{sunny, raining}   <- source("/weather", Categorical).

# Propositional rules
permitted if over(park) and speed < 25.

# First-order rules
critical_infrastructure(hospital).
critical_infrastructure(airport).
safety_distance(T) if critical_infrastructure(T) and distance(T) > 100.

# Conditional probabilities and Noisy-OR over first-order instantiations
wing(w1). wing(w2). wing(w3). wing(w4).
needs_checkup(W) <- P(0.9) if flight_hours(W) > 100 and wing(W).
any_wing_needs_checkup if needs_checkup(W).

# Target that the program will be constrained on
safe if permitted and safety_distance(T) and not any_wing_needs_checkup and not raining.
safe -> target("/output/safe").

Rules supports variables (uppercase arguments, in the example above W, T) and conjunctions (and); disjunctions are implemented through multiple clauses. Comparison literals (<, >) on Number and Density sources (ground atom left, constant literal value right) are mapped to the independent boolean or probability leafs, respectively. Categorical sources provide probabilities for mutually exclusive ground atoms that are assumed to sum up to 1.

In Python, using the Resin code from above, inference can be run over one of the supported commutative semirings:

from resin import Resin
semiring = "LogProb"  # default, otherwise use boolean, fuzzy, maxproduct, or probgradient
resin = Resin.compile(code, value_size=1, semiring=semiring)
result = resin.get_reactive_circuit().update()
# result["/output/safe"] contains resulting value

Semirings

Resin's inference algebra, and thereby the value which is computed per target, is selectable at runtime.
Every Resin program can be evaluated under a different semiring by changing the type parameter S in Resin::<S>::compile(...).

LogProb — standard probabilistic inference (default)

Computes the sum of probabilities of all satisfying worlds.

⊗ = product of probabilities  (log-space: addition)
⊕ = sum of probabilities      (log-space: numerically-stable logsumexp)

MaxProduct — Most Probable Explanation

Computes the single most-likely world.
The sum over minterms becomes a max, so the circuit returns the probability of the highest-weight satisfying assignment rather than the marginal.

⊗ = product   
⊕ = max

Fuzzy — degree of truth

Evaluates the program under Łukasiewicz / Zadeh fuzzy logic, treating input probabilities as membership grades.

⊗ = min (fuzzy AND)   
⊕ = max (fuzzy OR)

The result is the degree to which the target condition holds, dominated by the strongest single conjunction. For the same proximity model: max(min(0.8, 0.7), min(0.2, 0.7), min(0.8, 0.3)) = 0.7.

Boolean — satisfiability

Answers "is the target satisfiable?" by snapping all input probabilities to {0, 1} and evaluating with classical AND/OR. Returns 1.0 if any world satisfies the target, 0.0 otherwise.

⊗ = AND   ⊕ = OR   encode: p > 0 → 1, else 0

ProbGradient — forward-mode autodiff

Computes probabilistic inference and all partial derivatives using forward-mode automatic differentiation. The result vector for a circuit with n leaves has layout:

[WMC, ∂WMC/∂x₀, ∂WMC/∂x₁, …, ∂WMC/∂xₙ₋₁]

Currently, no batched operations are supported, hence the value_size parameter is ignored and automatically set to 1 + n_parameters. Because ProbGradient returns the full Jacobian, it enables gradient-based learning of leaf probabilities directly inside Resin.
With each gradient_update() call , the probability of the target is evaluated together with all gradients and can be used to tune program internal parameters:

import time
from resin import Resin

# An example program for the safe deployment of a quadcopter
code = """
flight_hours(w1)   <- source("/metrics/flight_hours/wing_1", Number).
flight_hours(w2)   <- source("/metrics/flight_hours/wing_2", Number).
flight_hours(w3)   <- source("/metrics/flight_hours/wing_3", Number).
flight_hours(w4)   <- source("/metrics/flight_hours/wing_4", Number).

wing(w1). wing(w2). wing(w3). wing(w4).
needs_checkup(W) <- P(0.9) if flight_hours(W) > 100 and wing(W).
any_wing_needs_checkup if needs_checkup(W).

safe if any_wing_needs_checkup.
safe -> target("/output/safety").
"""

# Setup training for simple example program
# Make sure to use ProbGradient semiring for computing gradients alongside probabilities
resin = Resin.compile(code, semiring="ProbGradient")
reactive_circuit = resin.get_reactive_circuit()

# Set all wings' flight_hours above 100 so the condition is active
for channel in [
    "/metrics/flight_hours/wing_1",
    "/metrics/flight_hours/wing_2",
    "/metrics/flight_hours/wing_3",
    "/metrics/flight_hours/wing_4",
]:
    writer = resin.make_writer(channel)
    writer.write([200.0], timestamp=None)
time.sleep(0.05)

# Training parameters
ground_truth = 0.5
learning_rate = 0.1
for timestep in range(500):
    result = reactive_circuit.gradient_update()

    # Updated weights was not enough to invalidate any circuit
    # -> Training converged
    if not result:
        break

    # Get inference and gradient results
    # Gradients are dictionary from leaf_name -> gradient
    probability = result["/output/safety"]["probability"]
    gradients = result["/output/safety"]["gradients"]

    # Finish once Man Squared Error (MSE) is small enough
    if abs(probability - ground_truth) < 1e-3:
        print(f"Converged at step {timestep}: P(safe) = {probability:.4f}")
        break

    # Compute MSE and perform gradient descent step
    # We set parameters to "needs_checkup#0" to only fit the conditional 
    # probability of the first clause with that head
    mse = 2.0 * (probability - ground_truth)
    resin.fit_parameters(
        gradients, learning_rate, mse,
        parameters=["needs_checkup#0"], timestamp=float(timestep),
    )

Gradient mapping for network outputs

When leaf probabilities come from a neural network, the gradients dict provides the upstream values to feed into the network's own backward pass. You can access all gradients related to your source channel via resin.source_gradients(channel_name) or resin.source_gradients_for(atom_name).

Note that you may have to combine gradients depending on your networks output layer, e.g., for a single output neuron that was used to provide a probability you need to compute full_gradient = gradient[atom] - gradient[-atom] to include the gradient on the negation.

Python API

Compiling a model

from resin import Resin

model = """
active <- source("/sensors/active", Boolean).
alarm if active.
alarm -> target("/output/alarm").
"""

resin = Resin.compile(model, value_size=1, verbose=False)

value_size sets the width of the internal value-space vector (e.g. number of particles or grid cells for vectorised evaluation). This is helpful for running the same Resin program for many problem instances in parallel.

Writing signals

Both make_writer(channel) and make_writer_for(atom) return a correctly typed writer for the declared source — the former looks up by IPC channel name, the latter by source atom name.

# Boolean source — by channel name
bool_writer = resin.make_writer("/sensors/active")
bool_writer.write([True], timestamp=None)

# Probability source — by atom name
prob_writer = resin.make_writer_for("over(park)")
prob_writer.write([0.73], timestamp=None)

# Density source — pass distribution name and parameters
# Every time parameters are written, the density function may change
density_writer = resin.make_writer("/map/distance/hospital")
density_writer.write("normal", [[25.0], [5.0]], timestamp=None)
# Supported distributions: "normal", "lognormal", "exponential", "uniform"

# Number source for scalar comparison
number_writer = resin.make_writer_for("speed")
number_writer.write([12.5], timestamp=None)

# Categorical source — flat vector of class probabilities
cat_writer = resin.make_categorical_writer("/classifier/digit")
cat_writer.write([0.1, 0.6, 0.3], timestamp=None)

Reactive Circuit adaptation

The underlying circuit can adapt its structure in response to changing signal frequencies: For example, to group source leafs in 0.1Hz wide bins, each bin being separated into its own group of circuits, you can run:

rc.adapt(bin_size=0.1, number_bins=10)

Alternatively, leaves can be lifted or dropped at runtime, meaning we may manually indicate that a leaf's value changes more or less often than others:

names = resin.get_names()
rc.lift_leaf(names.index("alarm"))
rc.drop_leaf(names.index("raining"))

Building from source

Requirements: Rust toolchain, Clingo, Python ≥ 3.9, Maturin.

macOS

brew install clingo
export CLINGO_LIBRARY_PATH=$(brew --prefix clingo)/lib
maturin develop --release  # Optional for building the Python package

Linux

pip install clingo
CLINGO_DIR=$(python3 -c "import clingo, os; print(os.path.dirname(clingo.__file__))")
export CLINGO_LIBRARY_PATH="$CLINGO_DIR"
maturin develop --release  # Optional for building the Python package

Run tests

cargo test

License

See LICENSE.md.

Citation

If you find our work useful, please consider citing the paper Reactive Knowledge Representation and Asynchronous Reasoning:

@article{kohaut2026reactive,
  title={Reactive Knowledge Representation and Asynchronous Reasoning},
  author={Kohaut, Simon and Flade, Benedict and Eggert, Julian and Kersting, Kristian and Dhami, Devendra Singh},
  journal={arXiv preprint arXiv:2602.05625},
  year={2026}
}

Download files

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

Source Distribution

pyresin-0.0.12.tar.gz (113.8 kB view details)

Uploaded Source

Built Distributions

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

pyresin-0.0.12-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pyresin-0.0.12-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp314-cp314-macosx_15_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyresin-0.0.12-cp314-cp314-macosx_14_0_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ x86-64

pyresin-0.0.12-cp313-cp313-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pyresin-0.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp313-cp313-macosx_15_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyresin-0.0.12-cp313-cp313-macosx_14_0_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

pyresin-0.0.12-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pyresin-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp312-cp312-macosx_15_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyresin-0.0.12-cp312-cp312-macosx_14_0_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

pyresin-0.0.12-cp311-cp311-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pyresin-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp311-cp311-macosx_15_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyresin-0.0.12-cp311-cp311-macosx_14_0_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

pyresin-0.0.12-cp310-cp310-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pyresin-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyresin-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file pyresin-0.0.12.tar.gz.

File metadata

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

File hashes

Hashes for pyresin-0.0.12.tar.gz
Algorithm Hash digest
SHA256 78e7d5075ac9567fefc10a28951b1f4f60dc5cc1ac87c987ba2f0640ebc4ba36
MD5 b7521b54c5378671d3a226995ab992f6
BLAKE2b-256 93cfb41abbb27511298b23c24967d62f232cf12f83e207a6f17a0fd21e1cff1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12.tar.gz:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f845a1ae22713eeb2de37c189807d0e6081cd6075723ac183ec4fb2150646517
MD5 b32388c57f7d1701f7972fe636af78be
BLAKE2b-256 436b71c2442d814706b822b3954d5afdc3aff58bd414dab34a7423c954df3e46

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60ce77afa672ca17debe100d5dff132983d7ef02aa4fa20675450a28a7066f15
MD5 85709ed84471e87740b3b29f8d7f3201
BLAKE2b-256 9afbc292d582292fcfe8f52ecd8eccf92a3706f3b9d55f74b086d3cdd803461b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.12-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyresin-0.0.12-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4560be4c925a6f7142408f9d74f8dbdcef664c8960510ff8366cefe0b41ea72e
MD5 f7e4e1ce31be24f31579b5193bed9a08
BLAKE2b-256 fd995afaca1794d75246119da19ca8b7056a081b6b13978d1813aaf54ccc499f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp314-cp314-win_amd64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3117d0b7e50124385cbee9d53bdd78e6db3fafe8c1114c6770265f3c14c13a7e
MD5 07e5ff88dcc914135cb50ea917908c94
BLAKE2b-256 9f3ee059cee1c2b8ae58f53a7035ac889f728f51913675216837ccc3717b68bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7a874816ffacf24518ee1b31dfe055f69405a341d5973db9e2c1242250a4f147
MD5 da9ec084b26516c86ea59b992fad2a6f
BLAKE2b-256 11adb8f4f7132f0fc1e69e412637b8259992a0a6ded46ddd196262bb71205fdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp314-cp314-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 a03344e69199c7de90eddf65fec23cb6640fcd348716b86b99c72a824d6d303b
MD5 53ef294e259642c1402f74720793401b
BLAKE2b-256 c9e349266a7e9303e331c92b3f87ec7a3b25bf5197199aa327fd43cc5025ea8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp314-cp314-macosx_14_0_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyresin-0.0.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 767de2b5e000bdbf48e71bfba6c9f4ee5f4c3ac8cf323f7b21d3caebaa664f6d
MD5 cc5377227b3a168d2663651079ac51df
BLAKE2b-256 7e2a2dfa79340e26a034d3e8546c45b81cf4d5cb812d88f0d1833aeedf6f5254

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp313-cp313-win_amd64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d78ba4e6183b3c5dd80141d907994bda8a81d13ef0678c28494d1e3dd42335ee
MD5 032e75a312f1ba6c45c67f64ca3e8023
BLAKE2b-256 71aaea672c96e548c675397f18bffaa34211aa43a6ee6590b37fa2e8ee917d9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 44c569829236169ab46372398cfca20dd37f667aa1f6bdd4cd25f4579e3e3e28
MD5 6b51d2a0bbe84f9a5f5cc9432f8e3465
BLAKE2b-256 d5ba11cf5f41e5433b3c51b6926add4a4cd1761370ebfac282776eefd4df0f45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 a1ee3ec82f61c72c6d0af6fccc989889020c99ee294ad4684aa47d16ee4013fd
MD5 47d3d7a60d0dd1a95daea8f0f30f1f09
BLAKE2b-256 b3819f48cb167d1d531dc86ff1cdc29abee87d6a9b29442b70e2ab33c7138a45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp313-cp313-macosx_14_0_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyresin-0.0.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9f8ba80acdd7f32f5dc42675b2bf9d9f1ae3e338ef3d7015e0e33c4f89205a28
MD5 4ff19b194c5ad8e8901888c608f15901
BLAKE2b-256 b50f0390eaf1d275494778fd8dac831b05b70eae94a8b55d81a6db9281c4097f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp312-cp312-win_amd64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e86b3aae11f945be7e82b9e2c93855310011d20ed2be577e592c85f2b0e4bbf
MD5 ff5c1ca4fd9c48ed259d47074c2de6b3
BLAKE2b-256 d77ebfa93e1ad9be26954b1bd6dacef3a55d957847601c825bab9f450a26d6e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2609f16143a4d61ad0c4987276871310cfb872f12e6dcfd986222205d1731664
MD5 328c10eee78b638975709724e565bc4f
BLAKE2b-256 df9b87ff6d97127c0885172c9b7b5fa0be7bab7eeba9ec1843512d0ae1be57ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 60bdca071b3062b9c5a49f52b4ed47cebd72ff281959c07c7b79710d9f7a449a
MD5 c7c1327352de260274a402a8a292e7f8
BLAKE2b-256 d91ef6a0e7590bd07926fc4b597220abc8830774b870d78708a984792bbe5446

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp312-cp312-macosx_14_0_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyresin-0.0.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4ad07943002caa0368c7cba217240e1c21d3d569ef31aaed744999a9b78e9ee3
MD5 a116fb831bd6ddd5605877777a50a49e
BLAKE2b-256 67016903e982db1baf535d5758d8ddf4db7080044d924a2949fa7464718e1531

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp311-cp311-win_amd64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 174c7e1c0e0706b17663cb9760219cc8d174e00ed21755f4fa2b0b53e691bed7
MD5 ebd2c61f673a6f10ba816fd369e64a39
BLAKE2b-256 507fb22c29453a37181e2b8eec93897b256152ec62b06060f96decdb8811f03f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4ffb619bc5270d5427ad0813d613286e77e807d6ece947cf8650f30e8dd27e63
MD5 6c6ac8e374974600177d4be93403320c
BLAKE2b-256 ac542d653a47570afa4e7ad0a6dea86f23cb05e72ce07f7191689cf4241ac966

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 a4479a1f03ed1ac2584513dbbfb9235151f2ac16a1b85c72d6b0df1419b9ef19
MD5 7c63b851a90542b6ef9e6dd8e114e64b
BLAKE2b-256 ee341a8b9e32b7961a33d05faf4ce5852b752558ab8b5ee803309e7b8f5f3cfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp311-cp311-macosx_14_0_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyresin-0.0.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c15976a69c4305a80d28564e83831a13b84e0cb492a53780ac7cdc0e341f3567
MD5 3850f077d7433fbf098fcc8622bb7569
BLAKE2b-256 594cfea525dd6e1b7517adc1fe400c3050242e3960486edd6d222ed1a7d743b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp310-cp310-win_amd64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c57d741576eb000ea378f98b5894d739a02e9bd8a64c6075a791155e2e0c12c
MD5 7415332aa1dfe3fc8c09721b2d740b19
BLAKE2b-256 e76e1895b1823f880e79b2625f88f30840ecb39e5dd802e0db0fb5c3c205f8cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

File details

Details for the file pyresin-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b47718dee942286c3b47c0415bd8810581baaeb3da573c1394f8255d47d31cfd
MD5 f27eb3ef2aaf371ab1be72cc0412ae1c
BLAKE2b-256 e9369538742c91ec28b1f7d9749985ab2e9eba6fd5708321a239a76dd4918ec0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on simon-kohaut/Resin

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

Release history Release notifications | RSS feed

0.0.13

22 files

This release

0.0.12 This release

22 files

0.0.11

22 files

0.0.10

21 files

0.0.9

21 files

0.0.8

21 files

0.0.7

29 files

0.0.6

29 files

0.0.5

29 files

0.0.4

31 files

0.0.3

31 files

0.0.2

31 files

0.0.1

38 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page