Added logging trace for failed import for user-level debugging (#1494)

* Added logging trace for failed import for user-level debugging

* one logging statement is enough
This commit is contained in:
Natalino Busa 2021-06-17 08:39:49 +08:00 committed by GitHub
parent 29d02c0798
commit 35604f9bb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 0 deletions

View File

@ -132,12 +132,17 @@ def import_attribute(name):
# dotted path is not the last-before-end word
# E.g.: package_a.package_b.module_a.ClassA.my_static_method
# Thus we remove the bits from the end of the name until we can import it
#
# Sometimes the failure during importing is due to a genuine coding error in the imported module
# In this case, the exception is logged as a warning for ease of debugging.
# The above logic will apply anyways regardless of the cause of the import error.
while len(module_name_bits):
try:
module_name = '.'.join(module_name_bits)
module = importlib.import_module(module_name)
break
except ImportError:
logging.warning("Import error for '%s'" % module_name, exc_info=True)
attribute_bits.insert(0, module_name_bits.pop())
if module is None: