Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Most of the changes are internal, i.e. show no changed behaviour. Instead, the code should be more robust and maintainable. This is achieved by: * Choosing composition over inheiritance * Leaning even further into static typing, with the different combinations of options being encoded in a sum type-like manner, by combining wrapper classes with `Union`. * More consistent typeassert of fields loaded from argparse.NameSpace at the point where they are accessed * The requirements for each command is encapsulated more directly in classes, with their invariants clearer, and more enforced Further, some user-facing stuff have been changed: * Refactoring of the command-line flags exposed to the user, such that only the flags actually used by each command is exposed. * Changed the grouping of command-line flags to be more sensible * Added the `--version` flag to all subcommands
- Loading branch information