Avatar for the PyO3 user
PyO3
pyo3
BlogDocsChangelog

add `PyObject_HasAttrWithError` & use it in `PyAnyMethods::hasattr`

#5944
Comparing
bschoenmaeckers:hasattr
(
93314b5
) with
main
(
8a00673
)
CodSpeed Performance Gauge
+15%
Improvement
1
Untouched
104
Ignored
21
Skipped
1

Benchmarks

127 total
bench_pyclass_create
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+15%
4.6 µs4 µs
bytes_new_medium
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
1.6 µs1.6 µs
byte_slice_into_pyobject_medium
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
1.7 µs1.6 µs
bench_call
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+2%
5.8 µs5.7 µs
bench_str
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+1%
4.3 µs4.2 µs
tuple_nth
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
5.6 µs5.5 µs
tuple_nth_back
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
5.6 µs5.6 µs
call_method_0
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
706.2 µs700.7 µs
test_proto_call_py
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
+1%
15.4 µs15.3 µs
test_simple_args_rs
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
0%
18.7 µs18.6 µs
format_complex
pyo3-benches/benches/bench_pystring_from_fmt.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
6.9 µs6.9 µs
test_empty_class_init_py
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
14.3 µs14.3 µs
not_a_list_via_extract_enum
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
19.1 µs19 µs
decimal_via_extract
pyo3-benches/benches/bench_decimal.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
13.5 µs13.5 µs
test_class_attribute
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
16.2 µs16.2 µs
test_static_method
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
17.7 µs17.7 µs
call_method_one_arg
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
389.6 µs389.6 µs
call
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
598.3 µs598.2 µs
bytes_new_large
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
176.5 µs176.4 µs
byte_slice_into_pyobject_large
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
176.5 µs176.5 µs
call_method_1
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
414.8 µs414.7 µs
extract_hashset
pyo3-benches/benches/bench_set.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
23.9 ms23.9 ms
tuple_get_borrowed_item
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
3.7 ms3.7 ms
tuple_new
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
4.4 ms4.4 ms
tuple_to_list
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms

Commits

Click on a commit to change the comparison range
Base
main
8a00673
-0.19%
add `PyObject_HasAttrWithError` & use it in `PyAnyMethods::hasattr`
463442f
29 days ago
by bschoenmaeckers
-0.23%
Remove comment
c484a75
29 days ago
by bschoenmaeckers
+15.9%
Add back `inner` function
93314b5
19 hours ago
by bschoenmaeckers
© 2026 CodSpeed Technology
Home Terms Privacy Docs