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%
Improvements
1
Regressions
1
Untouched
65

Benchmarks

Failed

test_create_signal_instance
tests/test_bench.py
Regression
CodSpeed Performance Gauge
-53%
34.8 µs73.3 µs

Improved

test_create_signal
tests/test_bench.py
CodSpeed Performance Gauge
×2.3
62.8 µs27.4 µs

Passed

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
test_emit_time[partial-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
105.6 µs105.5 µs
test_emit_time[real_func-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
89 µs89 µs
test_emit_time[lambda-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
56.7 µs56.7 µs
test_emit_time[setitem-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
67.2 µs67.2 µs
test_dataclass_group_create[msgspec]
tests/test_bench.py
CodSpeed Performance Gauge
0%
20 µs20 µs
test_emit_time[partial_method-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
119.7 µs119.7 µs
test_emit_time[setitem-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
77.8 µs77.8 µs
test_emit_time[real_func-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
60.4 µs60.4 µs
test_emit_time[function-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
88.5 µs88.6 µs
test_emit_time[print-18]
tests/test_bench.py
CodSpeed Performance Gauge
0%
170.4 µs170.5 µs
test_emit_time[print-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
266 µs266.2 µs
test_connect_time[setitem-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
63.7 µs63.8 µs
test_connect_time[function-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
142.7 µs142.9 µs
test_connect_time[real_func-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
119.2 µs119.4 µs
test_dataclass_group_create[attrs]
tests/test_bench.py
CodSpeed Performance Gauge
0%
20 µs20 µs
test_connect_time[partial-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
215.1 µs215.5 µs
test_emit_time[setattr-34]
tests/test_bench.py
CodSpeed Performance Gauge
0%
65.6 µs65.7 µs
test_connect_time[function-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
135.8 µs136.1 µs
test_emit_time[setattr-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
71.6 µs71.8 µs
test_emit_time[lambda-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
104.6 µs104.8 µs
test_connect_time[method-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
169.3 µs169.7 µs
test_connect_time[lambda-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
134.9 µs135.2 µs
test_emit_time[print-50]
tests/test_bench.py
CodSpeed Performance Gauge
0%
359.9 µs360.9 µs
test_connect_time[real_func-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
122.6 µs123 µs
test_connect_time[lambda-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
139.1 µs139.5 µs
test_emit_time[setitem-2]
tests/test_bench.py
CodSpeed Performance Gauge
0%
55.1 µs55.3 µs
test_connect_time[method-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
175.9 µs176.5 µs
test_connect_time[print-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
732 µs735.2 µs
test_connect_time[setattr-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
63.1 µs63.4 µs
test_connect_time[partial-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
226.2 µs227.2 µs
test_connect_time[partial_method-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
0%
253.6 µs254.7 µs
test_connect_time[setattr-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
63.2 µs63.5 µs
test_connect_time[partial_method-]
tests/test_bench.py
CodSpeed Performance Gauge
0%
245.5 µs246.6 µs
test_connect_time[print-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
731.3 µs735 µs
test_emit_time[lambda-18]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
72.6 µs73 µs
test_connect_time[setitem-check_types]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
63.7 µs64.1 µs
test_emit_time[function-2]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
56.7 µs57.1 µs
test_emit_time[print-2]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
75.9 µs76.5 µs
test_dataclass_setattr[pydantic]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
114.4 µs115.4 µs
test_dataclass_group_create[pydantic]
tests/test_bench.py
CodSpeed Performance Gauge
-1%
22.1 µs22.4 µs
test_dataclass_setattr[dataclass]
tests/test_bench.py
CodSpeed Performance Gauge
-3%
54.5 µs55.9 µs
test_evented_creation
tests/test_bench.py
CodSpeed Performance Gauge
-6%
1.7 ms1.8 ms

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
11 months ago
by tlambert03
+4.15%
Merge branch 'generic-signal' of https://github.com/tlambert03/psygnal into generic-signal
68d3169
4 months ago
by tlambert03
+0.12%
fix stub
c408d56
4 months ago
by tlambert03
+0.16%
Merge branch 'main' into generic-signal
44c222b
3 months ago
by tlambert03
© 2025 CodSpeed Technology
Home Terms Privacy Docs