Skip to content

Commit 4759282

Browse files
authored
fix: 🐛 Ignores generic types
1 parent 6834e8d commit 4759282

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

injection/core/module.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,15 @@ class Container:
184184
__channel: EventChannel = field(default_factory=EventChannel, init=False)
185185

186186
def __getitem__(self, reference: type[T]) -> Injectable[T]:
187-
cls = origin if (origin := get_origin(reference)) else reference
187+
cls = self.__get_origin(reference)
188188

189189
try:
190190
return self.__data[cls]
191191
except KeyError as exc:
192192
raise NoInjectable(f"No injectable for `{_format_type(cls)}`.") from exc
193193

194194
def set_multiple(self, references: Iterable[type], injectable: Injectable):
195-
if not isinstance(references, set):
196-
references = set(references)
195+
references = set(self.__get_origin(reference) for reference in references)
197196

198197
if references:
199198
new_values = (
@@ -223,6 +222,13 @@ def notify(self, event: Event):
223222
self.__channel.dispatch(event)
224223
return self
225224

225+
@staticmethod
226+
def __get_origin(cls: type) -> type:
227+
if origin := get_origin(cls):
228+
return origin
229+
230+
return cls
231+
226232

227233
"""
228234
Module

0 commit comments

Comments
 (0)