From 2c230113451cddbd879051a8d0c375061103d096 Mon Sep 17 00:00:00 2001 From: Apostol Fet Date: Mon, 2 Dec 2024 21:03:19 +0300 Subject: [PATCH 1/2] improve wrap injection --- src/dishka/integrations/base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dishka/integrations/base.py b/src/dishka/integrations/base.py index 21ec49b1..76fcff67 100644 --- a/src/dishka/integrations/base.py +++ b/src/dishka/integrations/base.py @@ -102,6 +102,10 @@ def wrap_injection( continue dependencies[name] = dep + if not dependencies: + func.__dishka_injected__ = True # type: ignore[attr-defined] + return func + if remove_depends: new_annotations = { name: hint @@ -115,7 +119,7 @@ def wrap_injection( ] else: new_annotations = hints.copy() - new_params = list(func_signature.parameters.copy().values()) + new_params = list(func_signature.parameters.values()) auto_injected_func: Callable[P, T | Awaitable[T]] if additional_params: From 1ba9e45c739a65eebd9dd11d3ad24e08d0f557ef Mon Sep 17 00:00:00 2001 From: Apostol Fet Date: Mon, 2 Dec 2024 22:22:00 +0300 Subject: [PATCH 2/2] Added handler for AttributeError --- src/dishka/integrations/base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/dishka/integrations/base.py b/src/dishka/integrations/base.py index 76fcff67..9b9cfed3 100644 --- a/src/dishka/integrations/base.py +++ b/src/dishka/integrations/base.py @@ -103,8 +103,12 @@ def wrap_injection( dependencies[name] = dep if not dependencies: - func.__dishka_injected__ = True # type: ignore[attr-defined] - return func + try: + func.__dishka_injected__ = True # type: ignore[attr-defined] + except AttributeError: + pass + else: + return func if remove_depends: new_annotations = {