Repository navigation
docs: document the Litestar, Flask and Celery integration fixes - #684
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: b195c85 | Previous: 8d8784f | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
3676824.888151354 iter/sec (stddev: 9.239423678742086e-9) |
3336604.429074763 iter/sec (stddev: 1.146221988734387e-8) |
0.91 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
3321001.2380431923 iter/sec (stddev: 1.034552573333977e-8) |
3290245.7014236413 iter/sec (stddev: 1.154331993429836e-8) |
0.99 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
20905.05835287806 iter/sec (stddev: 0.000047392441258276855) |
20798.838862701752 iter/sec (stddev: 0.00004656949506912769) |
0.99 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
16626.934508146624 iter/sec (stddev: 0.00012913652679374024) |
17186.247018817543 iter/sec (stddev: 0.00012087242592414054) |
1.03 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
478.4015017090282 iter/sec (stddev: 0.000035407188417346275) |
475.4148431515588 iter/sec (stddev: 0.000055845095928237784) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
469.1881023745424 iter/sec (stddev: 0.000043798322234672806) |
465.9649487974885 iter/sec (stddev: 0.00005783407147297572) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
439.38556868776203 iter/sec (stddev: 0.00008088176453090706) |
408.7046944845833 iter/sec (stddev: 0.0001464753349141738) |
0.93 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
13419.866121160027 iter/sec (stddev: 0.000008286528917629516) |
12273.71112208443 iter/sec (stddev: 0.000008879371757819474) |
0.91 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6469.04384623289 iter/sec (stddev: 0.000032476291951700004) |
6385.2753846983305 iter/sec (stddev: 0.000021907884669115347) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3356.689364413454 iter/sec (stddev: 0.00004111329368012495) |
3366.336616997119 iter/sec (stddev: 0.00003935156806153975) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
10072.242318699298 iter/sec (stddev: 0.000009307765501202746) |
9911.516587493415 iter/sec (stddev: 0.000011684714729632153) |
0.98 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
4281.351130188178 iter/sec (stddev: 0.000019000776312455008) |
4287.266888791747 iter/sec (stddev: 0.000027293212092076704) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1973.7922172149208 iter/sec (stddev: 0.000048317974992732565) |
2015.0327488095113 iter/sec (stddev: 0.00003613134660523785) |
1.02 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
40446.243404139925 iter/sec (stddev: 0.0000045389704893130524) |
39872.885242659926 iter/sec (stddev: 0.000004605882062403509) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
14553.574557979913 iter/sec (stddev: 0.000018514384017690595) |
14171.02681609552 iter/sec (stddev: 0.000013004583247066718) |
0.97 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5760.998634532999 iter/sec (stddev: 0.00003447738816963633) |
5964.884723677308 iter/sec (stddev: 0.000029224346125394554) |
1.04 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1591484.9824104693 iter/sec (stddev: 2.952400691013809e-8) |
1577167.0995698941 iter/sec (stddev: 2.6179414923151982e-8) |
0.99 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1701239.3230699366 iter/sec (stddev: 1.90231733912875e-8) |
1676712.9718870982 iter/sec (stddev: 2.1123799454950432e-8) |
0.99 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
2778.0614202399743 iter/sec (stddev: 0.00005473819940775417) |
3182.1360520664016 iter/sec (stddev: 0.000011138213061022046) |
1.15 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
56674.290756748705 iter/sec (stddev: 0.0000027078851175417577) |
58063.422225072056 iter/sec (stddev: 0.0000018514587085333763) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
402570.468803493 iter/sec (stddev: 2.2439813077728983e-7) |
405356.49421490397 iter/sec (stddev: 7.547901991822632e-8) |
1.01 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
62836.635306455224 iter/sec (stddev: 0.0000019497994807373216) |
63183.63291861083 iter/sec (stddev: 0.0000014415760797939437) |
1.01 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
567.6773275757821 iter/sec (stddev: 0.0011265504175534556) |
578.7420504292777 iter/sec (stddev: 0.0011473533415676236) |
1.02 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2171531.4399859984 iter/sec (stddev: 2.1724020104077783e-8) |
2146054.9180062083 iter/sec (stddev: 2.2308347919745596e-8) |
0.99 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
3640176.158312943 iter/sec (stddev: 1.0648741450445554e-8) |
3623490.8885388975 iter/sec (stddev: 1.244386320445755e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
715703.830304074 iter/sec (stddev: 8.38112118127509e-8) |
713641.2452689873 iter/sec (stddev: 3.787254773946193e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
469199.4270699294 iter/sec (stddev: 3.838107420989795e-7) |
434281.1461433443 iter/sec (stddev: 4.2895124107211606e-7) |
0.93 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
2003171.9225849698 iter/sec (stddev: 2.492980511427549e-8) |
1904057.9473517786 iter/sec (stddev: 2.4625495355603254e-8) |
0.95 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1398857.6438844684 iter/sec (stddev: 1.3916052577361174e-7) |
1393145.6260126962 iter/sec (stddev: 1.6475919804395064e-7) |
1.00 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
734482.3526295939 iter/sec (stddev: 6.444234234345051e-8) |
708713.831453368 iter/sec (stddev: 5.3410851087238375e-8) |
0.96 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3642570.443948361 iter/sec (stddev: 8.991226965564255e-9) |
3611838.986947799 iter/sec (stddev: 1.0086457846192054e-8) |
0.99 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
35346.32041966281 iter/sec (stddev: 0.000020930825464968082) |
35164.94357058799 iter/sec (stddev: 0.000018005574259584385) |
0.99 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
21137.983343882563 iter/sec (stddev: 0.000025131773152454616) |
20915.067237467865 iter/sec (stddev: 0.000023726559578794315) |
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.
Follow-up notes for three integration fixes, now released.
Litestar (modern-python/modern-di-litestar#75, released in modern-di-litestar 4.0.1): the
di_containerwarning in "Auto-wiring withautowired_groups" says the name is reserved for the plugin's own dependency. Since 4.0.1, an autowired group that declares a provider under that name raiseslitestar.exceptions.ImproperlyConfiguredExceptionwhen the app is created; earlier releases never finish building the app. The page used to say Litestar fails withRecursionError.Flask (modern-python/modern-di-flask#40, released in modern-di-flask 4.1.0):
async def, and resolution is sync for both.@injectandauto_inject=Trueonasync defviews since 4.1.0, theflask[async]extra, and that teardown is stillclose_sync(), so REQUEST-scoped async finalizers are unsupported. Its example builds its own app and a hidden block requests the view, sojust test-docs-integrationschecks it against the PyPI release.flask[async]is added todocs_integration_extrasin the justfile for that.asyncio.run(fetch_di_container(app).close_async())when an APP-scoped provider has an async finalizer.injectrow in the API table covers async views.Celery (modern-python/modern-di-celery#42, released in modern-di-celery 4.0.1):
FORKED_BY_MULTIPROCESSING=1, and says that since 4.0.1 a spawn child gets its container matched to the app bymainname.setup_dino longer stores the container onapp.conf; the usage paragraph and the API table say it registers the container for the app.Checks run locally:
just docs-build,just test-docs,just test-docs-integrations(339 passed, 1 skipped), and the offline lychee link check.