ERR_INVALID_ARG = 4
ERR_ILLEGAL_STATE = 127
-class TimeTrackError(Exception):
+class PunchCardError(Exception):
@property
def exit_code(self) -> int:
return NotImplemented
-class IllegalStateError(TimeTrackError):
+class IllegalStateError(PunchCardError):
def exit_code(self) -> int:
return ERR_ILLEGAL_STATE
-class InvalidArgumentError(TimeTrackError):
+class InvalidArgumentError(PunchCardError):
def exit_code(self) -> int:
return ERR_INVALID_ARG
-class MissingArgumentError(TimeTrackError):
+class MissingArgumentError(PunchCardError):
def __init__(self, *args: object) -> None:
super().__init__(
f"Missing argument: {args[0]}",
return ERR_MISSING_ARG
-class NoSuchCategoryError(TimeTrackError):
+class NoSuchCategoryError(PunchCardError):
def __init__(self, category: str) -> None:
super().__init__(f"No such category: {category}")
return ERR_NO_SUCH_CATEGORY
-class UnknownCommandError(TimeTrackError):
+class UnknownCommandError(PunchCardError):
def __init__(self, *args: object) -> None:
super().__init__(
f"Unknown subcommand: {args[0]}",
IllegalStateError,
MissingArgumentError,
NoSuchCategoryError,
- TimeTrackError,
+ PunchCardError,
UnknownCommandError,
)
from puncher import Puncher
if __name__ == "__main__":
try:
main(sys.argv)
- except TimeTrackError as e:
+ except PunchCardError as e:
command = None
if len(sys.argv) > 1:
command = sys.argv[1]