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

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.2
File Size Uploaded
signified-0.7.2.tar.gz 76.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for signified 0.7.2
File
signified-0.7.2-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
signified-0.7.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl CPython 3.12 abi3 PyEmscripten 2026.0+ WebAssembly Details
signified-0.7.2-cp312-abi3-musllinux_1_2_x86_64.whl CPython 3.12 abi3 Linux musl 1.2+ x86-64 Details
signified-0.7.2-cp312-abi3-musllinux_1_2_aarch64.whl CPython 3.12 abi3 Linux musl 1.2+ ARM64 Details
signified-0.7.2-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.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
signified-0.7.2-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
signified-0.7.2-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.3 MB

Release files / signified-0.7.2.tar.gz

Download URL signified-0.7.2.tar.gz
Size 76.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ba1585b3116a61578faf8df0b22fa4d9fe0795866da37c9456b7a46e0d055edf
BLAKE2b-256 checksum
How to use checksums
9ce1c75e9392d1f88d9f19b0f3acafa89c8a45947b6b56147fc7c525789d56a7
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-win_amd64.whl
Size 262.5 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f6eef7004c02f504a164811df3c4e9b74845d776daeceffca9a417c62a1b699b
BLAKE2b-256 checksum
How to use checksums
c53171cdd66104ea17f297a6f457ed405a7893d9e91228520cd4b88a35db1214
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Size 151.1 kB
Tags CPython 3.12 PyEmscripten 2026.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
d6365eb6a58b365085efcb28986687f4957dbf09dc2fc79ab9b5499a59e6f328
BLAKE2b-256 checksum
How to use checksums
9c02dd0abd4cf8009cf1ff7efd1a173335f3bab922004c9e4ca4527ef4a70d27
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-musllinux_1_2_x86_64.whl
Size 620.9 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
68cd77b3aae959c17a7ada93b48ab324384c1dd5a643370d58c8ec07a5b1b048
BLAKE2b-256 checksum
How to use checksums
86e481c11d76218f7ae73c05ff94b0369b2bd9e223f880a0cd153e1358eb8824
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-musllinux_1_2_aarch64.whl
Size 590.2 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
3c390b70b8277a364a0735ae80e2ea5c4c8fe5f0b42edb8e9a1c856904121e94
BLAKE2b-256 checksum
How to use checksums
0636f12692990ecf62b6d6317d89fb9d2d06455ca473b98e5873b8e195b7d99f
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 413.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
8003b78bbddcb6fdee52da05c128ca5a4fd9193af8748aa6d72894b0351b69eb
BLAKE2b-256 checksum
How to use checksums
8231b6e62ab6b2eabda2d56f6bf9265d87c53dbf8cab4757a5c648838a84d862
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 411.5 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
08d19b57b4e46132ca22bd1b4238814ab8d0d05367b173349f3e944b3a2ea61d
BLAKE2b-256 checksum
How to use checksums
9ba3ee98391ff89bb2f03af64e2188822cf4a89f550dd0c3eed7e57607efee11
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-macosx_11_0_arm64.whl
Size 374.4 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0b3a7ecda53b87a6755a1b3bee0d95b64df5a76baea0b99773444f81882334e
BLAKE2b-256 checksum
How to use checksums
06049a4a2b5184d210505b9b2b2fab8eebc9df67e738bfc63bdf3a4521e0d70e
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 16, 2026.

Transparency log

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

Download URL signified-0.7.2-cp312-abi3-macosx_10_12_x86_64.whl
Size 378.3 kB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e7ddbb1935dbb394926eb5066a2a687233887eb76872b8ea26ec6b33a52c6f67
BLAKE2b-256 checksum
How to use checksums
d1f7099002037d80b0a1ffac28c30f60822cef690cb2251821549b3fe6280afa
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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.2 This release

9 release files

0.7.1

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