From 04b5907f21d40a6ddba57dbad46690e27cbaade4 Mon Sep 17 00:00:00 2001 From: ZipFile Date: Fri, 20 Jun 2025 07:08:06 +0000 Subject: [PATCH] Add warning on extra `@inject` --- pyproject.toml | 1 + src/dependency_injector/__init__.py | 2 +- src/dependency_injector/wiring.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 88553178..f8a69cef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -108,6 +108,7 @@ markers = [ "pydantic: Tests with Pydantic as a dependency", ] filterwarnings = [ + "ignore::dependency_injector.wiring.DIWiringWarning", "ignore:Module \"dependency_injector.ext.aiohttp\" is deprecated since version 4\\.0\\.0:DeprecationWarning", "ignore:Module \"dependency_injector.ext.flask\" is deprecated since version 4\\.0\\.0:DeprecationWarning", "ignore:Please use \\`.*?\\` from the \\`scipy.*?\\`(.*?)namespace is deprecated\\.:DeprecationWarning", diff --git a/src/dependency_injector/__init__.py b/src/dependency_injector/__init__.py index ec63edf0..af252a31 100644 --- a/src/dependency_injector/__init__.py +++ b/src/dependency_injector/__init__.py @@ -1,6 +1,6 @@ """Top-level package.""" -__version__ = "4.48.0" +__version__ = "4.48.1" """Version number. :type: str diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py index 5856622b..f02070af 100644 --- a/src/dependency_injector/wiring.py +++ b/src/dependency_injector/wiring.py @@ -24,6 +24,7 @@ from typing import ( Union, cast, ) +from warnings import warn try: from typing import Self @@ -130,6 +131,10 @@ else: Container = Any +class DIWiringWarning(RuntimeWarning): + """Base class for all warnings raised by the wiring module.""" + + class PatchedRegistry: def __init__(self) -> None: @@ -520,6 +525,11 @@ def unwire( # noqa: C901 def inject(fn: F) -> F: """Decorate callable with injecting decorator.""" reference_injections, reference_closing = _fetch_reference_injections(fn) + + if not reference_injections: + warn("@inject is not required here", DIWiringWarning, stacklevel=2) + return fn + patched = _get_patched(fn, reference_injections, reference_closing) return cast(F, patched)