Skip to content

docs: declare Litestar handler dependencies with NamedDependency - #660

Merged
lesnik512 merged 1 commit into
mainfrom
docs/litestar-named-dependency
Oct 10, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
docs/litestar-named-dependency

Conversation

@lesnik512

Copy link
Copy Markdown
Member

The modern-di side of modern-python/modern-di-litestar#72.

The Litestar page taught injected handler parameters as plain annotations (report: Report, user_repo: UserRepository, di_container: Container). Litestar 2.23 deprecated that, and Litestar 3.0 removes it. The page now uses NamedDependency[...] from litestar.di, and one sentence after the first example says why. The autowired_groups paragraph, here and in recipes/multi-group.md, no longer promises "plain parameters".

The two Litestar skips from #654 are gone, so just test-docs-integrations now runs both blocks with warnings as errors. Only the FastStream publish(...) placeholder still skips. Nothing here waits on a release: NamedDependency works with modern-di-litestar 4.0.0 on every Litestar it allows (2.23 and up). modern-python/modern-di-litestar#73 makes the same change in that repo's README and tests.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: f2fd1af Previous: 17dedc5 Ratio
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type 7390415.473599205 iter/sec (stddev: 5.003717960824411e-9) 3886153.2744689747 iter/sec (stddev: 1.3055825666426165e-8) 0.53
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry 7172731.569759982 iter/sec (stddev: 5.148190982511001e-9) 3827049.0699966126 iter/sec (stddev: 1.3944757327748532e-8) 0.53
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 48962.520774235694 iter/sec (stddev: 0.000024499027064572534) 22629.900080512525 iter/sec (stddev: 0.000044984037281007235) 0.46
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached 38348.57130422651 iter/sec (stddev: 0.0000573271619671776) 17266.745770726902 iter/sec (stddev: 0.00012443675142586783) 0.45
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 937.6281561754723 iter/sec (stddev: 0.000022618784375052105) 398.07608301110037 iter/sec (stddev: 0.0003050237228924555) 0.42
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 922.3577857595703 iter/sec (stddev: 0.000012092720807104719) 403.7282933725146 iter/sec (stddev: 0.00012113447657702835) 0.44
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 888.8161945486443 iter/sec (stddev: 0.000020832953569410052) 393.7208876790603 iter/sec (stddev: 0.00010780708494010343) 0.44
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 24633.125517938326 iter/sec (stddev: 0.00001936272881134076) 13408.498395731174 iter/sec (stddev: 0.00000846510734638537) 0.54
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 13721.970017675892 iter/sec (stddev: 0.000012111482988890315) 6190.39551880844 iter/sec (stddev: 0.000014784306984034502) 0.45
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 6589.262598913805 iter/sec (stddev: 0.000019647639571261783) 3458.389066235515 iter/sec (stddev: 0.000039315377351276954) 0.52
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] 19413.589868043426 iter/sec (stddev: 0.000004619789583496801) 9357.183338107528 iter/sec (stddev: 0.000011575881239337238) 0.48
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] 8949.423452056571 iter/sec (stddev: 0.000006849744971588478) 3976.678503805931 iter/sec (stddev: 0.000018606620377069148) 0.44
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] 3877.3632649975025 iter/sec (stddev: 0.000023087797447435537) 1907.8609978244813 iter/sec (stddev: 0.000044657531203945376) 0.49
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] 63646.363835934564 iter/sec (stddev: 0.0000014935517425140089) 35130.389367860094 iter/sec (stddev: 0.000006806795729231988) 0.55
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] 30032.299737642694 iter/sec (stddev: 0.000008285719968400142) 15192.811976672949 iter/sec (stddev: 0.000012864101144587286) 0.51
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] 11605.437185925191 iter/sec (stddev: 0.000018094898058949054) 5881.592658834347 iter/sec (stddev: 0.0000328270810508972) 0.51
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 3197128.9781492506 iter/sec (stddev: 1.5981703590801264e-8) 1598478.3764598279 iter/sec (stddev: 5.275901437784637e-8) 0.50
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 3803155.154637282 iter/sec (stddev: 7.705453572740876e-9) 1675356.882426165 iter/sec (stddev: 2.252303975849749e-8) 0.44
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch 6584.08776852669 iter/sec (stddev: 0.0000026937223446666233) 3081.879391081237 iter/sec (stddev: 0.000012035326959274907) 0.47
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control 118534.47122134524 iter/sec (stddev: 5.474672765328126e-7) 57283.58760394518 iter/sec (stddev: 0.0000024437959932579478) 0.48
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync 788132.7075225415 iter/sec (stddev: 3.677478632549849e-8) 397627.823974914 iter/sec (stddev: 1.1963354603318047e-7) 0.50
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 115329.97794568744 iter/sec (stddev: 5.800478712520009e-7) 57764.18121937458 iter/sec (stddev: 0.0000016931002950142827) 0.50
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers 1105.3758902688223 iter/sec (stddev: 0.0005771438913577545) 532.0691074280629 iter/sec (stddev: 0.0011751960843938618) 0.48
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 4336165.572022389 iter/sec (stddev: 1.138871645960966e-8) 2148811.3071257966 iter/sec (stddev: 2.7825517795040207e-8) 0.50
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 7098528.858315248 iter/sec (stddev: 3.9716712923461865e-9) 3459361.565143468 iter/sec (stddev: 2.5641463229562118e-8) 0.49
benchmarks/test_guard_resolve.py::test_g3_deep_chain 1523879.5932391377 iter/sec (stddev: 1.5894996982097016e-8) 657851.3056716546 iter/sec (stddev: 6.57573905916701e-8) 0.43
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 889606.9400775696 iter/sec (stddev: 2.5203038961506535e-7) 423954.8659347489 iter/sec (stddev: 3.9185927907335125e-7) 0.48
benchmarks/test_guard_resolve.py::test_g5_cross_scope 3917373.581130251 iter/sec (stddev: 9.469864288526035e-9) 1871669.1016318824 iter/sec (stddev: 4.367692737235401e-8) 0.48
benchmarks/test_guard_resolve.py::test_g9_context_resolve 2929584.578372135 iter/sec (stddev: 7.805646767000175e-8) 1285440.601634591 iter/sec (stddev: 1.4893766087247595e-7) 0.44
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 1511117.860758339 iter/sec (stddev: 1.6475121999327564e-8) 695724.0694333628 iter/sec (stddev: 6.235486258313605e-8) 0.46
benchmarks/test_guard_resolve.py::test_g18_alias_hop 7067812.123427405 iter/sec (stddev: 4.922830283793648e-9) 3595883.6625193427 iter/sec (stddev: 1.792135995889403e-8) 0.51
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 79303.66098681239 iter/sec (stddev: 0.000011024070643280962) 35861.517736822745 iter/sec (stddev: 0.00001815503020158629) 0.45
benchmarks/test_guard_validate.py::test_g11_validate_wide 45242.36425010253 iter/sec (stddev: 0.000015414750917812166) 20880.946386308435 iter/sec (stddev: 0.000027223401048713885) 0.46

This comment was automatically generated by workflow using github-action-benchmark.

@lesnik512
lesnik512 merged commit 395e8fb into main Oct 10, 2026
12 checks passed
@lesnik512
lesnik512 deleted the docs/litestar-named-dependency branch October 10, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant