New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ENH] python 3.11 support #3963
Comments
FYI @alexanderreschjedox, I tried to summarize the situation above. |
…3631) This PR isolates `numba` throughout `sktime`. Note: does *not* turn `numba` into a soft dependency. This is required for all approaches to making `sktime` python 3.11 compatible as long as `numba` is not python 3.11 compatible, because that requires being able to run the framework components of `sktime` without `numba` imports. See also #3963. The general recipe to isolate `numba`: * move `numba` imports into functions and classes, where possible * where loose functions are decorated with `jit` and `njit`, move them to a private module `_orig_modulename_numba`, and move imports of that into functions or classes * add the package dependency tag to `numba` dependent estimators to isolate them * use `pytest.skipif` to conditionally skip `numba` dependent non-suite tests if `numba` is not installed Makes the following changes: * changes the `test_module_softdeps` test to ignore private modules (starting with `_`), i.e., to not require a user warning. This is ok since users are not expected to import private modules. Depends on #3857
The github page should be updated: currently https://github.com/sktime/sktime says sktime works with python 3.11, but I get a conflict report:
|
@jplatipus, as far as I know 3.11 compatibility is tested in the CI/CD pipeline, and I just checked Now you are using I will open an issue to track this. |
Issue is here: #4254 |
update, Feb 23, 2023:
numba
is now fully isolated, andsktime
release 0.16.1 has been released with experimental 3.11 support.Issues that remain to fix before full support in 0.17.0:
this is waiting for migration, and is not necessarily blocking 0.17.0
Umbrella issue for discussing python 3.11 support, to direct frequent questions to.
Current blockers to the "naive" solution of releasing
sktime
for 3.11 as-is, as far as I know:numba
is a core dependency and not python 3.11 compatiblePotential solutions:
pyproject.toml
would fix the issue. This would require us to check python 3.11 support for soft dependencies periodically and potentially remove the condition at a later point in time.numba
could be solved by "wait for python 3.11 support". When that happens is unclear.numba
into a soft dependency right now, and deal with it as with the other soft dependencies. This is entirely feasible - the PR here could be merged and enable python 3.11 EXPERIMENTAL: [MNT] python 3.11 compatibility withnumba
as soft dependency #3856. But, it is a very contentious issue with some core developers.numba
as core dependency, but makes it optional only on python 3.11, until it becomes compatible. This option is implemented here, ready for merge and enable: [MNT] python 3.11 compatibility, withnumba
as core dependency on 3.7-3.10 #4000. As it turns out, this is also very contentious.The text was updated successfully, but these errors were encountered: