Poetry sets the pinned NumPy version based on the minimum allowed Python
version. Previously we set the minimum Python version to 3.8 (the last
version with Windows 7 binaries), so Poetry pinned NumPy to the last
version to support 3.8, which lacks wheels for modern Python. As a
result you could not install corrscope on modern Python through Poetry.
This commit sets the minimum Python version to 3.10. This breaks Windows
7 support (unless you use a custom newer Python build or override the
minimum Python version), but fixes corrscope Poetry installation on
newer Python versions. (corrscope wheel installation does not pin the
numpy version, so is exempt.) This also enables testing corrscope on
NumPy 2.0, which has incompatible changes.
I think it's degrading code quality via mypy-specific hacks and
inconsistencies with Pycharm.
It's also slowing down development, but making me reread and cleanup PR
diffs may be a good thing.
Major changes:
- LayoutConfig._calc_layout() improved
- register_enum() replaced with DumpEnumAsStr (*very* iffy multiple inheritance)
i configured mypy to not care about missing annotations...
but most files are fully annotated via MonkeyType = big PR diff.
x86 PyInstaller is very slow (4 minutes) due to
https://github.com/pyinstaller/pyinstaller/issues/3962.
Appveyor x64 works around slow build times, making CI run faster.
Python x64 is as slow as x86 on my local machine.