Description
What's needed?
It would be very nice to be able to use new improvements in Python 3.10/3.11, which introduced some big features and some major improvements to typing:
dataclass_transform
Self
- Variadic generics
- Pattern matching (
match
statement) - Exception groups
Currently we need to use a few hacks to be able to do simple things, like forward declarations (using from __future__ import annoations
) or include extra backported modules like typing_extensions
or exceptiongroups
.
Proposed solution
Move to python 3.11 as the minimum required version.
Blockers
In README there is sentence:
For arm64 only Python 3.8 is supported (due to some dependencies that only support 3.8).
These dependencies was an xgboost package that I've build locally, since we wanted to have gpu support for our nvidia jetson xaviar nx edge controllers
Actually these dependencies were never used anywhere.
It is not build and needed now.
-
xgboost
compiled for controllers GPU: not being used right now. - Ubuntu shipping 3.11: We can use the official Python docker images (based on Debian/alpine)
-
mypy
doesn't support all 3.11 features yet (not a hard blocker though): Python 3.11 tracking issue python/mypy#12840 (is not all done but only very minor and obscure things are missing, so it should not be a blocker) - Tensorflow only supports 3.10 for now, but 3.11 is coming: Support Python 3.11 tensorflow/tensorflow#58032
- Ask @frequenz-floss/datasci-team if there are other required ML libraries needed
- Disable tests for older python versions in branch protection
Check if a dependency is Python 3.11-compatible
Metadata
Assignees
Labels
Type
Projects
Status
Done