Repository navigation
docs: say aiogram error handlers get their own child container - #718
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: cfffa07 | Previous: 996cf18 | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
3329381.5793583505 iter/sec (stddev: 1.64584263505979e-8) |
3398971.0906722094 iter/sec (stddev: 1.1594998695345776e-8) |
1.02 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
3321298.056278265 iter/sec (stddev: 1.1272459239854552e-8) |
3312988.93090924 iter/sec (stddev: 1.1487165001759097e-8) |
1.00 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
15656.540309336335 iter/sec (stddev: 0.0000547041942115141) |
15157.436795676023 iter/sec (stddev: 0.0000552800367174803) |
0.97 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
11853.268981483692 iter/sec (stddev: 0.00016107459169232394) |
12119.638347945027 iter/sec (stddev: 0.00014695476835884408) |
1.02 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
467.0600789723652 iter/sec (stddev: 0.000212938543869971) |
480.4117649154862 iter/sec (stddev: 0.00005657601867778982) |
1.03 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
464.90667892065557 iter/sec (stddev: 0.00005830185514469571) |
465.5165380259087 iter/sec (stddev: 0.000043030175168246065) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
436.18065820719204 iter/sec (stddev: 0.0000744726070614984) |
444.096702549534 iter/sec (stddev: 0.00004985484604278839) |
1.02 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
12293.812278361645 iter/sec (stddev: 0.000019142205687292127) |
13369.973001569506 iter/sec (stddev: 0.000008366720880480949) |
1.09 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
5833.030096792698 iter/sec (stddev: 0.000028456556209786914) |
6267.410016324864 iter/sec (stddev: 0.000022659937500857765) |
1.07 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3183.811380404693 iter/sec (stddev: 0.00005655232189677956) |
3322.707499348036 iter/sec (stddev: 0.00004048375177055468) |
1.04 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
8538.231318173543 iter/sec (stddev: 0.00001983194703934989) |
9994.712796954176 iter/sec (stddev: 0.000009678071802466218) |
1.17 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
3947.1200381298736 iter/sec (stddev: 0.00005745227420950732) |
4167.936005794685 iter/sec (stddev: 0.00006157674202713174) |
1.06 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1937.1530407568212 iter/sec (stddev: 0.00005660467961398061) |
1993.2355233848903 iter/sec (stddev: 0.000044461228970224894) |
1.03 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
37001.71410389886 iter/sec (stddev: 0.000010815012086081461) |
39645.974660995125 iter/sec (stddev: 0.000007233125204690835) |
1.07 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
11789.022474877607 iter/sec (stddev: 0.000023463283644462768) |
13691.70144831524 iter/sec (stddev: 0.000011074355202792832) |
1.16 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5342.481561319573 iter/sec (stddev: 0.00004027277591833974) |
5752.9347517906735 iter/sec (stddev: 0.000030141119359696113) |
1.08 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1559380.5080209041 iter/sec (stddev: 3.935659853013454e-8) |
1601065.348880601 iter/sec (stddev: 3.351404397134636e-8) |
1.03 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1688064.5019594573 iter/sec (stddev: 2.461813256712764e-8) |
1698991.10510454 iter/sec (stddev: 1.7713780602138135e-8) |
1.01 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
3161.4530283396834 iter/sec (stddev: 0.000010670101185862416) |
3154.7025979758973 iter/sec (stddev: 0.00002583232235798169) |
1.00 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
57291.8709021971 iter/sec (stddev: 0.00003093609786155103) |
58215.67659786307 iter/sec (stddev: 0.0000020595849361970636) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
387472.9379216903 iter/sec (stddev: 5.038214757052495e-7) |
411538.680366211 iter/sec (stddev: 8.352210387897596e-8) |
1.06 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
65561.37922383445 iter/sec (stddev: 0.0000022846298734190204) |
65542.96247024715 iter/sec (stddev: 0.0000016247394412795976) |
1.00 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
560.9801601936923 iter/sec (stddev: 0.0011426479906489443) |
592.6892893316399 iter/sec (stddev: 0.0009227163026292208) |
1.06 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2065967.3711496037 iter/sec (stddev: 6.377302530311472e-8) |
2193069.024660947 iter/sec (stddev: 3.110757504734808e-8) |
1.06 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
3632586.4069706807 iter/sec (stddev: 1.119073219065889e-8) |
3507523.86667632 iter/sec (stddev: 8.278846667384555e-9) |
0.97 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
795496.4400934525 iter/sec (stddev: 5.2205146786532795e-8) |
786886.7216373547 iter/sec (stddev: 4.928512472057435e-8) |
0.99 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
471293.4011144287 iter/sec (stddev: 4.158505710317877e-7) |
474191.17330059607 iter/sec (stddev: 4.1593229872813204e-7) |
1.01 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
1998754.2763985903 iter/sec (stddev: 3.889583283386849e-8) |
1958485.4933757903 iter/sec (stddev: 2.7805444908867615e-8) |
0.98 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1216476.4558753057 iter/sec (stddev: 2.3194552261496462e-7) |
1423463.1784436998 iter/sec (stddev: 1.4739503375312504e-7) |
1.17 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
794608.1072257564 iter/sec (stddev: 1.3561577912162677e-7) |
833961.9669145662 iter/sec (stddev: 4.029536057763587e-8) |
1.05 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3469986.129421735 iter/sec (stddev: 3.423754602737728e-8) |
3648776.1092819464 iter/sec (stddev: 1.2293149854723347e-8) |
1.05 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
35149.16291268378 iter/sec (stddev: 0.00002026658492819698) |
34663.69874541447 iter/sec (stddev: 0.000018809888676094653) |
0.99 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
21226.00213850171 iter/sec (stddev: 0.000024412310797557872) |
20923.262532802193 iter/sec (stddev: 0.00002336397928812689) |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
modern-di-aiogram 4.3.4 (modern-python/modern-di-aiogram#62) also installs its middleware on
dispatcher.errors, so@injectworks in error handlers. Before, the update's child was already closed when error handlers ran, and resolving a REQUEST-scoped dependency there raisedContainerClosedError.The Scopes section of the aiogram page now says an error handler gets its own child, bound to the failing update, with fresh REQUEST-scoped instances, and when that changed.