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_evented_creation
tests/test_bench.py
CodSpeed Performance Gauge
-6%
1.7 ms1.8 ms
test_dataclass_setattr[dataclass]
tests/test_bench.py
CodSpeed Performance Gauge
-3%
54.5 µs55.9 µs
test_dataclass_group_create[pydantic]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
22.1 µs22.4 µs
test_dataclass_setattr[attrs]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
65.5 µs64.6 µs
test_dataclass_setattr[pydantic]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
114.4 µs115.4 µs
test_emit_time[print-2]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
75.9 µs76.5 µs
test_dataclass_group_create[dataclass]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
12.8 µs12.7 µs
test_emit_time[function-2]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
56.7 µs57.1 µ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_connect_time[setitem-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
63.7 µs64.1 µs
test_emit_time[lambda-18]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
72.6 µs73 µs
test_connect_time[print-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
731.3 µs735 µs
test_emit_time[method-2]
tests/test_bench.py
CodSpeed Performance Gauge
+1%
59.3 µs59 µs
test_connect_time[partial_method-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
245.5 µs246.6 µs
test_connect_time[setattr-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
63.2 µs63.5 µs
test_connect_time[partial_method-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
253.6 µs254.7 µs
test_connect_time[partial-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
226.2 µs227.2 µs
test_connect_time[setattr-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
63.1 µs63.4 µs
test_connect_time[print-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
732 µs735.2 µ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_connect_time[method-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
175.9 µs176.5 µ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
2 years ago
by tlambert03
+4.15%
Merge branch 'generic-signal' of https://github.com/tlambert03/psygnal into generic-signal
68d3169
1 year ago
by tlambert03
+0.12%
fix stub
c408d56
1 year ago
by tlambert03
+0.16%
Merge branch 'main' into generic-signal
44c222b
1 year ago
by tlambert03
© 2026 CodSpeed Technology
Home Terms Privacy Docs