- Optional not needed for 'None' argument
- Use TextIO for typehints, TextIOWrapper seems to cause problems
- Test for tuple/list input for public functions
- internal functions that are always called with np.ndarray don't need
to offer flexibility. They might work, but we don't guarantee
anything.