Repository navigation
feat: add Python 3.14 support - #7
Conversation
…on (python-lsp#690) (cherry picked from commit 44f7eb0)
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (5)
Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 WalkthroughWalkthroughThe server wraps its handler partial in Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk was identified in the reviewed changes. The Python 3.14 handler contract is supported by source inspection; the TCP path was not independently run. 🚥 Pre-merge checks | ✅ 4 | ❌ 1 | ❓ 1❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (3 skipped: 3 unsupported.) Full details: Updates DocsExplanation The pull request adds Python 3.14 support, but its diff contains no documentation files. The required documentation and roadmap are in separate Deepnote repositories, which are unavailable for inspection in this run.
Comment |
Summary
Adds Python 3.14 support by cherry-picking upstream fix python-lsp/python-lsp-server#690 (
44f7eb0).On Python 3.14, the server crashes when a client connects in TCP mode (the mode Deepnote uses):
TypeError: PythonLSPServer.init() got multiple values for argument 'check_parent_process'
This happens because
functools.partialchanged in 3.14. The fix wrapsDELEGATE_CLASSinstaticmethodon 3.14+ only. Older versions don't change.Changes
pylsp/python_lsp.py: 3.14-onlystaticmethod(partial(...))wrapper forDELEGATE_CLASStest/plugins/test_flake8_lint.py: use a Windows-compatible config path in the testCherry-picked unchanged (
-x), so the commit matches upstream's.No breaking changes
requires-pythonis still>=3.9.completion_detail) is untouched.Testing
test_language_server.py::test_missing_messageteardown) is also ondevelopand on 3.11, so it isn't caused by this PR.pylsp --tcpauthenticates and answersinitialize. Before this fix it crashed on connect.Summary by CodeRabbit
Compatibility
Testing
Contributes to BLU-6474