This module defines a custom PGS exception hierarchy. There's a lot of exceptions for specific failure states,
which can be a bad approach and too complex. However, we did this anyway for a few reasons:
There's only a few types of common errors (around a dozen, with 3-4 very common)
Want to exit the program with custom exit codes to simplify communicating program
state with external processes (e.g. PGS Catalog Calculator) without doing
complicated things like logging to an external location
This approach should make maintaining exit codes simple
So the plan is to override sys.excepthook, intercept errors defined here, and map them
to custom exit codes defined below
This module defines a custom PGS exception hierarchy. There's a lot of exceptions for specific failure states, which can be a bad approach and too complex. However, we did this anyway for a few reasons:
So the plan is to override sys.excepthook, intercept errors defined here, and map them to custom exit codes defined below