Skip to main content

A reactive, probabilistic logic programming language using Reactive Circuits.

Project description

Resin — Reactive Signal Inference

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}
}

Project details


Download files

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

Source Distribution

pyresin-0.0.7.tar.gz (111.7 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.7-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.7-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

pyresin-0.0.7-cp314-cp314-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14Windows x86-64

pyresin-0.0.7-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.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ i686

pyresin-0.0.7-cp314-cp314-macosx_15_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyresin-0.0.7-cp314-cp314-macosx_14_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.14macOS 14.0+ x86-64

pyresin-0.0.7-cp313-cp313-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.13Windows x86-64

pyresin-0.0.7-cp313-cp313-win32.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86

pyresin-0.0.7-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.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

pyresin-0.0.7-cp313-cp313-macosx_15_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyresin-0.0.7-cp313-cp313-macosx_14_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

pyresin-0.0.7-cp312-cp312-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12Windows x86-64

pyresin-0.0.7-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.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

pyresin-0.0.7-cp312-cp312-macosx_15_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyresin-0.0.7-cp312-cp312-macosx_14_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

pyresin-0.0.7-cp311-cp311-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.11Windows x86-64

pyresin-0.0.7-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.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

pyresin-0.0.7-cp311-cp311-macosx_15_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyresin-0.0.7-cp311-cp311-macosx_14_0_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

pyresin-0.0.7-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10Windows x86-64

pyresin-0.0.7-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.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

pyresin-0.0.7-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

pyresin-0.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: pyresin-0.0.7.tar.gz
  • Upload date:
  • Size: 111.7 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.7.tar.gz
Algorithm Hash digest
SHA256 8f3c2fe87a644b45310f28d741f39636bdc13a4bdfa97141c7c47ff3a7d42e4e
MD5 676bc1ead2a3f7366cc2e109db0e343a
BLAKE2b-256 d5c889bdb201cff19eeb992d9a8600145952eefc962f2c1c0ea1e88783abe7dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7.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.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ceeedce9a07154550e29252b56d002716a4828dc540533bacc181af955d2dbf4
MD5 3974e3adf694928de078a600637d952c
BLAKE2b-256 ae181f538cdf8d96be03972d91b20b48f97887666e78f2817249e794e1304251

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 625c4682b71f8452d1fccb1bb1773d7e3590b3e35d3e933fecc49060581f1688
MD5 51f5ef642b2ca47d6ee13f96efc7a8fd
BLAKE2b-256 c5bca8a5a4e530d16bd4365516f2b0e3c7f0f1d928a8633192b5045403d340ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.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.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.3 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.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f034abd0a9839b52a6baa2079237da7b488719992843f3fbc1ff3681e12d2986
MD5 60fe1cd35345c3017d470b926211f725
BLAKE2b-256 8c04cc591679703d50bf662063a5b8b354c37271f97246285b4a97e97bd37fa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c0ffc1d2b39edaf86f63f90ea370df292068931ba93c3191960d1790ba1628b
MD5 4932c5cb586ab9b20f331cdc323bdc7b
BLAKE2b-256 90815f0cbb1e48a0627c1c56eb83055c098c14996193feadf8c14ca8a4d5208f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8cc833c990129a5641867ec3652d1ea31d1c52e1d62e222858182593e4770b9f
MD5 fe79ab60f8bb2fb4d3f100d0257e38b7
BLAKE2b-256 f008a4b37edbc38cdc0f3536cce5548e2e884dc8a76d146dddb61a7b21cd0de6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.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.7-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c3a1e5f984515a8f05a4eb527c3da5c610e67264e22ed3d8fbfd0b9ac6250729
MD5 f1bcfcb3e2f3b332423a2b66abce84ef
BLAKE2b-256 d788962973ac5dcde4d636cbd39c9180cf952cfefcb715cabe14690f0144fc8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp314-cp314-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 c9b4671be6045dbe9833cb383bbf61f0b360964da21de18b251a51e769f775e3
MD5 d3d4dbf0864a90b5496747ceb0db72e7
BLAKE2b-256 0b7eadabe00da8dd492bc78f788214d4d7c4404e6bce29fbfac11ed251fb31d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.3 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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 345dbaea84b120248ecc6f322ee8ea3e69465a6188ccf08a83cadb814f6f8218
MD5 cca4e8a247bf4aa7976f8e7bc37829a2
BLAKE2b-256 1a0af37c0dbded9d3332173bdf1f1f4786f1d8a16b04f8eca9d0bb1b3d646e8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp313-cp313-win32.whl.

File metadata

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

File hashes

Hashes for pyresin-0.0.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 9a5b587b6df8f898328364cd4c380fb8d034f54c3633fe79f47dd6c2b582366a
MD5 efff2138b61b2ebbdb288233774a3a46
BLAKE2b-256 20c3cc2574e62e2507f8c4123c555588381ae5b86f24a7d0ca38d3124746bcf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp313-cp313-win32.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.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d37912acbe8376895a8ccbe82ddc6636ad987a7b52309d782d0b7ec9945e061d
MD5 1cd9caa24349be7649997c420bba6da2
BLAKE2b-256 67209dc14e628d9b0b52733c16f19217ffb1d81cca19715a5ab53f1ae142e66b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 620aff5a4dd54e6b721fc75f0810af0abadd523d562a22f2cbf72470667d68d2
MD5 6d856a5658d55ea21d0f6883b17220e6
BLAKE2b-256 5c75c0a9ff36b652841c0132ce91e37507052d3360a8d7681ef5eb9135779d24

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.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.7-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5b53457906924ab07f90a8da55a9dd003d92a00c56b0b644ecd7a1bed893d05e
MD5 b3da88f64b7b61a3dc20a97b7bc8995f
BLAKE2b-256 fa609e1b7d603a1b8654b79f0b7ed085807f80611b78cd183934b35b6e1fe328

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 779d706a42230c70a22f94b01f9432d162380d45b852bd727fc6a5d92392ef1f
MD5 1c1097c92729c914a34aae8c53de0a43
BLAKE2b-256 0c577cf4b799cada3ced3bafcbfcd601123aef54794086451ac3e26b20ed5917

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.3 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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b1aa65181210d7f4f21ef1612bf8552b1aa65615c03cb4f5d421c28b5ff3f88d
MD5 ddc5e0d053c331a6d619f8900ca65a34
BLAKE2b-256 5eff5b45188f4809aa83fc0696735f23a0a472e37844d2cf64d5275ae13271b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a56965d743dbbdb9ac53ac7bffe421133f1cc7333f0d204087d8ebdeb58a2a99
MD5 fb4f711388fdae3b3c1f78aa5f15aa77
BLAKE2b-256 8c961fde2a6b2da886110b584b8ca0358fa0e342da92a14e8b0b724dd7813a83

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 43175a09815c594af09fc2d71ff4113e5228ef854d9e3f7d8b0fd6eb2af99e74
MD5 6c15ede64eb660bb2a0cc230a608e58c
BLAKE2b-256 070c10088d11185765a23c34c07ec98a832f6d4097b7789ba4c4dc64a6d7bfe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.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.7-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 19d5f1bcc53a805ca16d59f50b5685338f00d31d623b988c84deffe81edae0a5
MD5 0d2fd3132b5fd3bc80a506eca6bdf79e
BLAKE2b-256 0845b854a6239d39413343b0f40ff3378d26bedf8f952dca094a71921d60288f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 6abac6d8296e6f96f504056f90d67dc8b02a92247e4de1583bbd1d9b8491bd9c
MD5 4955f2d16458025a6cd0571dabec5cc1
BLAKE2b-256 f2f34289bbccc82026bb1af18ee27dc7ab50d2a7394585672a0453c7e19673d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.3 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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 65523341a6a1b49c83b293bb4c6090f84b3fae038f2777691104e04dcae832af
MD5 2f02babfdb9ba656a7e296fee7a6a679
BLAKE2b-256 9284272e67abe54b9ef0fa2f7492bbabfd0795800e963f254dc93f3ffc2f867a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88086ed45614258251e67ba42edca433f41e96f75f6ae09e7eb68414b87638e0
MD5 b088a292dcb480af4ad5092d8b3ad089
BLAKE2b-256 3aadb282987fc0c4ddd922e5f72bca9167bd735df4b49c65f5c7ef31e9ce7c6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6f269ea2d1010bf7d1e64b72cd1c508f1351528c3f6d8cba43e46e5ac006dba3
MD5 b1af31590ddf4bd7ecdbd8c42bf1209d
BLAKE2b-256 60735d2deb64e857e7fd8b8ece7c1c944b87eb7d2e64a7113e4833c3f4a12bba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.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.7-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0e04946ed2cbef2af1b1c54329915a6818cedca1528d490e3cee20ddea13fbd7
MD5 7d1a53a0d83319799af7b8ce59f55231
BLAKE2b-256 afc63f8af74edda51e41595c79025068e5ed5e1c3a27be18ae7a85d38419e95d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 85d134dec90db617a0c6fba42b4ab9a8d5c34dccb89cd32e3842d9acf3a62f24
MD5 bcdb5f9d5c037bcfb283b186f070a765
BLAKE2b-256 8f197e57a7a7f7d694899baf0f35499439dadc2d5533c654aebc77068c0aa756

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyresin-0.0.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.3 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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e1baca3cd313b52ba9f2dca3ad65452bab1d65a7f473c05fa7685617579e40a4
MD5 e0f435f721241bfda055abfca71f6138
BLAKE2b-256 1014ff2564ca66f1b2a2bf39f7d07a8630ddcf7fa544faacc4836f3e7594f926

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3309848168740ca7657c63dcbdb04255dc35cdef7227586de424085e426881aa
MD5 38342602c2973982af56e76368b0e41d
BLAKE2b-256 654f838dcbbdfb3035cb6bd54d360d6db8a924d0e6a6010878c38b5e6af17f24

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fba75a8ab2026def29ffab6bd430fc068748765df999f05622d5e37f953f2654
MD5 0a98355238a6ad249eaabc3e687a75ce
BLAKE2b-256 6511993cb0f0d81cc3c042c6afaef6e4bc5664e1dc6f91074a5835a103a0539d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.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.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eca5e5d1c6a6767d9f9fdc000b9d2007b6632c76d402156900787637e28932e7
MD5 7d2955c64209eccf360d52f6068366c7
BLAKE2b-256 19facebe54026123a78c802d2e8f5c6d1764164ca4b6c385b059b502e9c22196

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-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.

File details

Details for the file pyresin-0.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyresin-0.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cd7b435070835d7a5797c94a9dcbeb034b8d141f349e13ef57afccd4e47a7eec
MD5 6406b27fdce0cfd2a74c9b4bfa4e7ebc
BLAKE2b-256 03f71b7d1efbe77bf615c58a56de02c848cfd096240ed66855a37644a3270c76

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyresin-0.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.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.

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