Skip to content

Move minimal supported Python version to 3.11 #148

Closed

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

part:docsAffects the documentationpart:toolingAffects the development tooling (CI, deployment, dependency management, etc.)type:enhancementNew feature or enhancement visitble to users

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions