Repository navigation
Conversation
…ncy_type, and exception group keywords to exceptions (#614) Reword the missing-provider message, drop the unused types.P, fill migration guide gaps and fix stale docs.
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: 6e24334 | Previous: f6e343d | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
2876876.7521229764 iter/sec (stddev: 1.1696033830753136e-8) |
2921718.256656569 iter/sec (stddev: 1.675866103278825e-8) |
1.02 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
2873344.0020654784 iter/sec (stddev: 1.0792850543847373e-8) |
2939203.314248642 iter/sec (stddev: 1.204015671986658e-8) |
1.02 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
21337.417788597268 iter/sec (stddev: 0.00004319748084508497) |
21762.967229655445 iter/sec (stddev: 0.00004094890871011781) |
1.02 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
16602.147921189095 iter/sec (stddev: 0.00011596111660614653) |
16433.6760366631 iter/sec (stddev: 0.00010812780919654217) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
339.74360636823667 iter/sec (stddev: 0.00004409823041302261) |
461.45135894055323 iter/sec (stddev: 0.00003990784243928985) |
1.36 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
340.14769253060797 iter/sec (stddev: 0.0000848787600443331) |
451.0026376153234 iter/sec (stddev: 0.000054903965874733085) |
1.33 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
357.1023656420849 iter/sec (stddev: 0.00014472413870029096) |
425.7675844707922 iter/sec (stddev: 0.00008308038620630768) |
1.19 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
12905.503003303023 iter/sec (stddev: 0.000007207691697000248) |
12751.290749215299 iter/sec (stddev: 0.00000819216963265991) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6409.680155344794 iter/sec (stddev: 0.000024502105748011574) |
6401.705755814795 iter/sec (stddev: 0.000022867724842553285) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3344.018121458962 iter/sec (stddev: 0.00004400377315312043) |
3423.3858792657397 iter/sec (stddev: 0.000040939280354384506) |
1.02 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
8239.983476082682 iter/sec (stddev: 0.000010742401355025445) |
7612.8302325882405 iter/sec (stddev: 0.000010256134066683693) |
0.92 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
3527.312495050392 iter/sec (stddev: 0.000020281655325898572) |
3618.370685087365 iter/sec (stddev: 0.00002517012025414019) |
1.03 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1715.014227829269 iter/sec (stddev: 0.00004653093307089315) |
1719.2318706952121 iter/sec (stddev: 0.00004854649644947838) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
40502.52837066591 iter/sec (stddev: 0.000005362763750588661) |
32996.42153964083 iter/sec (stddev: 0.000006880551983878211) |
0.81 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
13958.854415514363 iter/sec (stddev: 0.000014119539297385203) |
14659.535942872064 iter/sec (stddev: 0.000012750288363749525) |
1.05 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5919.772578139759 iter/sec (stddev: 0.00003551057028411714) |
5849.76259472311 iter/sec (stddev: 0.0000335570564798276) |
0.99 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1628864.1238215764 iter/sec (stddev: 3.169392048789073e-8) |
1585121.4791400717 iter/sec (stddev: 3.581802492697611e-8) |
0.97 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1577316.983020222 iter/sec (stddev: 2.4889369271199436e-8) |
1634928.8822412132 iter/sec (stddev: 2.2739949474734155e-8) |
1.04 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
2805.286465082796 iter/sec (stddev: 0.000013069684558158616) |
2851.9403996074443 iter/sec (stddev: 0.00001246850076439463) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
57610.72882387156 iter/sec (stddev: 0.000002558145117166013) |
58007.21870000694 iter/sec (stddev: 0.00000208313451377107) |
1.01 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
344700.5046398797 iter/sec (stddev: 1.4150320288726064e-7) |
332497.14734137605 iter/sec (stddev: 7.44393106694809e-8) |
0.96 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
48879.97919771222 iter/sec (stddev: 0.0000026061143853176474) |
48889.69298560324 iter/sec (stddev: 0.000001820471012608131) |
1.00 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
460.741650330517 iter/sec (stddev: 0.001109702313569377) |
472.1940049135932 iter/sec (stddev: 0.001026790425194055) |
1.02 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
1985595.8917150293 iter/sec (stddev: 4.91556318072766e-8) |
2178750.936263875 iter/sec (stddev: 2.6353327029762944e-8) |
1.10 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
2772472.805092418 iter/sec (stddev: 1.0591957006213357e-8) |
3311376.0403177035 iter/sec (stddev: 2.072399608841274e-8) |
1.19 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
707343.6541965557 iter/sec (stddev: 4.23623889972603e-8) |
678836.554249412 iter/sec (stddev: 4.6008684988825406e-8) |
0.96 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
444648.4096104095 iter/sec (stddev: 4.038849480355304e-7) |
436782.78901172994 iter/sec (stddev: 3.7702362683787223e-7) |
0.98 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
1723795.846715483 iter/sec (stddev: 2.2071017689722112e-8) |
1876457.2449674914 iter/sec (stddev: 3.702446327477425e-8) |
1.09 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1309741.741194973 iter/sec (stddev: 1.555277413482454e-7) |
1310469.1843290261 iter/sec (stddev: 1.5759486009534166e-7) |
1.00 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
730129.231779183 iter/sec (stddev: 4.7694322862630576e-8) |
715658.0140887419 iter/sec (stddev: 4.497059959957813e-8) |
0.98 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
2749724.4776143027 iter/sec (stddev: 1.0229654417429118e-8) |
2903717.0685449257 iter/sec (stddev: 8.479702107212049e-9) |
1.06 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
27449.318470454247 iter/sec (stddev: 0.000021319509854083832) |
27290.39780542258 iter/sec (stddev: 0.00002305556618279706) |
0.99 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
16462.904203780417 iter/sec (stddev: 0.000025955323870805172) |
16384.134733354367 iter/sec (stddev: 0.000027709419502202343) |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
2 tasks done
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.
Closes #614.
Summary
ProviderNotRegisteredError.provider_typeis now.dependency_type, and so is its constructor keyword. The message now readsNo provider is registered for B., matching the troubleshooting page.FinalizerError(finalizer_errors=)andValidationFailedError(errors=)now takeexceptions=, the name of the attribute that holds them.modern_di.types.Pis deleted. Nothing used it.creator=thatArgumentResolutionErrornow requires, and a "Only four modules are public" section covering the deletedcache_registry/context_registrymodules, the helpers removed frommodern_di.scope, andtypes.P.CacheRegistry.fetch_cache_itemreference in the performance history, theInvalidChildScopeErrornote about a constructor parent, the internalregisternamed on the lifecycle page, the container page H1 (now "Container", as in the nav), its explicit-injection example (the parameter is no longer annotatedContainer), and thefactories.mdfinalizer lambda that failed pyright (now adef).Design decisions
type_namehelper inexceptions/rendering.py: a plain class,NewTypeor type alias shows its bare name; a parameterized type such aslist[int]shows its repr, because its__name__would printlist.DuplicateProviderTypeError.provider_typekeeps its name. It holds a bound type, which is what the issue contrasts it with.CacheSettings.clear_cachekeeps its name, as decided in the issue.validate()from validate() bugs: Container under a custom scope enum, reference-only providers, Alias scope #612 is left to the validate() bugs: Container under a custom scope enum, reference-only providers, Alias scope #612 PR.cache.pyandproviders_registry.py; the other changes in those files belong to parallel PRs.Test plan
<locals>repr)list[int]and aNewTypecorrectlyjust lint,just lint-cijust test-ci(100% coverage)mkdocs build --strict