Skip to content

docs(typer): fetch_di_container no longer reads ctx.obj - #493

Merged
lesnik512 merged 1 commit into
mainfrom
docs/typer-fetch-di-container
Sep 15, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
docs/typer-fetch-di-container

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Follow-up to modern-python/modern-di-typer#48, which moved fetch_di_container off ctx.obj so the app container stays reachable after a callback assigns ctx.obj and from add_typer sub-apps that declare their own context_settings["obj"]. The API table on the Typer integration page still said it reads "from ctx.obj"; this updates that one line.

just docs-build (mkdocs strict) passes.

@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: b6f5bbc Previous: 705255b Ratio
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type 4043495.721948878 iter/sec (stddev: 7.968765681371922e-9) 5474232.186947814 iter/sec (stddev: 1.7603245438966944e-8) 1.35
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry 3944922.2580036535 iter/sec (stddev: 9.050066263312e-9) 5655109.9969855035 iter/sec (stddev: 5.862253788807473e-9) 1.43
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 16295.206458992916 iter/sec (stddev: 0.00004157032801161358) 21877.171298999077 iter/sec (stddev: 0.00018044361631999875) 1.34
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached 13864.062631765726 iter/sec (stddev: 0.00011173494763707306) 20316.737208500577 iter/sec (stddev: 0.00003613755055399066) 1.47
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 558.666660258114 iter/sec (stddev: 0.00006799957820870566) 671.8054454859932 iter/sec (stddev: 0.00004131160094729849) 1.20
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 466.1588158811277 iter/sec (stddev: 0.0002666490860381722) 653.4108279584009 iter/sec (stddev: 0.00002456015064723143) 1.40
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 465.54615429638 iter/sec (stddev: 0.00006212478809823388) 584.1946179907692 iter/sec (stddev: 0.000028553234410104682) 1.25
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 1733.0782492623118 iter/sec (stddev: 0.00017822100914458534) 2365.0209149614548 iter/sec (stddev: 0.00013388803582663455) 1.36
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 1388.040336758013 iter/sec (stddev: 0.00021178340563734037) 1896.7518014760271 iter/sec (stddev: 0.00014753627253244865) 1.37
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 990.1044587455657 iter/sec (stddev: 0.00024814232399084367) 1213.2558514447746 iter/sec (stddev: 0.0009954748044369319) 1.23
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] 1436.6040117712166 iter/sec (stddev: 0.0011362455098231394) 2355.4829272919333 iter/sec (stddev: 0.00014146517972579438) 1.64
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] 1240.283182281263 iter/sec (stddev: 0.0002159757840673661) 1691.8307934044894 iter/sec (stddev: 0.00015767406993036308) 1.36
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] 820.3873138752678 iter/sec (stddev: 0.0002319419759574655) 1116.9068545384798 iter/sec (stddev: 0.00014509782183462215) 1.36
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 729226.8297709115 iter/sec (stddev: 4.5059727171554874e-8) 901891.1123406881 iter/sec (stddev: 3.072050843271943e-8) 1.24
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 671130.3546568087 iter/sec (stddev: 5.594948790760783e-8) 838970.8679948922 iter/sec (stddev: 2.7126628385460477e-8) 1.25
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch 2459.790606694635 iter/sec (stddev: 0.000009877255417824934) 3122.63511500805 iter/sec (stddev: 0.000006106628648846104) 1.27
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control 61696.96710391847 iter/sec (stddev: 0.0000018440097580080655) 78926.26059897241 iter/sec (stddev: 0.0000010448229863168501) 1.28
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 50619.359254037205 iter/sec (stddev: 0.0000017920305635828971) 62724.33482327023 iter/sec (stddev: 0.0000025635127091615295) 1.24
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 2487321.3459169255 iter/sec (stddev: 2.7489649313925323e-8) 3119138.456530542 iter/sec (stddev: 2.248069104237615e-8) 1.25
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 4174560.0638815467 iter/sec (stddev: 6.341880769792783e-9) 5400924.3898033425 iter/sec (stddev: 1.1253594296938251e-8) 1.29
benchmarks/test_guard_resolve.py::test_g3_deep_chain 861322.6220221304 iter/sec (stddev: 4.295329194500599e-8) 1037710.2342578218 iter/sec (stddev: 1.2821990038776427e-7) 1.20
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 485894.79006536753 iter/sec (stddev: 3.288850660129726e-7) 655937.0452610792 iter/sec (stddev: 2.763880764361905e-7) 1.35
benchmarks/test_guard_resolve.py::test_g5_cross_scope 1948033.8590878153 iter/sec (stddev: 2.582373568956971e-8) 2503596.2595413662 iter/sec (stddev: 1.7687503031226207e-8) 1.29
benchmarks/test_guard_resolve.py::test_g9_context_resolve 1095741.6302925318 iter/sec (stddev: 1.5969976167805222e-7) 1420589.99588447 iter/sec (stddev: 1.161918000974769e-7) 1.30
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 834305.7514687028 iter/sec (stddev: 3.765342782735935e-8) 1078178.9148458317 iter/sec (stddev: 2.995951852736067e-8) 1.29
benchmarks/test_guard_resolve.py::test_g18_alias_hop 2823554.259038029 iter/sec (stddev: 1.0890186925421572e-8) 3798247.4278667383 iter/sec (stddev: 8.721015061056488e-9) 1.35
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 24584.731716539292 iter/sec (stddev: 0.00002574183286559226) 35464.322613640084 iter/sec (stddev: 0.00001632932643953179) 1.44
benchmarks/test_guard_validate.py::test_g11_validate_wide 15305.267852779574 iter/sec (stddev: 0.000026565556281140754) 21335.190348334167 iter/sec (stddev: 0.00002092572505145076) 1.39

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

@lesnik512
lesnik512 merged commit c45e9b3 into main Sep 15, 2026
10 checks passed
@lesnik512
lesnik512 deleted the docs/typer-fetch-di-container branch September 15, 2026 18:17
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