From a40616e9c5205c6c394697cf775d299370ed4df8 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 30 Aug 2026 21:21:22 +0300 Subject: [PATCH] docs(release): note the DependencyPathMixin __slots__ removal in 3.4.0 The 3.4.0 notes were written at #426; cec6f48 (#428) landed in modern_di/ afterwards and had no entry. It is invisible to users, but "Internal refactors" claims to cover the release and this is the last curated release body the project will ship. Claude-Session: https://claude.ai/code/session_01FdBFyAZ6nntxXwPjy6Xm7p --- planning/releases/3.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/planning/releases/3.4.0.md b/planning/releases/3.4.0.md index aa5d882..ab8a460 100644 --- a/planning/releases/3.4.0.md +++ b/planning/releases/3.4.0.md @@ -26,6 +26,12 @@ internals or assign to `provider.scope`. Resolving a `ContextProvider` directly `GroupScopeConflictError` and `ProviderScopeFrozenError` fire on exactly the same inputs as before. +- **`DependencyPathMixin` drops its empty `__slots__`.** The line asserted the class had + no instance attributes while its own `__init__` set two, which `ty` 0.0.74 began + reporting. Removing it lets the mixing-in classes' declarations stand on their own and + leaves `__dict__` empty after `__init__`, at the cost of 16 bytes per instance on the + nine mixin users, on the error path only. No behavior change. + ## Performance Measured on an Apple M2 / CPython 3.14.7, `min` of 11 timing repeats, averaged across