diff --git a/nomad/parsing/parser.py b/nomad/parsing/parser.py index 968514d43e1a85e63bd66863ae5aa874a81acbc1..a8bc104ca91b85eae1cf9327f867affd4ce702c0 100644 --- a/nomad/parsing/parser.py +++ b/nomad/parsing/parser.py @@ -413,6 +413,7 @@ def import_class(class_name, class_description: str = None): module_path, cls = class_name.rsplit('.', 1) module = importlib.import_module(module_path) instance = getattr(module, cls) + except Exception as e: if not class_description: logger.error('cannot import', exc_info=e) diff --git a/nomad/parsing/parsers.py b/nomad/parsing/parsers.py index 9bdf88b23eaee25e369126d46866a725af85f006..efc42e2a8fe68483078dee1e8c7cda7772a2b5bd 100644 --- a/nomad/parsing/parsers.py +++ b/nomad/parsing/parsers.py @@ -336,4 +336,8 @@ def import_all_parsers(): """ for parser in parsers: if isinstance(parser, MatchingParserInterface): - parser.import_parser_class() # pylint: disable=no-member + try: + parser.import_parser_class() # pylint: disable=no-member + + except Exception as e: + raise ImportError(f'Failed to load {parser=}') from e