Reactives - a small, simple, and fast framework for reactive programming
Project description
Reactives
A small, simple, and fast framework for reactive programming
Before anything else make sure you read and agree with the license.
Installation
Available through pip
:
pip install jfaleiro.reactives
or poetry
:
poetry add jfaleiro.reactives
Use
Reactives allow for three types of bindings: pre
, post
, and notify
.
-
pre
bindings - a chain of calls executed synchronously and in sequence before an update on state is performed. ForR
reactives, the value of the last execution on pre-binding chain is kept. Special shortcuts:guard
- used to establish boolean conditions for a change in state to fail.
-
post
bindings - a chain of calls executed synchronously and in sequence after an update on state is performed. For synchronous notification purposes. Exceptions and updates are ignored. -
notify
bindings - a chain of calls executed asynchronously and after the lastpost
call is performed. For asynchronous notification purposes. Exceptions and updates are ignored
with Context() as x:
a = x.new(R, 1)
b = x.new(R, 2)
c = a + b
assert a.value == 1
assert b.value == 2
assert c.value == 3
a.pre(guard(lambda x: x > 0))
c.pre(guard(lambda x: x >= 3))
a.value = 4
assert a.value == 4
assert b.value == 2
assert c.value == 6
To Know More
Look for plenty of examples of use under ./tests
as well as Jupyter notebooks on ./samples
for interactive use.
Enjoy.
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 Distributions
Built Distribution
Hashes for jfaleiro.reactives-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c0450639b33cf3539e47f7e6087e62c0daec2cb0b9b261f123cb805b5c4e8e9 |
|
MD5 | cbaf25d4d7c5c1046953a8a018cdfec9 |
|
BLAKE2b-256 | 85b6e676ebe0961a26477c241d4aa7b542ef38cc20b31153f46063374c463145 |