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

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.3
File Size Uploaded Provenance Actions
signified-0.7.3.tar.gz 82.6 kB With provenance Details for signified-0.7.3.tar.gz

Built distributions (wheels)

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

Total release size: 3.4 MB

Release files / signified-0.7.3.tar.gz

Download URL signified-0.7.3.tar.gz
Size 82.6 kB
Tags Source
SHA-256 checksum
How to use checksums
70b663790b71b685dfff70cd81a4c0c377314d5bb60c759c4aac5dc329180c19
BLAKE2b-256 checksum
How to use checksums
054b3c6010a2096e2c7826448399ae639ebd331bcbdbfc73fcffd0089fc09475
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-win_amd64.whl
Size 279.8 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1cecc64d432fdaff49991a1d6e17b8c2925913f4f4ff4ec40f6b35b69be4d14c
BLAKE2b-256 checksum
How to use checksums
6176e1b007faa28730e38701d8bbc0b5a13a10616bce99f0779740c7c99d4e4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Size 162.2 kB
Tags CPython 3.12 PyEmscripten 2026.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
6fc24a073a31c9abe9fca2005ca7616128ce8c2cf51d6b45584a7c5771b5c626
BLAKE2b-256 checksum
How to use checksums
bb2e00fc78b79a89edf696dda4c8468cb9ba593cfe8e236a412f6e863bae74f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-musllinux_1_2_x86_64.whl
Size 639.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
0f1bb0bd666c9a608810760ebc8538d4e5c9c86905851ec84c7b8676e77a1c8b
BLAKE2b-256 checksum
How to use checksums
ff8be36bafb5e77a3e1ce3d32205940309bd700607f1fa11ec6bc45d153a83bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-musllinux_1_2_aarch64.whl
Size 606.1 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
8c30f57cbe180c7af40f4108fdb854661489398780d56154f7f337ccc167b40b
BLAKE2b-256 checksum
How to use checksums
9c2e211aad6ea03935c403d17ca145adeab5b08580e6e3b269b228d69d57ad42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

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

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 427.1 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
566150e937ca058dbc0170eebea26c94e97a127bbd04c8cc37e0ccb22d322e1e
BLAKE2b-256 checksum
How to use checksums
741dfe9946fae681d6d40b35f344a257eada96b2c54456e53628e2c9eba5b226
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-macosx_11_0_arm64.whl
Size 391.0 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9d40efef086a453f5d2622e5a0fda8fbcd363f472c53f18033f3285cd5374b42
BLAKE2b-256 checksum
How to use checksums
e748adf0341dfd0a3b52ab0c7734d5c358a3902c0be8f9ac0d17baa1f6d892e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

Download URL signified-0.7.3-cp312-abi3-macosx_10_12_x86_64.whl
Size 396.8 kB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9ad2c32a2a316103365f12721913c16acd486845d6168ef39dbc615f6c6e89c0
BLAKE2b-256 checksum
How to use checksums
f1ba7bb6bd1d1454f815f1af9fde08aeb4c5cb02b5d8d4ae5d9f991eff00ab44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

Security for signified 0.7.3

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.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for signified-0.7.3.tar.gz

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 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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