-
-
Notifications
You must be signed in to change notification settings - Fork 716
Update to Python 3.13 for 2026.1 #18689
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
Conversation
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.
Pull Request Overview
This PR updates NVDA from Python 3.11 to Python 3.13.6 to modernize the codebase and leverage newer language features. The update includes removing the typing_extensions dependency since Python 3.13 includes those features natively.
Key changes:
- Updated Python version from 3.11.9 to 3.13.6 across all configuration files
- Migrated from
typing_extensions.TypeAlias
to nativetype
statements - Replaced
ParamSpec
usage with parameter list syntax ([**P]
) - Removed deprecated
SupportsLessThan
import and implemented custom protocol
Reviewed Changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
.python-versions | Updated Python version specification |
pyproject.toml | Updated Python requirement and removed typing_extensions dependency |
.github/workflows/*.yml | Updated CI/CD workflows to use Python 3.13 |
source/gui/guiHelper.py | Modernized type annotations using parameter lists |
source/gui/message.py | Converted TypeAlias to type statements |
source/keyboardHandler.py | Converted TypeAlias to type statements |
source/gui/addonStoreGui/viewModels/addonList.py | Implemented custom SupportsLessThan protocol |
source/UIAHandler/_remoteOps/remoteFuncWrapper.py | Modernized type annotations using parameter lists |
tests/unit/test_baseObject.py | Simplified version-specific test logic |
user_docs/en/userGuide.md | Updated Python documentation link |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
At least one knnown issue is that brltty will break. I'm able to provide an x64 binding for Python 3.13, but honestly I'm not that motivated to provide one for X86 as it will only be temporary. |
Co-authored-by: Copilot <[email protected]>
Will brltty be supported in the future? Some others may also have old displays which are not supported by nvda but by brltty. Personally I have alva satellite 544 which I use when I need braille display when travelling. |
@burmancomp - thanks to very promising efforts from @LeonarddeR, yes we should have support for brltty by the time 2026.1beta1 is released. Leonard is holding off until we switch alphas to 64bit, as we need to update brltty for both 64bit and python 3.13, doing both at the same time is easier. |
You can track this in #18657 |
Thanks for the information, and all success to @LeonarddeR! |
Part of nvaccess#18591 Summary of the issue: We want to update to Python 3.13 from 3.11 Description of user facing changes: brltty will break Description of developer facing changes: Update python to 3.13.6 remove typing_extensions Description of development approach: Updated all references of python 3.11 to 3.13 Updated usages of TypeAlias to type: https://docs.python.org/3.13/library/typing.html#type-aliases Updated usages of ParamSpec to parameter lists: https://docs.python.org/3.13/library/typing.html#typing.ParamSpec Remove deprecated SupportsLessThan: Add SupportsLessThan to typing and typing_extensions python/typing_extensions#9 (comment)
…18708) Requested in #18689 Related to #18650 Summary of the issue: System tests should be executed on every supported os Github Actions offers. Description of user facing changes: None Description of developer facing changes: None Description of development approach: Add extra variables to the matrix to specify additional runners to run system tests on
Part of nvaccess#18591 Summary of the issue: We want to update to Python 3.13 from 3.11 Description of user facing changes: brltty will break Description of developer facing changes: Update python to 3.13.6 remove typing_extensions Description of development approach: Updated all references of python 3.11 to 3.13 Updated usages of TypeAlias to type: https://docs.python.org/3.13/library/typing.html#type-aliases Updated usages of ParamSpec to parameter lists: https://docs.python.org/3.13/library/typing.html#typing.ParamSpec Remove deprecated SupportsLessThan: Add SupportsLessThan to typing and typing_extensions python/typing_extensions#9 (comment)
Link to issue number:
Part of #18591
Summary of the issue:
We want to update to Python 3.13 from 3.11
Description of user facing changes:
brltty will break
Description of developer facing changes:
Description of development approach:
TypeAlias
totype
: https://docs.python.org/3.13/library/typing.html#type-aliasesParamSpec
to parameter lists: https://docs.python.org/3.13/library/typing.html#typing.ParamSpecTesting strategy:
CI/CD
Known issues with pull request:
None
Code Review Checklist:
@coderabbitai summary