PyLint
Add linting, similar to the setup here: https://github.com/UCSD-E4E/acoustic-multiclass-training/blob/main/.github/workflows/pylint.yml
This should also include some restructuring to remove old/irrelevant functions
Would this allow us to remove runtime type checking assertions?
Maybe? Linting should help typecheck any parameters that get passed in, but wouldn't necessarily help if we change the datatype in the function (ie. dictionary --> DataFrame).
Why would we want to remove runtime type checking?
For the same reason we don't check if something is a number in Java. Static type checkers remove the possibility of using a string instead of a number, as an example (so runtime guards don't make sense).
Admittedly it would be useful in cases where types don't cover (ie: this value should be greater than 0). We could also use pydantic to still have runtime guards without checking ourselves.