Skip to content

Commit b26153f

Browse files
committed
Add warning on extra @inject
1 parent e6cc127 commit b26153f

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ markers = [
108108
"pydantic: Tests with Pydantic as a dependency",
109109
]
110110
filterwarnings = [
111+
"ignore::dependency_injector.wiring.DIWiringWarning",
111112
"ignore:Module \"dependency_injector.ext.aiohttp\" is deprecated since version 4\\.0\\.0:DeprecationWarning",
112113
"ignore:Module \"dependency_injector.ext.flask\" is deprecated since version 4\\.0\\.0:DeprecationWarning",
113114
"ignore:Please use \\`.*?\\` from the \\`scipy.*?\\`(.*?)namespace is deprecated\\.:DeprecationWarning",

src/dependency_injector/wiring.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
Union,
2525
cast,
2626
)
27+
from warnings import warn
2728

2829
try:
2930
from typing import Self
@@ -130,6 +131,10 @@ def extract_marker_from_fast_depends(param: Any) -> Any:
130131
Container = Any
131132

132133

134+
class DIWiringWarning(RuntimeWarning):
135+
"""Base class for all warnings raised by the wiring module."""
136+
137+
133138
class PatchedRegistry:
134139

135140
def __init__(self) -> None:
@@ -520,6 +525,15 @@ def unwire( # noqa: C901
520525
def inject(fn: F) -> F:
521526
"""Decorate callable with injecting decorator."""
522527
reference_injections, reference_closing = _fetch_reference_injections(fn)
528+
529+
if not reference_injections:
530+
warn(
531+
"@inject decorator is not required for this function",
532+
DIWiringWarning,
533+
stacklevel=2,
534+
)
535+
return fn
536+
523537
patched = _get_patched(fn, reference_injections, reference_closing)
524538
return cast(F, patched)
525539

0 commit comments

Comments
 (0)