feat: add Python 3.14 support by mfranczel · Pull Request #7 · deepnote/python-lsp-server · GitHub
Skip to content

feat: add Python 3.14 support - #7

Merged
mfranczel merged 1 commit into
developfrom
michal/python-3.14-support
Oct 7, 2026
Merged

mfranczel merged 1 commit into
developfrom
michal/python-3.14-support

Conversation

@mfranczel

@mfranczel mfranczel commented Oct 7, 2026 •

Copy link
Copy Markdown

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.partial changed in 3.14. The fix wraps DELEGATE_CLASS in staticmethod on 3.14+ only. Older versions don't change.

Changes

  • pylsp/python_lsp.py: 3.14-only staticmethod(partial(...)) wrapper for DELEGATE_CLASS
  • CI test matrices: Linux 3.9–3.14; macOS/Windows 3.9, 3.12, 3.14
  • test/plugins/test_flake8_lint.py: use a Windows-compatible config path in the test

Cherry-picked unchanged (-x), so the commit matches upstream's.

No breaking changes

  • No dependency changes. jedi 0.19.2, parso 0.8.7 and pylint 3.3.x install on 3.14 within the current version limits.
  • requires-python is still >=3.9.
  • Deepnote-specific behaviour (TCP auth, hover format, completion_detail) is untouched.

Testing

  • Full test suite: 188 passed, 18 skipped on both 3.14 and 3.9. The one error (test_language_server.py::test_missing_message teardown) is also on develop and on 3.11, so it isn't caused by this PR.
  • Manual: on 3.14, pylsp --tcp authenticates and answers initialize. Before this fix it crashed on connect.

Summary by CodeRabbit

  • Compatibility

    • Improved TCP language-server startup compatibility with Python 3.14 and later; earlier Python versions retain their existing behavior.
  • Testing

    • Linux test coverage now includes Python 3.12–3.14 in addition to 3.9–3.11.
    • macOS and Windows test coverage now targets Python 3.9, 3.12, and 3.14.
    • Updated Flake8 configuration-path testing to account for Windows-style paths.

Contributes to BLU-6474

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

@linear-code

linear-code Bot commented Oct 7, 2026

Copy link
Copy Markdown

@mfranczel
mfranczel requested a review from m1so October 7, 2026 11:28
@mfranczel
mfranczel marked this pull request as ready for review October 7, 2026 11:28
@mfranczel
mfranczel merged commit c19c080 into develop Oct 7, 2026
11 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants