exceptions.py
1 import json 2 from typing import Any, ClassVar 3 4 5 class ClientNotReadyError(Exception): 6 pass 7 8 9 class InvalidServerURLError(Exception): 10 pass 11 12 13 class CommandRegistrationError(Exception): 14 def __init__(self, name: str, subcommand: bool = False): 15 super().__init__(f"The {'sub' * subcommand}command {name} has already been registered.") 16 17 18 class NoDocStringError(Exception): 19 def __init__(self, name: str, subcommand: bool = False): 20 super().__init__(f"The {'sub' * subcommand}command {name} is missing a docstring.") 21 22 23 class LoggedInError(Exception): 24 def __init__(self) -> None: 25 super().__init__("Endpoint cannot be used while client is logged in.") 26 27 28 class LoggedOutError(Exception): 29 def __init__(self) -> None: 30 super().__init__("Endpoint can only be used while client is logged in.") 31 32 33 class InvalidServerResponseError(Exception): 34 def __init__(self, response: dict[Any, Any]): 35 super().__init__("Invalid Server Response: " + json.dumps(response)) 36 37 38 class InvalidSessionTokenError(Exception): 39 def __init__(self) -> None: 40 super().__init__("Invalid session token") 41 42 43 class WeakPasswordError(Exception): 44 def __init__(self) -> None: 45 super().__init__("Password is too weak") 46 47 48 class UsernameAlreadyExistsError(Exception): 49 def __init__(self) -> None: 50 super().__init__("Username already exists") 51 52 53 class InvalidLoginError(Exception): 54 def __init__(self) -> None: 55 super().__init__("Invalid Login Credentials") 56 57 58 class InvalidWalletFileError(Exception): 59 def __init__(self) -> None: 60 super().__init__("Invalid wallet file") 61 62 63 class UnknownMicroserviceError(Exception): 64 def __init__(self, ms: str): 65 super().__init__("Unknown Microservice: " + ms) 66 67 68 class MicroserviceException(Exception): 69 error: ClassVar[str | None] 70 71 def __init__(self, args: list[Any] | None = None): 72 super().__init__(self.error) 73 self.params = args 74 75 76 class InternalError(MicroserviceException): 77 error = "internal error" 78 79 80 class NoResponseTimeoutError(MicroserviceException): 81 error = "no response - timeout" 82 83 84 class InvalidRequestError(MicroserviceException): 85 error = "invalid_request" 86 87 88 class AlreadyOwnADeviceError(MicroserviceException): 89 error = "already_own_a_device" 90 91 92 class PermissionDeniedError(MicroserviceException): 93 error = "permission_denied" 94 95 96 class DeviceNotFoundError(MicroserviceException): 97 error = "device_not_found" 98 99 100 class DevicePoweredOffError(MicroserviceException): 101 error = "device_powered_off" 102 103 104 class DeviceNotOnlineError(MicroserviceException): 105 error = "device_not_online" 106 107 108 class DeviceIsStarterDeviceError(MicroserviceException): 109 error = "device_is_starter_device" 110 111 112 class MaximumDevicesReachedError(MicroserviceException): 113 error = "maximum_devices_reached" 114 115 116 class ElementPartNotFoundError(MicroserviceException): 117 error = "element_(.+)_not_found" 118 119 120 class PartNotInInventoryError(MicroserviceException): 121 error = "(.+)_not_in_inventory" 122 123 124 class MissingPartError(MicroserviceException): 125 error = "missing_(.+)" 126 127 128 class IncompatibleCPUSocketError(MicroserviceException): 129 error = "incompatible_cpu_socket" 130 131 132 class NotEnoughRAMSlotsError(MicroserviceException): 133 error = "not_enough_ram_slots" 134 135 136 class IncompatibleRAMTypesError(MicroserviceException): 137 error = "incompatible_ram_types" 138 139 140 class IncompatibleDriverInterfaceError(MicroserviceException): 141 error = "incompatible_drive_interface" 142 143 144 class FileNotFoundError(MicroserviceException): 145 error = "file_not_found" 146 147 148 class FileNotChangeableError(MicroserviceException): 149 error = "file_not_changeable" 150 151 152 class FileAlreadyExistsError(MicroserviceException): 153 error = "file_already_exists" 154 155 156 class ParentDirectoryNotFoundError(MicroserviceException): 157 error = "parent_directory_not_found" 158 159 160 class CanNotMoveDirIntoItselfError(MicroserviceException): 161 error = "can_not_move_dir_into_itself" 162 163 164 class DirectoriesCanNotBeUpdatedError(MicroserviceException): 165 error = "directories_can_not_be_updated" 166 167 168 class DirectoryCanNotHaveTextContentError(MicroserviceException): 169 error = "directory_can_not_have_textcontent" 170 171 172 class AlreadyOwnAWalletError(MicroserviceException): 173 error = "already_own_a_wallet" 174 175 176 class UnknownSourceOrDestinationError(MicroserviceException): 177 error = "unknown_source_or_destination" 178 179 180 class NotEnoughCoinsError(MicroserviceException): 181 error = "not_enough_coins" 182 183 184 class AlreadyOwnThisServiceError(MicroserviceException): 185 error = "already_own_this_service" 186 187 188 class ServiceNotSupportedError(MicroserviceException): 189 error = "service_not_supported" 190 191 192 class ServiceNotRunningError(MicroserviceException): 193 error = "service_not_running" 194 195 196 class CannotToggleDirectlyError(MicroserviceException): 197 error = "cannot_toggle_directly" 198 199 200 class CouldNotStartServiceError(MicroserviceException): 201 error = "could_not_start_service" 202 203 204 class WalletNotFoundError(MicroserviceException): 205 error = "wallet_not_found" 206 207 208 class MinerNotFoundError(MicroserviceException): 209 error = "miner_not_found" 210 211 212 class ServiceNotFoundError(MicroserviceException): 213 error = "service_not_found" 214 215 216 class UnknownServiceError(MicroserviceException): 217 error = "unknown_service" 218 219 220 class ServiceCannotBeUsedError(MicroserviceException): 221 error = "service_cannot_be_used" 222 223 224 class CannotDeleteEnforcedServiceError(MicroserviceException): 225 error = "cannot_delete_enforced_service" 226 227 228 class AttackNotRunningError(MicroserviceException): 229 error = "attack_not_running" 230 231 232 class ItemNotFoundError(MicroserviceException): 233 error = "item_not_found" 234 235 236 class CannotTradeWithYourselfError(MicroserviceException): 237 error = "cannot_trade_with_yourself" 238 239 240 class UserUUIDDoesNotExistError(MicroserviceException): 241 error = "user_uuid_does_not_exist" 242 243 244 class NetworkNotFoundError(MicroserviceException): 245 error = "network_not_found" 246 247 248 class AlreadyMemberOfNetworkError(MicroserviceException): 249 error = "already_member_of_network" 250 251 252 class InvitationAlreadyExistsError(MicroserviceException): 253 error = "invitation_already_exists" 254 255 256 class CannotLeaveOwnNetworkError(MicroserviceException): 257 error = "cannot_leave_own_network" 258 259 260 class CannotKickOwnerError(MicroserviceException): 261 error = "cannot_kick_owner" 262 263 264 class MaximumNetworksReachedError(MicroserviceException): 265 error = "maximum_networks_reached" 266 267 268 class InvalidNameError(MicroserviceException): 269 error = "invalid_name" 270 271 272 class NameAlreadyInUseError(MicroserviceException): 273 error = "name_already_in_use" 274 275 276 class NoPermissionsError(MicroserviceException): 277 error = "no_permissions"