|
- # Copyright 2020 Huawei Technologies Co., Ltd
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # ============================================================================
- """Definition of error code and relative messages in profiler module."""
- from mindspore.profiler.common.exceptions.error_code import ProfilerErrors, \
- ProfilerErrorMsg
-
-
- class ProfilerException(Exception):
- """
- Base class for Profilier exception.
-
- Examples:
- >>> raise ProfilerException(GeneralErrors.PATH_NOT_EXISTS_ERROR, 'path not exists')
- """
-
- RUNTIME = 1
- TYPE = 1
- LEVEL = 0
- SYSID = 42
-
- def __init__(self, error, message, http_code=500):
- """
- Initialization of ProfilerException.
-
- Args:
- error (Enum): Error value for specified case.
- message (str): Description for exception.
- http_code (int): Http code for exception. Default is 500.
- """
- if isinstance(message, str):
- message = ' '.join(message.split())
- super(ProfilerException, self).__init__(message)
- self.error = error
- self.message = message
- self.http_code = http_code
-
-
- @property
- def error_code(self):
- """
- Transform exception no to Profiler error code.
-
- code compose(4bytes):
- runtime 2bits, type 2bits, level 3bits, sysid 8bits, modid 5bits, value 12bits.
-
- num = ((0xFF & runtime) << 30) \
- | ((0xFF & type) << 28) \
- | ((0xFF & level) << 25) \
- | ((0xFF & sysid) << 17) \
- | ((0xFF & modid) << 12) \
- | (0x0FFF & value)
-
- Returns:
- str, Hex string representing the composed Profiler error code.
- """
- num = (((0xFF & self.RUNTIME) << 30)
- | ((0xFF & self.TYPE) << 28)
- | ((0xFF & self.LEVEL) << 25)
- | ((0xFF & self.SYSID) << 17)
- | ((0xFF & 6) << 12)
- | (0x0FFF & self.error.value))
-
- return hex(num)[2:].zfill(8).upper()
-
- def __str__(self):
- return '[{}] code: {}, msg: {}'.format(self.__class__.__name__, self.error_code, self.message)
-
-
- class ProfilerParamValueErrorException(ProfilerException):
- """The parameter value error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerParamValueErrorException, self).__init__(
- error=ProfilerErrors.PARAM_VALUE_ERROR,
- message=ProfilerErrorMsg.PARAM_VALUE_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerPathErrorException(ProfilerException):
- """The path error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerPathErrorException, self).__init__(
- error=ProfilerErrors.PATH_ERROR,
- message=ProfilerErrorMsg.PATH_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerParamTypeErrorException(ProfilerException):
- """The parameter type error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerParamTypeErrorException, self).__init__(
- error=ProfilerErrors.PARAM_TYPE_ERROR,
- message=ProfilerErrorMsg.PARAM_TYPE_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerDirNotFoundException(ProfilerException):
- """The dir not found exception in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerDirNotFoundException, self).__init__(
- error=ProfilerErrors.DIR_NOT_FOUND_ERROR,
- message=ProfilerErrorMsg.DIR_NOT_FOUND_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerFileNotFoundException(ProfilerException):
- """The file not found exception in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerFileNotFoundException, self).__init__(
- error=ProfilerErrors.FILE_NOT_FOUND_ERROR,
- message=ProfilerErrorMsg.FILE_NOT_FOUND_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerIOException(ProfilerException):
- """The IO exception in profiler module."""
-
- def __init__(self):
- super(ProfilerIOException, self).__init__(
- error=ProfilerErrors.IO_ERROR,
- message=ProfilerErrorMsg.IO_ERROR.value,
- http_code=400
- )
-
-
- class ProfilerDeviceIdMismatchException(ProfilerException):
- """The device id mismatch exception in profiler module."""
-
- def __init__(self):
- super(ProfilerDeviceIdMismatchException, self).__init__(
- error=ProfilerErrors.DEVICE_ID_MISMATCH_ERROR,
- message=ProfilerErrorMsg.DEVICE_ID_MISMATCH_ERROR.value,
- http_code=400
- )
-
-
- class ProfilerRawFileException(ProfilerException):
- """The raw file exception in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerRawFileException, self).__init__(
- error=ProfilerErrors.RAW_FILE_ERROR,
- message=ProfilerErrorMsg.RAW_FILE_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerColumnNotExistException(ProfilerException):
- """The column does not exist exception in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerColumnNotExistException, self).__init__(
- error=ProfilerErrors.COLUMN_NOT_EXIST_ERROR,
- message=ProfilerErrorMsg.COLUMN_NOT_EXIST_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerAnalyserNotExistException(ProfilerException):
- """The analyser in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerAnalyserNotExistException, self).__init__(
- error=ProfilerErrors.ANALYSER_NOT_EXIST_ERROR,
- message=ProfilerErrorMsg.ANALYSER_NOT_EXIST_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerDeviceIdException(ProfilerException):
- """The parameter device_id error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerDeviceIdException, self).__init__(
- error=ProfilerErrors.DEVICE_ID_ERROR,
- message=ProfilerErrorMsg.DEIVICE_ID_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerOpTypeException(ProfilerException):
- """The parameter op_type error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerOpTypeException, self).__init__(
- error=ProfilerErrors.OP_TYPE_ERROR,
- message=ProfilerErrorMsg.OP_TYPE_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerSortConditionException(ProfilerException):
- """The parameter sort_condition error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerSortConditionException, self).__init__(
- error=ProfilerErrors.SORT_CONDITION_ERROR,
- message=ProfilerErrorMsg.SORT_CONDITION_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerFilterConditionException(ProfilerException):
- """The parameter filer_condition error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerFilterConditionException, self).__init__(
- error=ProfilerErrors.FILTER_CONDITION_ERROR,
- message=ProfilerErrorMsg.FILTER_CONDITION_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerGroupConditionException(ProfilerException):
- """The parameter group_condition error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerGroupConditionException, self).__init__(
- error=ProfilerErrors.GROUP_CONDITION_ERROR,
- message=ProfilerErrorMsg.GROUP_CONDITION_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class ProfilerColumnNotSupportSortException(ProfilerException):
- """The column does not support to sort error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerColumnNotSupportSortException, self).__init__(
- error=ProfilerErrors.COLUMN_NOT_SUPPORT_SORT_ERROR,
- message=ProfilerErrorMsg.COLUMN_NOT_SUPPORT_SORT_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class StepNumNotSupportedException(ProfilerException):
- """The step number error in profiler module."""
-
- def __init__(self, msg):
- super(StepNumNotSupportedException, self).__init__(
- error=ProfilerErrors.STEP_NUM_NOT_SUPPORTED_ERROR,
- message=ProfilerErrorMsg.STEP_NUM_NOT_SUPPORTED_ERROR.value.format(msg),
- http_code=400
- )
-
-
- class JobIdMismatchException(ProfilerException):
- """The Job ID mismatch error in profiler module."""
-
- def __init__(self):
- super(JobIdMismatchException, self).__init__(
- error=ProfilerErrors.JOB_ID_MISMATCH_ERROR,
- message=ProfilerErrorMsg.JOB_ID_MISMATCH_ERROR.value,
- http_code=400
- )
-
-
- class ProfilerPipelineOpNotExistException(ProfilerException):
- """The minddata pipeline operator does not exist error in profiler module."""
-
- def __init__(self, msg):
- super(ProfilerPipelineOpNotExistException, self).__init__(
- error=ProfilerErrors.PIPELINE_OP_NOT_EXIST_ERROR,
- message=ProfilerErrorMsg.PIPELINE_OP_NOT_EXIST_ERROR.value.format(msg),
- http_code=400
- )
|