Skip to main content

Signified

PyPI Downloads PyPI - Version Tests Status CodSpeed


Documentation: https://dougmercer.github.io/signified

Source Code: https://github.com/dougmercer/signified


A fast, fully-typed Python library for reactive programming.

$ uv add signified

Why care?

signified is a reactive programming library built around four reactive data structures:

  • Signal stores a mutable value.
  • Computed calculates a read-only value.
  • Effect runs an action when the values it reads change.
  • Binding is a stable handle that lets you switch between reactive values without rebuilding calculations that use it.

This allows us to create a network of computation, where one value being modified can trigger other objects to update.

We can write more declarative code, like:

from signified import Signal

x = Signal(3)
x_squared = x ** 2  # currently equal to 9
x.value = 10  # x_squared.value is now 100

Here, x_squared is a Computed object whose value is always equal to x ** 2. Neat!

In the above example, we generated the Computed object on-the-fly using overloaded Python operators like **, but we could have also written it using the computed decorator,

from signified import computed

@computed
def power(x, n):
    return x**n

x_squared = power(x, 2)  # equivalent to the above

To make something happen when a value changes, we can use an effect:

from signified import effect

@effect
def show(n):
    print(n)

watcher = show(x_squared)  # prints 100
x.value = 4                # prints 16
watcher.dispose()

Effects run once right away, then again whenever something they read changes until they are explicitly disposed or the effect is garbage collected.

In the above example, x_squared is wired to x. To swap what feeds a calculation without rebuilding it, use a Binding instead of Signal:

from signified import Binding

y = Signal(5)
base = Binding(x)       # follows x, for now
cubed = power(base, 3)  # currently equal to 64

base.value = y  # cubed now follows y, and becomes 125
x.value = 10    # cubed ignores x now

A Signal can't do this. signal.value = y stores the y object itself, not its value.

Together, these data structures allow us to implement a wide variety of capabilities. In particular, I wrote this library to make my animation library keyed easier to maintain and more fun to work with.

Ready to learn more?

Check out the docs at https://dougmercer.github.io/signified, or try it in the Playground.

Metadata

Release files for signified 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for signified 0.7.1
File Size Uploaded
signified-0.7.1.tar.gz 70.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for signified 0.7.1
File
signified-0.7.1-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
signified-0.7.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl CPython 3.12 abi3 PyEmscripten 2026.0+ WebAssembly Details
signified-0.7.1-cp312-abi3-musllinux_1_2_x86_64.whl CPython 3.12 abi3 Linux musl 1.2+ x86-64 Details
signified-0.7.1-cp312-abi3-musllinux_1_2_aarch64.whl CPython 3.12 abi3 Linux musl 1.2+ ARM64 Details
signified-0.7.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
signified-0.7.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
signified-0.7.1-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
signified-0.7.1-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.1 MB

Release files / signified-0.7.1.tar.gz

Download URL signified-0.7.1.tar.gz
Size 70.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9b626dc30d01ca8034c4744cdb7b2c3e1bc1a3dd87df356cedcadfb77228dc6b
BLAKE2b-256 checksum
How to use checksums
ca7bf5360100978c384a063e84f67299f230cb956965574d027484cce067f071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-win_amd64.whl

Download URL signified-0.7.1-cp312-abi3-win_amd64.whl
Size 244.0 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
70ef0f692fccacfbea39c3de5d7a77fc82812fee1759c3ef3a217f455fcfd14e
BLAKE2b-256 checksum
How to use checksums
77c09f3d16c3000745f3716b7df27a186e65556f6c51f82931acd6950bae8019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl

Download URL signified-0.7.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Size 141.2 kB
Tags CPython 3.12 PyEmscripten 2026.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
adf79fe0954f2d786df3a3a9c3d6559696c35b1fc9ce9a6fc20c9b30c11c07ea
BLAKE2b-256 checksum
How to use checksums
33f4c1bff121276a660624aa78ef459bd3887da334d63be568be87601a114f62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-musllinux_1_2_x86_64.whl

Download URL signified-0.7.1-cp312-abi3-musllinux_1_2_x86_64.whl
Size 601.3 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
1fc7c70d97db7ee9eca41fdda9986d3e103aaed79691d8f95c9a4ac73773c5c4
BLAKE2b-256 checksum
How to use checksums
8e1a3996eb7b6308de5eb62b9ef492c80fa268c2545097ac4cd5eda1385d9e78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-musllinux_1_2_aarch64.whl

Download URL signified-0.7.1-cp312-abi3-musllinux_1_2_aarch64.whl
Size 571.3 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
b251980a3b13cc4366d112f8a2ffe3d323057f7a6f165c85cb2594b6ff26ce2d
BLAKE2b-256 checksum
How to use checksums
4639c95071da7f3b76e1d993abf670711b1b0bc67034a532d7ae0978b82efa13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL signified-0.7.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 395.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
2a679462c26c295cb30847478e6cf8d16a73296e1c0412f806228985ee4c02d2
BLAKE2b-256 checksum
How to use checksums
3c5488c8b53aa8c227c83e38d7644e36f9ce8a40e5e809bd769339c00733e5aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL signified-0.7.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 392.2 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
a4d48d9a0f075337e37a261a19e93f1d9e13e519214a2e32b72ccf54a86bc4c7
BLAKE2b-256 checksum
How to use checksums
d69a9f7013121a1a9b8f9ae0ca950f14f9ce1f70c4b69d7c2f67bb8fa776cfd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-macosx_11_0_arm64.whl

Download URL signified-0.7.1-cp312-abi3-macosx_11_0_arm64.whl
Size 354.9 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
76fbbf731b02a8c64bc9b2787dc0bfe85b3851c5716d9b8563de17b224743f9a
BLAKE2b-256 checksum
How to use checksums
617034e71d42cbae757fb5a6126947a3ead4cf81b36e638491d3b01e635b7e22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / signified-0.7.1-cp312-abi3-macosx_10_12_x86_64.whl

Download URL signified-0.7.1-cp312-abi3-macosx_10_12_x86_64.whl
Size 359.1 kB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
af0872aace9bfd1745dfbe071ae54530366ddf223b9ff41b8a2c9c38e416692c
BLAKE2b-256 checksum
How to use checksums
12ed115a3d4d9718371e67ef05d959b40c96bb0557c05e6441334a2e27208537
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.2

9 release files

This release

0.7.1 This release

9 release files

0.7.0

9 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.1

2 release 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