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

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.0
File Size Uploaded
signified-0.7.0.tar.gz 60.0 kB Details

Built distributions (wheels)

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

Total release size: 3.0 MB

Release files / signified-0.7.0.tar.gz

Download URL signified-0.7.0.tar.gz
Size 60.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2e43dd1eba641adb4b4951e4c1230f214c1d07cf34257f4f8c2d1786e5962111
BLAKE2b-256 checksum
How to use checksums
3d52e616e144cff5130c9b91b598f28dfb0b64aa51a2e5e6dc57352b84d1cf04
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-win_amd64.whl
Size 229.4 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
073cbbd241fbff5f4334a7a847dd63bc8f538ebe6413d214e1f894898212957a
BLAKE2b-256 checksum
How to use checksums
9c5b2cb89c0a7ae0e8fc9746ac1b390ce434be740d9dd38514b94702a2f639dd
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Size 133.4 kB
Tags CPython 3.12 PyEmscripten 2026.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
9a29748eed1d5777540c4b2c53a605de77cf23d3bcf6e37f76833adca6cb37c0
BLAKE2b-256 checksum
How to use checksums
66b176c2881db4ef99949dbb6edd0a70afb333ed6301881623fb21ba12024b74
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-musllinux_1_2_x86_64.whl
Size 587.2 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
4a9b0e3516a72fa75fd4812d2c33f30a2bf3bfb4ff35103bb9d2d6ff2aeb69b9
BLAKE2b-256 checksum
How to use checksums
938c306bc9ab9ddb7f9f0b173406f95ff006fb864f85b96877685a5234312f44
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-musllinux_1_2_aarch64.whl
Size 557.1 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
4b881f99ff468fd96ea4d69344a84781f3d4c0c27d522e83af6031d3ab13649a
BLAKE2b-256 checksum
How to use checksums
91998eb5fbf035c1a9cbb8124fa7513b765085b1a62a83fe435248a7a2d4c82c
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 380.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
390a23383943b9178064e3a91a88eff7cc0a8290f71574fd9e163eab370fa07f
BLAKE2b-256 checksum
How to use checksums
c9173b50bf5604fb0942ced6e61bf26742f98893b6570accd136b12ac1666ef2
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 377.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
4ce189353c3b789c5b118fa7c2d408cb3734f8446087c594daf41904e55d95b2
BLAKE2b-256 checksum
How to use checksums
0bbf878d27105644fad056117e3cfbcb41d78898234535f8c7e95f76291bdbc4
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-macosx_11_0_arm64.whl
Size 339.2 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e8f20f5d828194b74431ed4e998495b9ef5a9c294dcdc6c3f0ac6dbf481a304e
BLAKE2b-256 checksum
How to use checksums
8230fd356e21a8c7b5d4cefea6e3f503e7bc81f189aa86fb8d532cf4d7516bc9
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 11, 2026.

Transparency log

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

Download URL signified-0.7.0-cp312-abi3-macosx_10_12_x86_64.whl
Size 343.8 kB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1f29a22c89248c066a76bb09e0476b8b653f8412a10f68785606cffb818e2445
BLAKE2b-256 checksum
How to use checksums
f5513add81e3861bfd6b4941f3c3e412376012570a7ea14b0f5fa8342081f257
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.2

9 release files

0.7.1

9 release files

This release

0.7.0 This release

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