diff options
Diffstat (limited to 'glucometerutils/exceptions.py')
-rw-r--r-- | glucometerutils/exceptions.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/glucometerutils/exceptions.py b/glucometerutils/exceptions.py index 1f72308..d56dbe6 100644 --- a/glucometerutils/exceptions.py +++ b/glucometerutils/exceptions.py @@ -3,6 +3,8 @@ # SPDX-License-Identifier: MIT """Common exceptions for glucometerutils.""" +from typing import Any, Optional + class Error(Exception): """Base class for the errors.""" @@ -15,42 +17,43 @@ class CommandLineError(Error): class ConnectionFailed(Error): """It was not possible to connect to the meter.""" - def __init__(self, message="Unable to connect to the meter."): - super(ConnectionFailed, self).__init__(message) + def __init__(self, message: str = "Unable to connect to the meter.") -> None: + super().__init__(message) class CommandError(Error): """It was not possible to send a command to the device.""" - def __init__(self, message="Unable to send command to device."): - super(CommandError, self).__init__(message) + def __init__(self, message: str = "Unable to send command to device.") -> None: + super().__init__(message) class InvalidResponse(Error): """The response received from the meter was not understood""" - def __init__(self, response): - super(InvalidResponse, self).__init__(f"Invalid response received:\n{response}") + def __init__(self, response: str) -> None: + super().__init__(f"Invalid response received:\n{response}") class InvalidChecksum(InvalidResponse): - def __init__(self, wire, calculated): - super(InvalidChecksum, self).__init__( - f"Response checksum not matching: {wire:08x} (wire) != {calculated:08x} (calculated)" - ) + def __init__(self, wire: int, calculated: Optional[int]) -> None: + if calculated is not None: + message = f"Response checksum not matching: {wire:08x} (wire) != {calculated:08x} (calculated)" + else: + message = f"Unable to calculate checksum. Expected {wire:08x}." + + super().__init__(message) class InvalidGlucoseUnit(Error): """Unable to parse the given glucose unit""" - def __init__(self, unit): - super(InvalidGlucoseUnit, self).__init__( - f"Invalid glucose unit received:\n{unit}" - ) + def __init__(self, unit: Any) -> None: + super().__init__(f"Invalid glucose unit received:\n{unit}") class InvalidDateTime(Error): """The device has an invalid date/time setting.""" - def __init__(self): - super(InvalidDateTime, self).__init__("Invalid date and time for device") + def __init__(self) -> None: + super().__init__("Invalid date and time for device") |