solara icon indicating copy to clipboard operation
solara copied to clipboard

Support Python 3.14

Open EwoutH opened this issue 1 month ago • 2 comments

Support Python 3.14.

Work in progress

Closes #1107.

EwoutH avatar Oct 08 '25 10:10 EwoutH

@maartenbreddels I don't have time to debug this further. #1107 is fixed, but #1109 isn't yet. Feel free to work further on this PR branch, or merge it.

I would highly recommend prioritizing this, since Python 3.14 stable is already released.

For next year, I recommend using the release candidate period to find such bugs in new Python versions. For Python 3.15, this period starts July 28th, 2026.

EwoutH avatar Oct 08 '25 10:10 EwoutH

@maartenbreddels any chance you or someone from your team can work on Python 3.14 support?

EwoutH avatar Oct 31 '25 04:10 EwoutH

Integration tests are failing locally with:

>   class StepKwds(TypedDict, closed=True, total=False):  # type: ignore[call-arg]
E   TypeError: _TypedDictMeta.__new__() got an unexpected keyword argument 'closed'

../../../miniconda3/envs/dev314/lib/python3.14/site-packages/altair/vegalite/v5/schema/_config.py:6491: TypeError

This is an indication that we are a bit early with 3.14 support.

Unittests are passing locally.

maartenbreddels avatar Nov 06 '25 09:11 maartenbreddels

We'll have to wait for a 3.14 release from altair I think https://github.com/vega/altair/issues/3895

maartenbreddels avatar Nov 06 '25 10:11 maartenbreddels

windows failure on 3.14:

<frozen importlib._bootstrap>:491: Warning: Numpy built with MINGW-W64 on Windows 64 bits is experimental, and only available for 
testing. You are advised not to use it for production. 

CRASHES ARE TO BE EXPECTED - PLEASE REPORT THEM TO NUMPY DEVELOPERS
C:\hostedtoolcache\windows\Python\3.14.0\x64\Lib\site-packages\numpy\core\getlimits.py:225: RuntimeWarning: invalid value encountered in exp2
  epsneg_f128 = exp2(ld(-113))
C:\hostedtoolcache\windows\Python\3.14.0\x64\Lib\site-packages\numpy\core\getlimits.py:226: RuntimeWarning: invalid value encountered in exp2
  tiny_f128 = exp2(ld(-16382))
C:\hostedtoolcache\windows\Python\3.14.0\x64\Lib\site-packages\numpy\core\getlimits.py:240: RuntimeWarning: invalid value encountered in exp2
  eps=exp2(ld(-112)),
C:\hostedtoolcache\windows\Python\3.14.0\x64\Lib\site-packages\numpy\core\getlimits.py:41: RuntimeWarning: invalid value encountered in nextafter
  self._smallest_subnormal = nextafter(
C:\hostedtoolcache\windows\Python\3.14.0\x64\Lib\site-packages\numpy\core\getlimits.py:52: RuntimeWarning: invalid value encountered in log10
  self.precision = int(-log10(self.eps))
D:\a\_temp\a6fa2721-240a-4f4b-81aa-2c7688a394ba.sh: line 3:   211 Segmentation fault      pytest tests/unit --doctest-modules --timeout=60

Not sure why this is experimental

maartenbreddels avatar Nov 06 '25 10:11 maartenbreddels

Thanks for looking into this, appreciated!

Maybe we can merge the fixes we already have in place (such at 103fe3f for #1107)?

EwoutH avatar Nov 06 '25 13:11 EwoutH

Ah yes, i'm all for integrating the fixes, before officially "supporting 3.14". Do you want to cherry-pick that fix into a new branch, so we can continue in this branch to get everything working?

maartenbreddels avatar Nov 06 '25 15:11 maartenbreddels

Done, see https://github.com/widgetti/solara/pull/1123.

EwoutH avatar Nov 07 '25 09:11 EwoutH

altair 6.0.0 Is now released with Python 3.14 support.

EwoutH avatar Nov 12 '25 14:11 EwoutH