@@ -77,38 +77,14 @@ def normal_import(module_name):
7777 return __import__ (module_name )
7878
7979
80- @caching .cache () # todo: clear cache if `sys.path` changes
81- def import_if_exists (module_name , silent_fail = False ):
80+ def import_if_exists (module_name ):
8281 '''
8382 Import module by name and return it, only if it exists.
84-
85- If `silent_fail` is `True`, will return `None` if the module doesn't exist.
86- If `silent_fail` is False, will raise `ImportError`.
87-
88- `silent_fail` applies only to whether the module exists or not; if it does
89- exist, but there's an error importing it... *release the hounds.*
90-
91- I mean, we just raise the error.
9283 '''
93- if '.' in module_name :
94- package_name , submodule_name = module_name .rsplit ('.' , 1 )
95- package = import_if_exists (package_name , silent_fail = silent_fail )
96- if not package :
97- assert silent_fail is True
98- return None
99- if not exists (submodule_name , package_name ):
100- if silent_fail is True :
101- return None
102- else : # silent_fail is False
103- raise ImportError ("Can't find %s." % module_name )
104- else : # '.' not in module_name
105- if not exists (module_name ):
106- if silent_fail is True :
107- return None
108- else : # silent_fail is False
109- raise ImportError ("Can't find %s." % module_name )
110-
111- return normal_import (module_name )
84+ try :
85+ return __import__ (module_name )
86+ except ModuleNotFoundError :
87+ return None
11288
11389
11490def exists (module_name , package_name = None ):
0 commit comments