/ PyCrypCli / PyCrypCli / exceptions.py
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"