Avatar for the pyapp-kit user
pyapp-kit
psygnal
BlogDocsChangelog

feat: make Signal and SignalInstance Generic, support static type validation of signal connections

#304
Comparing
tlambert03:generic-signal
(
44c222b
) with
main
(
8bf2d82
)
CodSpeed Performance Gauge
-53%
Improvement
1
Regression
1
Untouched
65

Benchmarks

67 total
test_create_signal_instance
tests/test_bench.py
CodSpeed Performance Gauge
-53%
34.8 µs73.3 µs
test_create_signal
tests/test_bench.py
CodSpeed Performance Gauge
×2.3
62.8 µs27.4 µs
test_dataclass_setattr[attrs]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
65.5 µs64.6 µs
test_dataclass_group_create[dataclass]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
12.8 µs12.7 µs
test_dataclass_setattr[msgspec]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
65.8 µs65.3 µs
test_emit_time[real_func-50]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
142.8 µs141.9 µs
test_emit_time[method-2]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
59.3 µs59 µs
test_emit_time[partial_method-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
61.8 µs61.6 µs
test_emit_time[real_func-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
116.3 µs115.9 µs
test_emit_time[partial_method-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
147.7 µs147.3 µs
test_emit_time[setattr-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
53.7 µs53.5 µs
test_emit_time[method-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
102.5 µs102.2 µs
test_emit_time[partial_method-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
90.9 µs90.6 µs
test_emit_time[setattr-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
59.9 µs59.7 µs
test_emit_time[partial-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
59.2 µs59 µs
test_emit_time[function-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
104.8 µs104.6 µs
test_emit_time[function-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
72.8 µs72.6 µs
test_emit_time[partial-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
127.9 µs127.6 µs
test_emit_time[method-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
123.8 µs123.5 µs
test_emit_time[method-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
80.8 µs80.7 µs
test_emit_time[setitem-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
89 µs88.9 µs
test_emit_time[partial-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
82.7 µs82.6 µs
test_emit_fast
tests/test_bench.py
CodSpeed Performance Gauge
0%
20.9 µs20.9 µs
test_emit_time[lambda-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
88.6 µs88.6 µs
test_evented_setattr
tests/test_bench.py
CodSpeed Performance Gauge
0%
26.2 µs26.1 µs

Commits

Click on a commit to change the comparison range
Base
main
8bf2d82
-22.95%
install ruff
ff18b86
2 years ago
by tlambert03
-1.26%
skip test
4156847
2 years ago
by tlambert03
+0.76%
Add mypy to pip install command
330cfd1
2 years ago
by tlambert03
-33.41%
prebuild sig
66a86ce
2 years ago
by tlambert03
-0.12%
Merge branch 'main' into generic-signal
cdb2ec3
1 year ago
by tlambert03
+4.15%
Merge branch 'generic-signal' of https://github.com/tlambert03/psygnal into generic-signal
68d3169
8 months ago
by tlambert03
+0.12%
fix stub
c408d56
8 months ago
by tlambert03
+0.16%
Merge branch 'main' into generic-signal
44c222b
8 months ago
by tlambert03
© 2026 CodSpeed Technology
Home Terms Privacy Docs