@@ -298,6 +298,8 @@ def is_excluded(self, instance: object) -> bool:
298
298
return True
299
299
elif self ._is_starlette_request_cls (instance ):
300
300
return True
301
+ elif self ._is_builtin (instance ):
302
+ return True
301
303
else :
302
304
return False
303
305
@@ -309,6 +311,9 @@ def _is_starlette_request_cls(self, instance: object) -> bool:
309
311
and isinstance (instance , type ) \
310
312
and issubclass (instance , starlette .requests .Request )
311
313
314
+ def _is_builtin (self , instance : object ) -> bool :
315
+ return inspect .isbuiltin (instance )
316
+
312
317
313
318
def wire ( # noqa: C901
314
319
container : Container ,
@@ -476,7 +481,7 @@ def _unpatch_attribute(patched: PatchedAttribute) -> None:
476
481
setattr (patched .member , patched .name , patched .marker )
477
482
478
483
479
- def _fetch_reference_injections (
484
+ def _fetch_reference_injections ( # noqa: C901
480
485
fn : Callable [..., Any ],
481
486
) -> Tuple [Dict [str , Any ], Dict [str , Any ]]:
482
487
# Hotfix, see:
@@ -488,7 +493,15 @@ def _fetch_reference_injections(
488
493
)):
489
494
fn = fn .__init__
490
495
491
- signature = inspect .signature (fn )
496
+ try :
497
+ signature = inspect .signature (fn )
498
+ except ValueError as exception :
499
+ if 'no signature found' in str (exception ):
500
+ return {}, {}
501
+ elif 'not supported by signature' in str (exception ):
502
+ return {}, {}
503
+ else :
504
+ raise exception
492
505
493
506
injections = {}
494
507
closing = {}
@@ -874,9 +887,13 @@ def exec_module(self, module):
874
887
super ().exec_module (module )
875
888
loader .wire_module (module )
876
889
890
+ class ExtensionFileLoader (importlib .machinery .ExtensionFileLoader ):
891
+ ...
892
+
877
893
loader_details = [
878
894
(SourcelessFileLoader , importlib .machinery .BYTECODE_SUFFIXES ),
879
895
(SourceFileLoader , importlib .machinery .SOURCE_SUFFIXES ),
896
+ (ExtensionFileLoader , importlib .machinery .EXTENSION_SUFFIXES ),
880
897
]
881
898
882
899
self ._path_hook = importlib .machinery .FileFinder .path_hook (* loader_details )
0 commit comments