Skip to content

ding.interaction.exception.master

ding.interaction.exception.master

MasterErrorCode

Bases: IntEnum

Overview

Error codes for master end

MasterResponseException

Bases: ResponseException

Overview

Response exception for master client

__init__(error)

Overview

Constructor

Arguments: - error (:obj:HTTPError): Original http exception object

get_master_exception_class_by_error_code(error_code)

Overview

Transform from master error code to MasterResponseException class

Arguments: - error_code (:obj:MasterErrorCode): Master error code Returns: - exception_class (:obj:Type[MasterResponseException): Master response exception class

get_master_exception_by_error(error)

Overview

Auto transform http error object to master response exception object.

Arguments: - error (:obj:HTTPError): Http error object Returns: - exception (:obj:MasterResponseException): Master response exception object

Full Source Code

../ding/interaction/exception/master.py

1from abc import ABCMeta 2from enum import unique, IntEnum 3from typing import Type 4 5import enum_tools 6from requests import HTTPError 7 8from .base import ResponseException 9from ..base import get_values_from_response 10 11 12@enum_tools.documentation.document_enum 13@unique 14class MasterErrorCode(IntEnum): 15 """ 16 Overview: 17 Error codes for master end 18 """ 19 SUCCESS = 0 # doc: Master request success 20 21 SYSTEM_SHUTTING_DOWN = 101 # doc: Master end is shutting down 22 23 CHANNEL_NOT_GIVEN = 201 # doc: No channel id given in request 24 CHANNEL_INVALID = 202 # doc: Channel id given not match with master end 25 26 MASTER_TOKEN_NOT_GIVEN = 301 # doc: No master token found in connection request from slave 27 MASTER_TOKEN_INVALID = 302 # doc: Master token auth failed in master end 28 29 SELF_TOKEN_NOT_GIVEN = 401 # doc: No self token given in self request (such as ping, shutdown) 30 SELF_TOKEN_INVALID = 402 # doc: Self token auth failed in master end itself (such as ping, shutdown) 31 32 SLAVE_TOKEN_NOT_GIVEN = 501 # doc: No slave token given in service request from slave 33 SLAVE_TOKEN_INVALID = 502 # doc: Slave token not found in master end 34 35 TASK_DATA_INVALID = 601 # doc: Task data is invalid 36 37 38# noinspection DuplicatedCode 39class MasterResponseException(ResponseException, metaclass=ABCMeta): 40 """ 41 Overview: 42 Response exception for master client 43 """ 44 45 def __init__(self, error: HTTPError): 46 """ 47 Overview: 48 Constructor 49 Arguments: 50 - error (:obj:`HTTPError`): Original http exception object 51 """ 52 ResponseException.__init__(self, error) 53 54 55class MasterSuccess(MasterResponseException): 56 pass 57 58 59class MasterSystemShuttingDown(MasterResponseException): 60 pass 61 62 63class MasterChannelNotGiven(MasterResponseException): 64 pass 65 66 67class MasterChannelInvalid(MasterResponseException): 68 pass 69 70 71class MasterMasterTokenNotGiven(MasterResponseException): 72 pass 73 74 75class MasterMasterTokenInvalid(MasterResponseException): 76 pass 77 78 79class MasterSelfTokenNotGiven(MasterResponseException): 80 pass 81 82 83class MasterSelfTokenInvalid(MasterResponseException): 84 pass 85 86 87class MasterSlaveTokenNotGiven(MasterResponseException): 88 pass 89 90 91class MasterSlaveTokenInvalid(MasterResponseException): 92 pass 93 94 95class MasterTaskDataInvalid(MasterResponseException): 96 pass 97 98 99_PREFIX = ['master'] 100 101 102def get_master_exception_class_by_error_code(error_code: MasterErrorCode) -> Type[MasterResponseException]: 103 """ 104 Overview: 105 Transform from master error code to `MasterResponseException` class 106 Arguments: 107 - error_code (:obj:`MasterErrorCode`): Master error code 108 Returns: 109 - exception_class (:obj:`Type[MasterResponseException`): Master response exception class 110 """ 111 class_name = ''.join([word.lower().capitalize() for word in (_PREFIX + error_code.name.split('_'))]) 112 return eval(class_name) 113 114 115def get_master_exception_by_error(error: HTTPError) -> MasterResponseException: 116 """ 117 Overview: 118 Auto transform http error object to master response exception object. 119 Arguments: 120 - error (:obj:`HTTPError`): Http error object 121 Returns: 122 - exception (:obj:`MasterResponseException`): Master response exception object 123 """ 124 _, _, code, _, _ = get_values_from_response(error.response) 125 error_code = {v.value: v for k, v in MasterErrorCode.__members__.items()}[code] 126 return get_master_exception_class_by_error_code(error_code)(error)