-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
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
Add support for Python 3.13 #129442
Add support for Python 3.13 #129442
Conversation
The PR is ready now! Wheels will follow once the base image and wheel builder have been updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, should we wait until after we ship 2024.11.0?
In my opinion, we should wait, as this PR could create potential merge conflicts with the RC |
I don't think this is an issue here. All three of the integrations modified here are quite stable. There is only one PR to add a new platform to comelit which could be impacted but it's still in draft: #125154. Overall, merge conflicts should be similar to other PRs and easy to resolve. An alternative of course would be to just cherry-pick this one as that would completely eliminate any potential conflicts. It doesn't need to be mentioned in the release notes quite yet but users would still be able to try out 3.13 early if they want to. |
4cf892c
to
532814b
Compare
Will update the PR again tomorrow, once the (unrelated) CI issue is fixed. |
44d5c69
to
0e4bdee
Compare
The PR is ready now. After the |
d4ef1b4
to
cffc325
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
The flaky modbus test issue is now resolve. Just pushed the last updates:
IMO this PR is ready now. The few open items (mainly |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Breaking change
The
profiler.memory
service is not available when using Python 3.13. It will return if and whenguppy3
becomes Python 3.13 compatible.Proposed change
Add initial support for Python 3.13.
The following integrations don't work yet.
Anthropic
depends ontokenizers
=> fixed with0.20.3
Python 3.13 support huggingface/tokenizers#1639
PyO3 0.22 huggingface/tokenizers#1665
Tokenizers v0.20.2 fails on batches as tuples huggingface/tokenizers#1672
Comelit SimpleHome
andWeatherFlow
depend onPint
Python 3.13 error: cannot inherit frozen dataclass from a non-frozen one hgrecco/pint#1969
TypeError in python 3.13 hgrecco/pint#2065
pint 0.24.3 - Python 3.11.9 error: cannot inherit frozen dataclass from a non-frozen one hgrecco/pint#2074
Use dataclass(frozen=True) for compatibility with Python 3.13 (incomplete, needs help) hgrecco/pint#2037
Convert
ParsingError
todataclass(frozen=False)
hgrecco/flexparser#12Remove temporary pint constraint #130070
Profiler
depends (partially) onguppy3==3.1.3
Error building wheel for Python 3.13
https://github.com/zhuyifei1999/guppy3
Environment Canada
,EZVIZ
,Kraken
,NOAA Tides
depend onpandas>=2.2.0
which can't be build on
armv7
,i386
.BUILD: Install regression on armv7 pandas-dev/pandas#59905
BLD: Fix armv7 build pandas-dev/pandas#59906
Backport PR #59906 on branch 2.3.x (BLD: Fix armv7 build) pandas-dev/pandas#59937
RLS: 2.3 pandas-dev/pandas#59664
Update numpy to 2.1.2 and pandas to 2.2.3 #129958
Huum
depends onhuum==0.7.11
=> fixed with0.7.12
Remove upper version constraint for Python frwickst/pyhuum#10
Update huum to 0.7.12 #130527
PEP 594 removed a lot of "dead" batteries from the stdlib. Unfortunately, those are not quite dead yet and a lot of integrations and dependencies still use them. Fortunately there are backport libraries available which we can use instead. At some point, we might want to remove them as well, but they certainly make the transition easier.
Additional dependencies
audioop-lts
https://github.com/AbstractUmbra/audioop
Assist pipeline
Tami4 Edge / Edge+
->Tami4EdgeAPI
->PyPasser
->pydub==0.25.1
audioop deprecation - Python 3.12 jiaaro/pydub#725
Voice over IP
->voip-utils==0.1.0
https://github.com/home-assistant-libs/voip-utils
standard-aifc
,andstandard-imghdr
standard-telnetlib
https://github.com/youknowone/python-deadlib
aifc
used by:Tami4 Edge / Edge+
->Tami4EdgeAPI
->PyPasser
->SpeechRecognition==3.8.1
The python 'aifc' library is removed in python 3.13.0 Uberi/speech_recognition#775
Install aifc and audioop in Python 3.13 Uberi/speech_recognition#781
imghdr
used by:Apple TV
->pyatv
->mediafile==0.12.0
=> fixed with0.13.0
imghdr
is deprecated and slated for removal in Python 3.13 beetbox/mediafile#67Replace deprecated
imghdr
package withfiletype
beetbox/mediafile#75telnetlib
used by:Discord
->nextcord==2.6.0
DeprecationWarning: 'audioop' is deprecated and slated for removal in Python 3.13 nextcord/nextcord#1174
Keenetic NDMS2 Router
->ndms2-client==0.1.2
Switch from telnet to API foxel/python_ndms2_client#6
Introduce api connection foxel/python_ndms2_client#8
Plum Lightpad
->plumlightpad==0.0.11
Lightpad TCP connection should be asyncio aware heathbar/plum-lightpad-python#7
Soundavo WS66i 6-Zone Amplifier
->pyws66i==1.1
https://github.com/ssaenger/pyws66i
Actiontec
Denon Network Receivers
hddtemp
Pioneer
Telnet
Thomson
--
For reference the Python 3.12 update:
Type of change
Additional information
Checklist
ruff format homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
.To help with the load of incoming pull requests: