Avatar for the PyO3 user
PyO3
pyo3
BlogDocsChangelog

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

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

Benchmarks

127 total
bench_pyclass_create
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+15%
4.6 µs4 µs
format_simple
pyo3-benches/benches/bench_pystring_from_fmt.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-8%
331.9 ns361.1 ns
ordered_dunder_methods
pyo3-benches/benches/bench_comparisons.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-6%
2.5 µs2.7 µs
ordered_richcmp
pyo3-benches/benches/bench_comparisons.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-5%
2.6 µs2.7 µs
critical_section_creation2
pyo3-benches/benches/bench_critical_sections.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-3%
830 ns859.2 ns
extract_str_extract_fail
pyo3-benches/benches/bench_extract.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-3%
1.9 µs2 µs
vec_bytes_from_py_bytes_medium
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-3%
2 µs2.1 µs
clean_attach
pyo3-benches/benches/bench_attach.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-2%
2.5 µs2.6 µs
err_new_without_gil
pyo3-benches/benches/bench_err.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-2%
1.2 µs1.2 µs
extract_bigint_small
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-2%
2.6 µs2.7 µ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
first_time_init
pyo3-benches/benches/bench_pyclass.rs::benches::bench_first_time_init
CodSpeed Performance Gauge
-2%
41.4 µs42.2 µ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_into_pyobject
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
2.7 µs2.7 µs
list_nth
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
8.2 µs8.2 µs
list_nth_back
pyo3-benches/benches/bench_list.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
8.2 µs8.3 µ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
vec_bytes_from_py_bytearray_medium
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
2.9 µs2.9 µs
dirty_attach
pyo3-benches/benches/bench_attach.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
4.2 µs4.3 µs
extract_bigint_big_positive
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
3.6 µs3.6 µs
call_method_0
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
706.2 µs700.7 µs
extract_bigint_huge_positive
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
-1%
11.7 µs11.8 µs

Commits

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