File tree Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -184,16 +184,15 @@ class Container:
184
184
__channel : EventChannel = field (default_factory = EventChannel , init = False )
185
185
186
186
def __getitem__ (self , reference : type [T ]) -> Injectable [T ]:
187
- cls = origin if ( origin := get_origin ( reference )) else reference
187
+ cls = self . __get_origin ( reference )
188
188
189
189
try :
190
190
return self .__data [cls ]
191
191
except KeyError as exc :
192
192
raise NoInjectable (f"No injectable for `{ _format_type (cls )} `." ) from exc
193
193
194
194
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 )
197
196
198
197
if references :
199
198
new_values = (
@@ -223,6 +222,13 @@ def notify(self, event: Event):
223
222
self .__channel .dispatch (event )
224
223
return self
225
224
225
+ @staticmethod
226
+ def __get_origin (cls : type ) -> type :
227
+ if origin := get_origin (cls ):
228
+ return origin
229
+
230
+ return cls
231
+
226
232
227
233
"""
228
234
Module
You can’t perform that action at this time.
0 commit comments