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

feat: allow SignalInstances for evented dataclass fields to emit on field mutation (in addition to field change)

#379
Comparing
tlambert03:feat-375
(
3445bd7
) with
main
(
adaf6c9
)
CodSpeed Performance Gauge
0%
Improvements
0
Regressions
0
Untouched
67
New
0
Dropped
0
Ignored
0

Benchmarks

Passed

test_emit_time[method-50]
tests/test_bench.py::test_emit_time[method-50]
CodSpeed Performance Gauge
+1%
125 µs
123.5 µs
test_emit_time[method-34]
tests/test_bench.py::test_emit_time[method-34]
CodSpeed Performance Gauge
+1%
103.6 µs
102.5 µs
test_emit_time[partial_method-2]
tests/test_bench.py::test_emit_time[partial_method-2]
CodSpeed Performance Gauge
+1%
61.4 µs
61 µs
test_emit_time[setattr-34]
tests/test_bench.py::test_emit_time[setattr-34]
CodSpeed Performance Gauge
+1%
65.4 µs
65.1 µs
test_emit_time[method-18]
tests/test_bench.py::test_emit_time[method-18]
CodSpeed Performance Gauge
+1%
80.7 µs
80.2 µs
test_emit_time[real_func-34]
tests/test_bench.py::test_emit_time[real_func-34]
CodSpeed Performance Gauge
+1%
116.3 µs
115.7 µs
test_emit_time[setattr-2]
tests/test_bench.py::test_emit_time[setattr-2]
CodSpeed Performance Gauge
+1%
53.4 µs
53.1 µs
test_emit_time[real_func-2]
tests/test_bench.py::test_emit_time[real_func-2]
CodSpeed Performance Gauge
+1%
60.3 µs
60 µs
test_emit_time[print-18]
tests/test_bench.py::test_emit_time[print-18]
CodSpeed Performance Gauge
0%
171.9 µs
171 µs
test_emit_time[real_func-18]
tests/test_bench.py::test_emit_time[real_func-18]
CodSpeed Performance Gauge
0%
89.1 µs
88.7 µs
test_emit_time[method-2]
tests/test_bench.py::test_emit_time[method-2]
CodSpeed Performance Gauge
0%
58.8 µs
58.5 µs
test_dataclass_group_create[msgspec]
tests/test_bench.py::test_dataclass_group_create[msgspec]
CodSpeed Performance Gauge
0%
20.4 µs
20.3 µs
test_dataclass_group_create[dataclass]
tests/test_bench.py::test_dataclass_group_create[dataclass]
CodSpeed Performance Gauge
0%
13.1 µs
13 µs
test_emit_time[print-34]
tests/test_bench.py::test_emit_time[print-34]
CodSpeed Performance Gauge
0%
267.7 µs
266.6 µs
test_dataclass_setattr[attrs]
tests/test_bench.py::test_dataclass_setattr[attrs]
CodSpeed Performance Gauge
0%
65.3 µs
65 µs
test_emit_time[partial_method-34]
tests/test_bench.py::test_emit_time[partial_method-34]
CodSpeed Performance Gauge
0%
120.2 µs
119.8 µs
test_emit_time[lambda-34]
tests/test_bench.py::test_emit_time[lambda-34]
CodSpeed Performance Gauge
0%
88.9 µs
88.6 µs
test_emit_time[function-34]
tests/test_bench.py::test_emit_time[function-34]
CodSpeed Performance Gauge
0%
88.7 µs
88.4 µs
test_emit_time[partial_method-50]
tests/test_bench.py::test_emit_time[partial_method-50]
CodSpeed Performance Gauge
0%
148.8 µs
148.3 µs
test_emit_time[real_func-50]
tests/test_bench.py::test_emit_time[real_func-50]
CodSpeed Performance Gauge
0%
143.1 µs
142.7 µs
test_dataclass_group_create[attrs]
tests/test_bench.py::test_dataclass_group_create[attrs]
CodSpeed Performance Gauge
0%
20.4 µs
20.4 µs
test_evented_setattr
tests/test_bench.py::test_evented_setattr
CodSpeed Performance Gauge
0%
26.6 µs
26.5 µs
test_emit_time[setattr-18]
tests/test_bench.py::test_emit_time[setattr-18]
CodSpeed Performance Gauge
0%
59.2 µs
59.1 µs
test_emit_time[function-18]
tests/test_bench.py::test_emit_time[function-18]
CodSpeed Performance Gauge
0%
72.5 µs
72.4 µs
test_connect_time[setattr-check_types]
tests/test_bench.py::test_connect_time[setattr-check_types]
CodSpeed Performance Gauge
0%
64.1 µs
64 µs
test_emit_time[print-2]
tests/test_bench.py::test_emit_time[print-2]
CodSpeed Performance Gauge
0%
75.9 µs
75.8 µs
test_connect_time[setattr-]
tests/test_bench.py::test_connect_time[setattr-]
CodSpeed Performance Gauge
0%
64.1 µs
64 µs
test_emit_time[partial_method-18]
tests/test_bench.py::test_emit_time[partial_method-18]
CodSpeed Performance Gauge
0%
91.1 µs
90.9 µs
test_emit_time[setitem-2]
tests/test_bench.py::test_emit_time[setitem-2]
CodSpeed Performance Gauge
0%
54.8 µs
54.7 µs
test_emit_time[partial-2]
tests/test_bench.py::test_emit_time[partial-2]
CodSpeed Performance Gauge
0%
58.6 µs
58.5 µs
test_dataclass_setattr[dataclass]
tests/test_bench.py::test_dataclass_setattr[dataclass]
CodSpeed Performance Gauge
0%
54.9 µs
54.9 µs
test_connect_time[setitem-check_types]
tests/test_bench.py::test_connect_time[setitem-check_types]
CodSpeed Performance Gauge
0%
64.7 µs
64.6 µs
test_emit_time[partial-34]
tests/test_bench.py::test_emit_time[partial-34]
CodSpeed Performance Gauge
0%
105.9 µs
105.8 µs
test_connect_time[print-check_types]
tests/test_bench.py::test_connect_time[print-check_types]
CodSpeed Performance Gauge
0%
752.5 µs
752.4 µs
test_emit_fast
tests/test_bench.py::test_emit_fast
CodSpeed Performance Gauge
0%
21.2 µs
21.2 µs
test_emit_time[lambda-50]
tests/test_bench.py::test_emit_time[lambda-50]
CodSpeed Performance Gauge
0%
104.9 µs
105.1 µs
test_emit_time[lambda-18]
tests/test_bench.py::test_emit_time[lambda-18]
CodSpeed Performance Gauge
0%
72.4 µs
72.5 µs
test_emit_time[print-50]
tests/test_bench.py::test_emit_time[print-50]
CodSpeed Performance Gauge
0%
363.2 µs
363.8 µs
test_connect_time[print-]
tests/test_bench.py::test_connect_time[print-]
CodSpeed Performance Gauge
0%
751.3 µs
752.9 µs
test_emit_time[setitem-50]
tests/test_bench.py::test_emit_time[setitem-50]
CodSpeed Performance Gauge
0%
88.5 µs
88.7 µs
test_evented_creation
tests/test_bench.py::test_evented_creation
CodSpeed Performance Gauge
0%
1.7 ms
1.7 ms
test_dataclass_setattr[msgspec]
tests/test_bench.py::test_dataclass_setattr[msgspec]
CodSpeed Performance Gauge
0%
65.6 µs
65.7 µs
test_emit_time[partial-50]
tests/test_bench.py::test_emit_time[partial-50]
CodSpeed Performance Gauge
0%
128.3 µs
128.6 µs
test_emit_time[setitem-34]
tests/test_bench.py::test_emit_time[setitem-34]
CodSpeed Performance Gauge
0%
77.2 µs
77.4 µs
test_emit_time[lambda-2]
tests/test_bench.py::test_emit_time[lambda-2]
CodSpeed Performance Gauge
0%
56.3 µs
56.4 µs
test_emit_time[partial-18]
tests/test_bench.py::test_emit_time[partial-18]
CodSpeed Performance Gauge
0%
82.7 µs
82.9 µs
test_connect_time[setitem-]
tests/test_bench.py::test_connect_time[setitem-]
CodSpeed Performance Gauge
0%
64.5 µs
64.7 µs
test_emit_time[setattr-50]
tests/test_bench.py::test_emit_time[setattr-50]
CodSpeed Performance Gauge
0%
71.2 µs
71.4 µs
test_emit_time[setitem-18]
tests/test_bench.py::test_emit_time[setitem-18]
CodSpeed Performance Gauge
0%
66.6 µs
66.9 µs
test_connect_time[method-check_types]
tests/test_bench.py::test_connect_time[method-check_types]
CodSpeed Performance Gauge
0%
191.7 µs
192.7 µs
test_connect_time[partial-]
tests/test_bench.py::test_connect_time[partial-]
CodSpeed Performance Gauge
0%
227.6 µs
228.7 µs
test_connect_time[lambda-]
tests/test_bench.py::test_connect_time[lambda-]
CodSpeed Performance Gauge
-1%
145.8 µs
146.6 µs
test_create_signal
tests/test_bench.py::test_create_signal
CodSpeed Performance Gauge
-1%
63.4 µs
63.7 µs
test_dataclass_group_create[pydantic]
tests/test_bench.py::test_dataclass_group_create[pydantic]
CodSpeed Performance Gauge
-1%
22.4 µs
22.5 µs
test_dataclass_setattr[pydantic]
tests/test_bench.py::test_dataclass_setattr[pydantic]
CodSpeed Performance Gauge
-1%
115.1 µs
115.9 µs
test_connect_time[method-]
tests/test_bench.py::test_connect_time[method-]
CodSpeed Performance Gauge
-1%
184.5 µs
185.8 µs
test_connect_time[partial_method-]
tests/test_bench.py::test_connect_time[partial_method-]
CodSpeed Performance Gauge
-1%
261.5 µs
263.5 µs
test_emit_time[function-2]
tests/test_bench.py::test_emit_time[function-2]
CodSpeed Performance Gauge
-1%
56.2 µs
56.6 µs
test_connect_time[function-]
tests/test_bench.py::test_connect_time[function-]
CodSpeed Performance Gauge
-1%
146.6 µs
147.8 µs
test_connect_time[lambda-check_types]
tests/test_bench.py::test_connect_time[lambda-check_types]
CodSpeed Performance Gauge
-1%
149.8 µs
151 µs
test_connect_time[partial-check_types]
tests/test_bench.py::test_connect_time[partial-check_types]
CodSpeed Performance Gauge
-1%
238.1 µs
240 µs
test_connect_time[partial_method-check_types]
tests/test_bench.py::test_connect_time[partial_method-check_types]
CodSpeed Performance Gauge
-1%
269.4 µs
271.6 µs
test_connect_time[function-check_types]
tests/test_bench.py::test_connect_time[function-check_types]
CodSpeed Performance Gauge
-1%
153.5 µs
154.9 µs
test_emit_time[function-50]
tests/test_bench.py::test_emit_time[function-50]
CodSpeed Performance Gauge
-1%
104.6 µs
105.6 µs
test_connect_time[real_func-check_types]
tests/test_bench.py::test_connect_time[real_func-check_types]
CodSpeed Performance Gauge
-1%
133.5 µs
134.8 µs
test_connect_time[real_func-]
tests/test_bench.py::test_connect_time[real_func-]
CodSpeed Performance Gauge
-1%
130 µs
131.4 µs
test_create_signal_instance
tests/test_bench.py::test_create_signal_instance
CodSpeed Performance Gauge
-2%
35.5 µs
36.2 µs

Commits

Click on a commit to change the comparison range
Base
main
adaf6c9
0%
update test
3445bd7
25 days ago
by tlambert03
© 2025 CodSpeed Technology
Home Terms Privacy Docs