Improve AliBuild typing and linter strictness
I'm currently trying to type the codebase as much as possible, and use a stronger mypy filter.
~~Not ready to merge yet, just want to get the tests running~~
I don't understant the CI error at all. Apparently they changed the default output of argparse? But somehow our test suite is getting both, and fails no matter which one I try
(alibuild-kutz)
$ python3.13 aliBuild builda
usage: aliBuild [-h] [-d] [-n] {analytics,architecture,build,clean,deps,doctor,init,version} ...
aliBuild: error: argument action: invalid choice: 'builda' (choose from analytics, architecture, build, clean, deps, doctor, init, version)
(alibuild-kutz)
$ alibuild builda
usage: alibuild [-h] [-d] [-n] {analytics,architecture,build,clean,deps,doctor,init,version} ...
alibuild: error: argument action: invalid choice: 'builda' (choose from 'analytics', 'architecture', 'build', 'clean', 'deps', 'doctor', 'init', 'version')
As a workaround I could either make the test laxer, or make our own argparse Formatter class so at least it's consistent (https://docs.python.org/3/library/argparse.html#formatter-class)
It really is impressive how often Python breaks stuff...
Otherwise this is ready for merge, I want to make more changes but this PR is already very big, so it's probably best to keep it simple
Closing this for now, will continue after the rebase