Files
openvino/model-optimizer/mo/utils/error.py
Alexey Suhov 6478f1742a Align copyright notice in python scripts (CVS-51320) (#4974)
* Align copyright notice in python scripts (CVS-51320)
2021-03-26 17:54:28 +03:00

50 lines
1.4 KiB
Python

# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import re
class BasicError(Exception):
""" Base class for all exceptions in Model Optimizer
It operates like Exception but when it is converted to str,
it formats string as args[0].format(*args[1:]), where
args are arguments provided when an exception instance is
created.
"""
def __str__(self):
if len(self.args) <= 1:
return Exception.__str__(self)
return self.args[0].format(*self.args[1:]) # pylint: disable=unsubscriptable-object
class FrameworkError(BasicError):
""" User-friendly error: raised when the error on the framework side. """
pass
class Error(BasicError):
""" User-friendly error: raised when the error on the user side. """
pass
class InternalError(BasicError):
""" Not user-friendly error: user cannot fix it and it points to the bug inside MO. """
pass
def classify_error_type(e):
patterns = [
# Example: No module named 'openvino.offline_transformations.offline_transformations_api'
r"No module named \'\S+\'",
# Example: cannot import name 'IECore' from 'openvino.inference_engine' (unknown location)
r"cannot import name \'\S+\'",
]
error_message = str(e)
for pattern in patterns:
m = re.search(pattern, error_message)
if m:
return m.group(0)
return "undefined"