Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jupyter-lsp for
openSUSE:Factory checked in at 2026-10-18 19:25:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-lsp (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter-lsp.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter-lsp"
Sun Oct 18 19:25:30 2026 rev:9 rq:1385850 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter-lsp/python-jupyter-lsp.changes
2025-10-13 15:36:08.275238141 +0200
+++
/work/SRC/openSUSE:Factory/.python-jupyter-lsp.new.3698736/python-jupyter-lsp.changes
2026-10-18 19:25:43.510786857 +0200
@@ -1,0 +2,9 @@
+Sat Oct 17 15:17:15 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 2.3.1 with jupyterlab-lsp 5.3.0:
+ * Add auto-detection of pyrefly and basedpyright language
+ servers (2.3.0)
+ * Updated config schema for pylsp, including ruff plugin
+ (python-lsp-ruff)
+
+-------------------------------------------------------------------
Old:
----
jupyter_lsp-2.2.6.tar.gz
New:
----
jupyter_lsp-2.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter-lsp.spec ++++++
--- /var/tmp/diff_new_pack.FI0po8/_old 2026-10-18 19:25:44.687835824 +0200
+++ /var/tmp/diff_new_pack.FI0po8/_new 2026-10-18 19:25:44.688835866 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jupyter-lsp
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
#
-%define pyversion 2.2.6
-%define shortversion 2.2.6
-%define jupversion 5.2.0
+%define pyversion 2.3.1
+%define shortversion 2.3.1
+%define jupversion 5.3.0
Name: python-jupyter-lsp
Version: %{pyversion}
Release: 0
@@ -26,27 +26,27 @@
License: BSD-3-Clause
# SourceRepository: https://github.com/jupyter-lsp/jupyterlab-lsp
URL:
https://github.com/jupyter-lsp/jupyterlab-lsp/tree/main/python_packages/jupyter_lsp
-Source:
https://files.pythonhosted.org/packages/source/j/jupyter-lsp/jupyter_lsp-%{pyversion}.tar.gz
+Source:
https://files.pythonhosted.org/packages/source/j/jupyter_lsp/jupyter_lsp-%{pyversion}.tar.gz
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
+BuildRequires: fdupes
BuildRequires: jupyter-rpm-macros
BuildRequires: python-rpm-macros
+Requires: jupyter-lsp = %{jupversion}
+Requires: python-jupyter_server >= 1.1.2
+Requires: (python-importlib_metadata >= 4.8.3 if python-base < 3.10)
+Provides: python-jupyter_lsp = %{pyversion}-%{release}
+BuildArch: noarch
# SECTION test requirements
-BuildRequires: %{python_module pytest}
BuildRequires: %{python_module importlib_metadata >= 4.8.3 if %python-base <
3.10}
BuildRequires: %{python_module jupyter_server >= 1.1.2}
BuildRequires: %{python_module pytest-asyncio}
BuildRequires: %{python_module pytest-xdist}
+BuildRequires: %{python_module pytest}
BuildRequires: %{python_module python-lsp-server}
# /SECTION
-BuildRequires: fdupes
-Requires: jupyter-lsp = %{jupversion}
-Requires: python-jupyter_server >= 1.1.2
-Requires: (python-importlib_metadata >= 4.8.3 if python-base < 3.10)
-Provides: python-jupyter_lsp = %{pyversion}-%{release}
-BuildArch: noarch
%python_subpackages
%description
@@ -91,5 +91,5 @@
%files -n jupyter-lsp
%doc README.md
%license LICENSE
-%_jupyter_config %_jupyter_server_confdir/jupyter-lsp-jupyter-server.json
+%{_jupyter_config} %{_jupyter_server_confdir}/jupyter-lsp-jupyter-server.json
++++++ jupyter_lsp-2.2.6.tar.gz -> jupyter_lsp-2.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/PKG-INFO
new/jupyter_lsp-2.3.1/PKG-INFO
--- old/jupyter_lsp-2.2.6/PKG-INFO 2025-07-18 23:28:21.843587600 +0200
+++ new/jupyter_lsp-2.3.1/PKG-INFO 2026-04-01 21:17:16.722508700 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: jupyter-lsp
-Version: 2.2.6
+Version: 2.3.1
Summary: Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server
Author: jupyter-lsp Contributors
Author-email: [email protected]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp/_version.py
new/jupyter_lsp-2.3.1/jupyter_lsp/_version.py
--- old/jupyter_lsp-2.2.6/jupyter_lsp/_version.py 2025-07-18
23:25:11.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/_version.py 2026-04-01
21:13:31.000000000 +0200
@@ -1,4 +1,4 @@
""" single source of truth for jupyter_lsp version
"""
-__version__ = "2.2.6"
+__version__ = "2.3.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp/specs/__init__.py
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/__init__.py
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/__init__.py 2025-07-18
23:25:11.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/__init__.py 2026-04-01
21:13:31.000000000 +0200
@@ -3,12 +3,14 @@
# flake8: noqa: F401
+from .basedpyright import BasedPyrightLanguageServer
from .bash_language_server import BashLanguageServer
from .dockerfile_language_server_nodejs import DockerfileLanguageServerNodeJS
from .javascript_typescript_langserver import
JavascriptTypescriptLanguageServer
from .jedi_language_server import JediLanguageServer
from .julia_language_server import JuliaLanguageServer
from .pyls import PalantirPythonLanguageServer
+from .pyrefly import PyreflyLanguageServer
from .pyright import PyrightLanguageServer
from .python_lsp_server import PythonLSPServer
from .r_languageserver import RLanguageServer
@@ -21,6 +23,7 @@
from .vscode_json_languageserver import VSCodeJSONLanguageServer
from .yaml_language_server import YAMLLanguageServer
+basedpyright = BasedPyrightLanguageServer()
bash = BashLanguageServer()
css = VSCodeCSSLanguageServer()
dockerfile = DockerfileLanguageServerNodeJS()
@@ -31,6 +34,7 @@
md = UnifiedLanguageServer()
py_palantir = PalantirPythonLanguageServer()
py_lsp_server = PythonLSPServer()
+pyrefly = PyreflyLanguageServer()
pyright = PyrightLanguageServer()
r = RLanguageServer()
tex = Texlab()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp/specs/basedpyright.py
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/basedpyright.py
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/basedpyright.py 1970-01-01
01:00:00.000000000 +0100
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/basedpyright.py 2026-04-01
21:13:31.000000000 +0200
@@ -0,0 +1,23 @@
+from .config import load_config_schema
+from .utils import ShellSpec
+
+
+class BasedPyrightLanguageServer(ShellSpec):
+ key = "basedpyright"
+ cmd = "basedpyright-langserver"
+ args = ["--stdio"]
+ languages = ["python"]
+ spec = dict(
+ display_name=key,
+ mime_types=["text/python", "text/x-ipython"],
+ urls=dict(
+ home="https://github.com/DetachHead/basedpyright",
+ issues="https://github.com/DetachHead/basedpyright/issues",
+ ),
+ install=dict(
+ pip="pip install basedpyright",
+ conda="conda install -c conda-forge basedpyright",
+ ),
+ config_schema=load_config_schema(key),
+ requires_documents_on_disk=False,
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/basedpyright.schema.json
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/basedpyright.schema.json
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/basedpyright.schema.json
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/basedpyright.schema.json
2026-04-01 21:13:31.000000000 +0200
@@ -0,0 +1,743 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BasedPyright Language Server Configuration",
+ "description": "BasedPyright based on the Pyright Configuration Schema.
Distributed under MIT License, Copyright (c) Microsoft Corporation.",
+ "allowComments": true,
+ "allowTrailingCommas": true,
+ "type": "object",
+ "properties": {
+ "basedpyright.analysis.autoImportCompletions": {
+ "type": "boolean",
+ "default": true,
+ "description": "Offer auto-import completions.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.autoSearchPaths": {
+ "type": "boolean",
+ "default": true,
+ "description": "Automatically add common search paths like 'src'?",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.extraPaths": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ },
+ "description": "Additional import search resolution paths",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.stubPath": {
+ "type": "string",
+ "default": "typings",
+ "description": "Path to directory containing custom type stub files.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.baselineFile": {
+ "type": "string",
+ "default": "",
+ "description": "Path to the baseline file. Defaults to
`./.basedpyright/baseline.json`",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.diagnosticMode": {
+ "type": "string",
+ "default": "openFilesOnly",
+ "enum": ["openFilesOnly", "workspace"],
+ "enumDescriptions": [
+ "Analyzes and reports errors on only open files.",
+ "Analyzes and reports errors on all files in the workspace."
+ ],
+ "scope": "resource"
+ },
+ "basedpyright.analysis.diagnosticSeverityOverrides": {
+ "type": "object",
+ "description": "Allows a user to override the severity levels for
individual diagnostics. The default value shown for each diagnostic is the
default when \"basedpyright.analysis.typeCheckingMode\" is set to \"standard\".
See
https://docs.basedpyright.com/latest/configuration/config-files/#diagnostic-settings-defaults
for defaults for each type checking mode (\"off\", \"basic\", \"standard\",
\"strict\", and \"all\").",
+ "scope": "resource",
+ "properties": {
+ "reportGeneralTypeIssues": {
+ "type": "string",
+ "description": "Diagnostics for general type inconsistencies,
unsupported operations, argument/parameter mismatches, etc. Covers all of the
basic type-checking rules not covered by other rules. Does not include syntax
errors.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportPropertyTypeMismatch": {
+ "type": "string",
+ "description": "Diagnostics for property whose setter and getter
have mismatched types.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportFunctionMemberAccess": {
+ "type": "string",
+ "description": "Diagnostics for member accesses on functions.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingImports": {
+ "type": "string",
+ "description": "Diagnostics for imports that have no corresponding
imported python file or type stub file.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingModuleSource": {
+ "type": "string",
+ "description": "Diagnostics for imports that have no corresponding
source file. This happens when a type stub is found, but the module source file
was not found, indicating that the code may fail at runtime when using this
execution environment. Type checking will be done using the type stub.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidTypeForm": {
+ "type": "string",
+ "description": "Diagnostics for type expression that uses an invalid
form.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingTypeStubs": {
+ "type": "string",
+ "description": "Diagnostics for imports that have no corresponding
type stub file (either a typeshed file or a custom type stub). The type checker
requires type stubs to do its best job at analysis.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportImportCycles": {
+ "type": "string",
+ "description": "Diagnostics for cyclical import chains. These are
not errors in Python, but they do slow down type analysis and often hint at
architectural layering issues. Generally, they should be avoided.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedImport": {
+ "type": "string",
+ "description": "Diagnostics for an imported symbol that is not
referenced within that file.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedClass": {
+ "type": "string",
+ "description": "Diagnostics for a class with a private name
(starting with an underscore) that is not accessed.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedFunction": {
+ "type": "string",
+ "description": "Diagnostics for a function or method with a private
name (starting with an underscore) that is not accessed.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedVariable": {
+ "type": "string",
+ "description": "Diagnostics for a variable that is not accessed.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportDuplicateImport": {
+ "type": "string",
+ "description": "Diagnostics for an imported symbol or module that is
imported more than once.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportWildcardImportFromLibrary": {
+ "type": "string",
+ "description": "Diagnostics for an wildcard import from an external
library.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAbstractUsage": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to instantiate an
abstract or protocol class or use an abstract method.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportArgumentType": {
+ "type": "string",
+ "description": "Diagnostics for a type incompatibility for an
argument to a call.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAssertTypeFailure": {
+ "type": "string",
+ "description": "Diagnostics for a type incompatibility detected by a
typing.assert_type call.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAssignmentType": {
+ "type": "string",
+ "description": "Diagnostics for type incompatibilities for
assignments.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAttributeAccessIssue": {
+ "type": "string",
+ "description": "Diagnostics for issues involving attribute
accesses.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportCallIssue": {
+ "type": "string",
+ "description": "Diagnostics for issues involving call expressions
and arguments.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInconsistentOverload": {
+ "type": "string",
+ "description": "Diagnostics for inconsistencies between function
overload signatures and implementation.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIndexIssue": {
+ "type": "string",
+ "description": "Diagnostics related to index operations and
expressions.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidTypeArguments": {
+ "type": "string",
+ "description": "Diagnostics for invalid type argument usage.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportNoOverloadImplementation": {
+ "type": "string",
+ "description": "Diagnostics for an overloaded function or method
with a missing implementation.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOperatorIssue": {
+ "type": "string",
+ "description": "Diagnostics for related to unary or binary
operators.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalSubscript": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to subscript (index) a
variable with an Optional type.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalMemberAccess": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to access a member of a
variable with an Optional type.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalCall": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to call a variable with
an Optional type.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalIterable": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to use an Optional type
as an iterable value (e.g. within a for statement).",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalContextManager": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to use an Optional type
as a context manager (as a parameter to a with statement).",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOptionalOperand": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to use an Optional type
as an operand to a binary or unary operator (like '+', '<<', '~').",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportRedeclaration": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to declare the type of a
symbol multiple times.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportReturnType": {
+ "type": "string",
+ "description": "Diagnostics related to function return type
compatibility.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportTypedDictNotRequiredAccess": {
+ "type": "string",
+ "description": "Diagnostics for an attempt to access a non-required
key within a TypedDict without a check for its presence.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUntypedFunctionDecorator": {
+ "type": "string",
+ "description": "Diagnostics for function decorators that have no
type annotations. These obscure the function type, defeating many type analysis
features.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUntypedClassDecorator": {
+ "type": "string",
+ "description": "Diagnostics for class decorators that have no type
annotations. These obscure the class type, defeating many type analysis
features.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUntypedBaseClass": {
+ "type": "string",
+ "description": "Diagnostics for base classes whose type cannot be
determined statically. These obscure the class type, defeating many type
analysis features.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUntypedNamedTuple": {
+ "type": "string",
+ "description": "Diagnostics when “namedtuple” is used rather than
“NamedTuple”. The former contains no type information, whereas the latter
does.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportPrivateUsage": {
+ "type": "string",
+ "description": "Diagnostics for incorrect usage of private or
protected variables or functions. Protected class members begin with a single
underscore _ and can be accessed only by subclasses. Private class members
begin with a double underscore but do not end in a double underscore and can be
accessed only within the declaring class. Variables and functions declared
outside of a class are considered private if their names start with either a
single or double underscore, and they cannot be accessed outside of the
declaring module.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportTypeCommentUsage": {
+ "type": "string",
+ "description": "Diagnostics for usage of deprecated type comments.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportPrivateImportUsage": {
+ "type": "string",
+ "description": "Diagnostics for incorrect usage of symbol imported
from a \"py.typed\" module that is not re-exported from that module.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportConstantRedefinition": {
+ "type": "string",
+ "description": "Diagnostics for attempts to redefine variables whose
names are all-caps with underscores and numerals.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportDeprecated": {
+ "type": "string",
+ "description": "Diagnostics for use of deprecated classes or
functions.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIncompatibleMethodOverride": {
+ "type": "string",
+ "description": "Diagnostics for methods that override a method of
the same name in a base class in an incompatible manner (wrong number of
parameters, incompatible parameter types, or incompatible return type).",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIncompatibleVariableOverride": {
+ "type": "string",
+ "description": "Diagnostics for overrides in subclasses that
redefine a variable in an incompatible way.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInconsistentConstructor": {
+ "type": "string",
+ "description": "Diagnostics for __init__ and __new__ methods whose
signatures are inconsistent.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportOverlappingOverload": {
+ "type": "string",
+ "description": "Diagnostics for function overloads that overlap in
signature and obscure each other or have incompatible return types.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportPossiblyUnboundVariable": {
+ "type": "string",
+ "description": "Diagnostics for the use of variables that may be
unbound on some code paths.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingSuperCall": {
+ "type": "string",
+ "description": "Diagnostics for missing call to parent class for
inherited `__init__` methods.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUninitializedInstanceVariable": {
+ "type": "string",
+ "description": "Diagnostics for instance variables that are not
declared or initialized within class body or `__init__` method.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidStringEscapeSequence": {
+ "type": "string",
+ "description": "Diagnostics for invalid escape sequences used within
string literals. The Python specification indicates that such sequences will
generate a syntax error in future versions.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnknownParameterType": {
+ "type": "string",
+ "description": "Diagnostics for input or return parameters for
functions or methods that have an unknown type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnknownArgumentType": {
+ "type": "string",
+ "description": "Diagnostics for call arguments for functions or
methods that have an unknown type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnknownLambdaType": {
+ "type": "string",
+ "description": "Diagnostics for input or return parameters for
lambdas that have an unknown type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnknownVariableType": {
+ "type": "string",
+ "description": "Diagnostics for variables that have an unknown
type..",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnknownMemberType": {
+ "type": "string",
+ "description": "Diagnostics for class or instance variables that
have an unknown type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingParameterType": {
+ "type": "string",
+ "description": "Diagnostics for parameters that are missing a type
annotation.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMissingTypeArgument": {
+ "type": "string",
+ "description": "Diagnostics for generic class reference with missing
type arguments.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidTypeVarUse": {
+ "type": "string",
+ "description": "Diagnostics for improper use of type variables in a
function signature.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportCallInDefaultInitializer": {
+ "type": "string",
+ "description": "Diagnostics for function calls within a default
value initialization expression. Such calls can mask expensive operations that
are performed at module initialization time.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnnecessaryIsInstance": {
+ "type": "string",
+ "description": "Diagnostics for 'isinstance' or 'issubclass' calls
where the result is statically determined to be always true. Such calls are
often indicative of a programming error.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnnecessaryCast": {
+ "type": "string",
+ "description": "Diagnostics for 'cast' calls that are statically
determined to be unnecessary. Such calls are sometimes indicative of a
programming error.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnnecessaryComparison": {
+ "type": "string",
+ "description": "Diagnostics for '==' and '!=' comparisons that are
statically determined to be unnecessary. Such calls are sometimes indicative of
a programming error.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnnecessaryContains": {
+ "type": "string",
+ "description": "Diagnostics for 'in' operation that is statically
determined to be unnecessary. Such operations are sometimes indicative of a
programming error.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAssertAlwaysTrue": {
+ "type": "string",
+ "description": "Diagnostics for 'assert' statement that will
provably always assert. This can be indicative of a programming error.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportSelfClsParameterName": {
+ "type": "string",
+ "description": "Diagnostics for a missing or misnamed “self”
parameter in instance methods and “cls” parameter in class methods. Instance
methods in metaclasses (classes that derive from “type”) are allowed to use
“cls” for instance methods.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportImplicitStringConcatenation": {
+ "type": "string",
+ "description": "Diagnostics for two or more string literals that
follow each other, indicating an implicit concatenation. This is considered a
bad practice and often masks bugs such as missing commas.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidStubStatement": {
+ "type": "string",
+ "description": "Diagnostics for type stub statements that do not
conform to PEP 484.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIncompleteStub": {
+ "type": "string",
+ "description": "Diagnostics for the use of a module-level
“__getattr__” function, indicating that the stub is incomplete.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUndefinedVariable": {
+ "type": "string",
+ "description": "Diagnostics for undefined variables.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnboundVariable": {
+ "type": "string",
+ "description": "Diagnostics for unbound and possibly unbound
variables.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnhashable": {
+ "type": "string",
+ "description": "Diagnostics for the use of an unhashable object in a
container that requires hashability.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnsupportedDunderAll": {
+ "type": "string",
+ "description": "Diagnostics for unsupported operations performed on
__all__.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedCallResult": {
+ "type": "string",
+ "description": "Diagnostics for call expressions whose results are
not consumed and are not None.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedCoroutine": {
+ "type": "string",
+ "description": "Diagnostics for call expressions that return a
Coroutine and whose results are not consumed.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedExcept": {
+ "type": "string",
+ "description": "Diagnostics for unreachable except clause.",
+ "default": "error",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedExpression": {
+ "type": "string",
+ "description": "Diagnostics for simple expressions whose value is
not used in any way.",
+ "default": "warning",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnnecessaryTypeIgnoreComment": {
+ "type": "string",
+ "description": "Diagnostics for '# type: ignore' comments that have
no effect.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportMatchNotExhaustive": {
+ "type": "string",
+ "description": "Diagnostics for 'match' statements that do not
exhaustively match all possible values.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnreachable": {
+ "type": "string",
+ "description": "Diagnostics for code that is determined by type
analysis to be unreachable.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportShadowedImports": {
+ "type": "string",
+ "description": "Diagnostics for files that are overriding a module
in the stdlib.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportImplicitOverride": {
+ "type": "string",
+ "description": "Diagnostics for overridden methods that do not
include an `@override` decorator.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportAny": {
+ "type": "string",
+ "description": "Diagnostics for expressions with the `Any` type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportExplicitAny": {
+ "type": "string",
+ "description": "Diagnostics for type annotations that use the `Any`
type.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIgnoreCommentWithoutRule": {
+ "type": "string",
+ "description": "Diagnostics for `# type: ignore` and `# pyright:
ignore` comments without specifying a rule.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportPrivateLocalImportUsage": {
+ "type": "string",
+ "description": "Diagnostics for incorrect usage of symbol imported
from a non-\"py.typed\" module that is not re-exported from that module. Should
be used along with `reportNonPrivateImportUsage`.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportImplicitRelativeImport": {
+ "type": "string",
+ "description": "Diagnostics for non-relative imports that do not
specify the full path to the module.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidCast": {
+ "type": "string",
+ "description": "Diagnostics for `cast`s to non-overlapping types.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnsafeMultipleInheritance": {
+ "type": "string",
+ "description": "iagnostics for multiple inheritance where a base
class's constructor may not get called.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnusedParameter": {
+ "type": "string",
+ "description": "Diagnostics for unused function parameters.",
+ "default": "hint",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportImplicitAbstractClass": {
+ "type": "string",
+ "description": "Diagnostics for abstract classes that do not
explicitly extend `ABC`.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportIncompatibleUnannotatedOverride": {
+ "type": "string",
+ "description": "Diagnostics for overrides in subclasses that
redefine a variable without a type annotation in an incompatible way.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportUnannotatedClassAttribute": {
+ "type": "string",
+ "description": "Diagnostics for class variable declarations that do
not have a type annotation, which is required due to performance reasons for
strict validation of subclasses.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ },
+ "reportInvalidAbstractMethod": {
+ "type": "string",
+ "description": "Diagnostics for usages of `@abstractmethod` on a
non-abstract class.",
+ "default": "none",
+ "enum": ["none", "hint", "information", "warning", "error"]
+ }
+ }
+ },
+ "basedpyright.analysis.fileEnumerationTimeout": {
+ "type": "integer",
+ "default": 10,
+ "description": "Timeout (in seconds) for file enumeration operations.
Default is 10 seconds.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.logLevel": {
+ "type": "string",
+ "default": "Information",
+ "description": "Specifies the level of logging for the Output panel",
+ "enum": ["Error", "Warning", "Information", "Trace"]
+ },
+ "basedpyright.analysis.typeCheckingMode": {
+ "type": "string",
+ "default": "standard",
+ "enum": ["off", "basic", "standard", "strict"],
+ "description": "Defines the default rule set for type checking.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.typeshedPaths": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ },
+ "description": "Paths to look for typeshed modules.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.useLibraryCodeForTypes": {
+ "type": "boolean",
+ "default": false,
+ "description": "Use library implementations to extract type information
when type stub is not present.",
+ "scope": "resource"
+ },
+ "basedpyright.disableLanguageServices": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disables type completion, definitions, and references.",
+ "scope": "resource"
+ },
+ "basedpyright.disableTaggedHints": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disable hint diagnostics with special hints for
grayed-out or strike-through text.",
+ "scope": "resource"
+ },
+ "basedpyright.disableOrganizeImports": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disables the “Organize Imports” command.",
+ "scope": "resource"
+ },
+ "basedpyright.disablePullDiagnostics": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disables the use of pull diagnostics.",
+ "scope": "machine"
+ },
+ "basedpyright.pythonPath": {
+ "type": "string",
+ "default": "python",
+ "description": "Path to Python, you can use a custom version of Python.",
+ "scope": "resource"
+ },
+ "basedpyright.venvPath": {
+ "type": "string",
+ "default": "",
+ "description": "Path to folder with a list of Virtual Environments.",
+ "scope": "resource"
+ },
+ "basedpyright.importStrategy": {
+ "type": "string",
+ "default": "fromEnvironment",
+ "enum": ["fromEnvironment", "useBundled"],
+ "description": "Whether to use the version of pyright installed in the
project (recommended) or the one bundled with the extension (not recommended).",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.inlayHints.variableTypes": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether to show inlay hints on assignments to
variables.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.inlayHints.callArgumentNames": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether to show inlay hints on function arguments.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.inlayHints.callArgumentNamesMatching": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether to show inlay hints on function arguments when
the input expression is a variable with the same name as the parameter.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.inlayHints.functionReturnTypes": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether to show inlay hints on function return types.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.inlayHints.genericTypes": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether to show inlay hints on inferred generic types.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.useTypingExtensions": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether to rely on imports from the `typing_extensions`
module when targeting older versions of python that do not include certain
typing features such as the `@override` decorator.",
+ "scope": "resource"
+ },
+ "basedpyright.analysis.autoFormatStrings": {
+ "type": "boolean",
+ "default": true,
+ "description": "Whether to automatically insert an `f` in front of a
string when typing a `{` inside it.",
+ "scope": "resource"
+ }
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pylsp.schema.json
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pylsp.schema.json
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pylsp.schema.json
2025-07-18 23:25:11.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pylsp.schema.json
2026-04-01 21:13:31.000000000 +0200
@@ -1,5 +1,6 @@
{
"title": "Python Language Server Configuration",
+ "description": "Note, a value of `null` means that we do not set a value and
thus use the plugin's default value.",
"type": "object",
"properties": {
"pylsp.configurationSources": {
@@ -8,10 +9,15 @@
"description": "List of configuration sources to use.",
"items": {
"type": "string",
- "enum": ["pycodestyle", "pyflakes"]
+ "enum": ["pycodestyle", "flake8"]
},
"uniqueItems": true
},
+ "pylsp.plugins.autopep8.enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable the plugin (disabling required to use
`yapf`)."
+ },
"pylsp.plugins.flake8.config": {
"type": ["string", "null"],
"default": null,
@@ -30,6 +36,22 @@
},
"description": "List of files or directories to exclude."
},
+ "pylsp.plugins.flake8.extendIgnore": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ },
+ "description": "List of errors and warnings to append to ignore list."
+ },
+ "pylsp.plugins.flake8.extendSelect": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ },
+ "description": "List of errors and warnings to append to select list."
+ },
"pylsp.plugins.flake8.executable": {
"type": "string",
"default": "flake8",
@@ -53,6 +75,11 @@
},
"description": "List of errors and warnings to ignore (or skip)."
},
+ "pylsp.plugins.flake8.maxComplexity": {
+ "type": ["integer", "null"],
+ "default": null,
+ "description": "Maximum allowed complexity threshold."
+ },
"pylsp.plugins.flake8.maxLineLength": {
"type": ["integer", "null"],
"default": null,
@@ -80,6 +107,14 @@
"uniqueItems": true,
"description": "List of errors and warnings to enable."
},
+ "pylsp.plugins.jedi.auto_import_modules": {
+ "type": "array",
+ "default": ["numpy"],
+ "items": {
+ "type": "string"
+ },
+ "description": "List of module names for
jedi.settings.auto_import_modules."
+ },
"pylsp.plugins.jedi.extra_paths": {
"type": "array",
"default": [],
@@ -88,6 +123,11 @@
},
"description": "Define extra paths for jedi.Script."
},
+ "pylsp.plugins.jedi.prioritize_extra_paths": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether to place extra_paths at the beginning (true) or
end (false) of `sys.path`"
+ },
"pylsp.plugins.jedi.env_vars": {
"type": ["object", "null"],
"default": null,
@@ -110,9 +150,14 @@
},
"pylsp.plugins.jedi_completion.include_class_objects": {
"type": "boolean",
- "default": true,
+ "default": false,
"description": "Adds class objects as a separate completion item."
},
+ "pylsp.plugins.jedi_completion.include_function_objects": {
+ "type": "boolean",
+ "default": false,
+ "description": "Adds function objects as a separate completion item."
+ },
"pylsp.plugins.jedi_completion.fuzzy": {
"type": "boolean",
"default": false,
@@ -124,7 +169,7 @@
"description": "Resolve documentation and detail eagerly."
},
"pylsp.plugins.jedi_completion.resolve_at_most": {
- "type": "number",
+ "type": "integer",
"default": 25,
"description": "How many labels and snippets (at most) should be
resolved?"
},
@@ -151,6 +196,11 @@
"default": true,
"description": "If follow_imports is True will decide if it follow
builtin imports."
},
+ "pylsp.plugins.jedi_definition.follow_builtin_definitions": {
+ "type": "boolean",
+ "default": true,
+ "description": "Follow builtin and extension definitions to stubs."
+ },
"pylsp.plugins.jedi_hover.enabled": {
"type": "boolean",
"default": true,
@@ -181,13 +231,18 @@
"default": true,
"description": "If True includes symbols imported from other libraries."
},
+ "pylsp.plugins.jedi_type_definition.enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable the plugin."
+ },
"pylsp.plugins.mccabe.enabled": {
"type": "boolean",
"default": true,
"description": "Enable or disable the plugin."
},
"pylsp.plugins.mccabe.threshold": {
- "type": "number",
+ "type": "integer",
"default": 15,
"description": "The minimum threshold that triggers warnings about
cyclomatic complexity."
},
@@ -229,8 +284,8 @@
"description": "When parsing directories, only check filenames matching
these patterns."
},
"pylsp.plugins.pycodestyle.select": {
- "type": "array",
- "default": [],
+ "type": ["array", "null"],
+ "default": null,
"items": {
"type": "string"
},
@@ -252,7 +307,7 @@
"description": "Hang closing bracket instead of matching indentation of
opening bracket's line."
},
"pylsp.plugins.pycodestyle.maxLineLength": {
- "type": ["number", "null"],
+ "type": ["integer", "null"],
"default": null,
"description": "Set maximum allowed line length."
},
@@ -269,7 +324,7 @@
"pylsp.plugins.pydocstyle.convention": {
"type": ["string", "null"],
"default": null,
- "enum": ["pep257", "numpy", null],
+ "enum": ["pep257", "numpy", "google", null],
"description": "Choose the basic list of checked errors by specifying an
existing convention."
},
"pylsp.plugins.pydocstyle.addIgnore": {
@@ -300,8 +355,8 @@
"description": "Ignore errors and warnings"
},
"pylsp.plugins.pydocstyle.select": {
- "type": "array",
- "default": [],
+ "type": ["array", "null"],
+ "default": null,
"items": {
"type": "string"
},
@@ -342,6 +397,132 @@
"default": null,
"description": "Executable to run pylint with. Enabling this will run
pylint on unsaved files via stdin. Can slow down workflow. Only works with
python3."
},
+ "pylsp.plugins.ruff.enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable the plugin (python-lsp-ruff)."
+ },
+ "pylsp.plugins.ruff.executable": {
+ "type": ["string", "null"],
+ "default": null,
+ "description": "Custom path to the ruff executable."
+ },
+ "pylsp.plugins.ruff.config": {
+ "type": ["string", "null"],
+ "default": null,
+ "description": "Path to a ruff configuration file."
+ },
+ "pylsp.plugins.ruff.exclude": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of file patterns to exclude."
+ },
+ "pylsp.plugins.ruff.extendIgnore": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of additional rule codes to ignore."
+ },
+ "pylsp.plugins.ruff.extendSelect": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of additional rule codes to enable."
+ },
+ "pylsp.plugins.ruff.format": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of rule codes to apply when formatting."
+ },
+ "pylsp.plugins.ruff.formatEnabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable ruff formatting."
+ },
+ "pylsp.plugins.ruff.ignore": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of rule codes to ignore."
+ },
+ "pylsp.plugins.ruff.lineLength": {
+ "type": ["integer", "null"],
+ "default": null,
+ "description": "Set the line-length for length-associated rules and
formatting."
+ },
+ "pylsp.plugins.ruff.perFileIgnores": {
+ "type": ["object", "null"],
+ "default": null,
+ "description": "Map of file pattern to rule codes to ignore."
+ },
+ "pylsp.plugins.ruff.preview": {
+ "type": "boolean",
+ "default": false,
+ "description": "Enable ruff preview mode."
+ },
+ "pylsp.plugins.ruff.select": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of rule codes to enable."
+ },
+ "pylsp.plugins.ruff.severities": {
+ "type": ["object", "null"],
+ "default": null,
+ "description": "Map of rule codes to LSP diagnostic severities."
+ },
+ "pylsp.plugins.ruff.targetVersion": {
+ "type": ["string", "null"],
+ "default": null,
+ "description": "The minimum Python version to target (e.g. 'py310')."
+ },
+ "pylsp.plugins.ruff.unfixable": {
+ "type": ["array", "null"],
+ "default": null,
+ "items": {
+ "type": "string"
+ },
+ "description": "List of rule codes to consider unfixable."
+ },
+ "pylsp.plugins.ruff.unsafeFixes": {
+ "type": "boolean",
+ "default": false,
+ "description": "Allow ruff to apply unsafe fixes."
+ },
+ "pylsp.plugins.rope_autoimport.enabled": {
+ "type": "boolean",
+ "default": false,
+ "description": "Enable or disable autoimport. If false, neither
completions nor code actions are enabled. If true, the respective features can
be enabled or disabled individually."
+ },
+ "pylsp.plugins.rope_autoimport.completions.enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable autoimport completions."
+ },
+ "pylsp.plugins.rope_autoimport.code_actions.enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable autoimport code actions (e.g. for
quick fixes)."
+ },
+ "pylsp.plugins.rope_autoimport.memory": {
+ "type": "boolean",
+ "default": false,
+ "description": "Make the autoimport database memory only. Drastically
increases startup time."
+ },
"pylsp.plugins.rope_completion.enabled": {
"type": "boolean",
"default": false,
@@ -358,18 +539,29 @@
"description": "Enable or disable the plugin."
},
"pylsp.rope.extensionModules": {
- "type": ["null", "string"],
+ "type": ["string", "null"],
"default": null,
"description": "Builtin and c-extension modules that are allowed to be
imported and inspected by rope."
},
"pylsp.rope.ropeFolder": {
- "type": ["null", "array"],
+ "type": ["array", "null"],
"default": null,
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "The name of the folder in which rope stores project
configurations and data. Pass `null` for not using such a folder at all."
+ },
+ "pylsp.signature.formatter": {
+ "type": ["string", "null"],
+ "enum": ["black", "ruff", null],
+ "default": "black",
+ "description": "Formatter to use for reformatting signatures in
docstrings."
+ },
+ "pylsp.signature.line_length": {
+ "type": "integer",
+ "default": 88,
+ "description": "Maximum line length in signatures."
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pyrefly.schema.json
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pyrefly.schema.json
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pyrefly.schema.json
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pyrefly.schema.json
2026-04-01 21:13:31.000000000 +0200
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pyrefly Language Server Configuration",
+ "type": "object",
+ "properties": {
+ "python.pyrefly.disableTypeErrors": {
+ "type": "boolean",
+ "default": false,
+ "description": "If true, pyrefly will not provide typecheck squiggles in
the IDE. To control other IDE services, see
`python.pyrefly.disableLanguageServices`",
+ "scope": "resource"
+ },
+ "python.pyrefly.disableLanguageServices": {
+ "type": "boolean",
+ "default": false,
+ "description": "If true, pyrefly will not provide other IDE services
like completions, hover, definition, etc. To control type errors, see
`python.pyrefly.disableTypeErrors`",
+ "scope": "resource"
+ }
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pyright.schema.json
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pyright.schema.json
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/config/pyright.schema.json
2025-07-18 23:25:11.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/config/pyright.schema.json
2026-04-01 21:13:31.000000000 +0200
@@ -230,7 +230,7 @@
},
"reportOptionalOperand": {
"type": "string",
- "description": "Diagnostics for an attempt to use an Optional type
as an operand to a binary or unary operator (like '+', '==', 'or', 'not').",
+ "description": "Diagnostics for an attempt to use an Optional type
as an operand to a binary or unary operator (like '+', '<<', '~').",
"default": "error",
"enum": ["none", "information", "warning", "error"]
},
@@ -474,6 +474,12 @@
"default": "error",
"enum": ["none", "information", "warning", "error"]
},
+ "reportUnhashable": {
+ "type": "string",
+ "description": "Diagnostics for the use of an unhashable object in a
container that requires hashability.",
+ "default": "error",
+ "enum": ["none", "information", "warning", "error"]
+ },
"reportUnsupportedDunderAll": {
"type": "string",
"description": "Diagnostics for unsupported operations performed on
__all__.",
@@ -516,6 +522,12 @@
"default": "none",
"enum": ["none", "information", "warning", "error"]
},
+ "reportUnreachable": {
+ "type": "string",
+ "description": "Diagnostics for code that is determined by type
analysis to be unreachable.",
+ "default": "none",
+ "enum": ["none", "information", "warning", "error"]
+ },
"reportShadowedImports": {
"type": "string",
"description": "Diagnostics for files that are overriding a module
in the stdlib.",
@@ -538,8 +550,8 @@
},
"python.analysis.typeCheckingMode": {
"type": "string",
- "default": "basic",
- "enum": ["off", "basic", "strict"],
+ "default": "standard",
+ "enum": ["off", "basic", "standard", "strict"],
"description": "Defines the default rule set for type checking.",
"scope": "resource"
},
@@ -576,6 +588,12 @@
"description": "Disables the “Organize Imports” command.",
"scope": "resource"
},
+ "pyright.disablePullDiagnostics": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disables the use of pull diagnostics.",
+ "scope": "machine"
+ },
"python.pythonPath": {
"type": "string",
"default": "python",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp/specs/pyrefly.py
new/jupyter_lsp-2.3.1/jupyter_lsp/specs/pyrefly.py
--- old/jupyter_lsp-2.2.6/jupyter_lsp/specs/pyrefly.py 1970-01-01
01:00:00.000000000 +0100
+++ new/jupyter_lsp-2.3.1/jupyter_lsp/specs/pyrefly.py 2026-04-01
21:13:31.000000000 +0200
@@ -0,0 +1,23 @@
+from .config import load_config_schema
+from .utils import ShellSpec
+
+
+class PyreflyLanguageServer(ShellSpec):
+ key = cmd = "pyrefly"
+ args = ["lsp"]
+ languages = ["python"]
+ spec = dict(
+ display_name="Pyrefly",
+ mime_types=["text/python", "text/x-ipython"],
+ urls=dict(
+ home="https://github.com/facebook/pyrefly",
+ issues="https://github.com/facebook/pyrefly/issues",
+ ),
+ install=dict(
+ pip="pip install pyrefly",
+ uv="uv add pyrefly",
+ conda="conda install -c conda-forge pyrefly",
+ ),
+ config_schema=load_config_schema(key),
+ requires_documents_on_disk=False,
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/PKG-INFO
new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/PKG-INFO
--- old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/PKG-INFO 2025-07-18
23:28:21.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/PKG-INFO 2026-04-01
21:17:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: jupyter-lsp
-Version: 2.2.6
+Version: 2.3.1
Summary: Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server
Author: jupyter-lsp Contributors
Author-email: [email protected]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/SOURCES.txt
new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/SOURCES.txt
--- old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/SOURCES.txt 2025-07-18
23:28:21.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/SOURCES.txt 2026-04-01
21:17:16.000000000 +0200
@@ -28,12 +28,14 @@
jupyter_lsp/schema/__init__.py
jupyter_lsp/schema/schema.json
jupyter_lsp/specs/__init__.py
+jupyter_lsp/specs/basedpyright.py
jupyter_lsp/specs/bash_language_server.py
jupyter_lsp/specs/dockerfile_language_server_nodejs.py
jupyter_lsp/specs/javascript_typescript_langserver.py
jupyter_lsp/specs/jedi_language_server.py
jupyter_lsp/specs/julia_language_server.py
jupyter_lsp/specs/pyls.py
+jupyter_lsp/specs/pyrefly.py
jupyter_lsp/specs/pyright.py
jupyter_lsp/specs/python_lsp_server.py
jupyter_lsp/specs/r_languageserver.py
@@ -47,11 +49,13 @@
jupyter_lsp/specs/vscode_json_languageserver.py
jupyter_lsp/specs/yaml_language_server.py
jupyter_lsp/specs/config/__init__.py
+jupyter_lsp/specs/config/basedpyright.schema.json
jupyter_lsp/specs/config/bash-language-server.schema.json
jupyter_lsp/specs/config/dockerfile-language-server-nodejs.schema.json
jupyter_lsp/specs/config/julia-language-server.schema.json
jupyter_lsp/specs/config/pyls.schema.json
jupyter_lsp/specs/config/pylsp.schema.json
+jupyter_lsp/specs/config/pyrefly.schema.json
jupyter_lsp/specs/config/pyright.schema.json
jupyter_lsp/specs/config/r-languageserver.schema.json
jupyter_lsp/specs/config/sql-language-server.schema.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/entry_points.txt
new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/entry_points.txt
--- old/jupyter_lsp-2.2.6/jupyter_lsp.egg-info/entry_points.txt 2025-07-18
23:28:21.000000000 +0200
+++ new/jupyter_lsp-2.3.1/jupyter_lsp.egg-info/entry_points.txt 2026-04-01
21:17:16.000000000 +0200
@@ -1,9 +1,11 @@
[jupyter_lsp_spec_v1]
+basedpyright = jupyter_lsp.specs:basedpyright
bash-language-server = jupyter_lsp.specs:bash
dockerfile-language-server-nodejs = jupyter_lsp.specs:dockerfile
javascript-typescript-langserver = jupyter_lsp.specs:ts_old
jedi-language-server = jupyter_lsp.specs:jedi
julia-language-server = jupyter_lsp.specs:julia
+pyrefly = jupyter_lsp.specs:pyrefly
pyright = jupyter_lsp.specs:pyright
python-language-server = jupyter_lsp.specs:py_palantir
python-lsp-server = jupyter_lsp.specs:py_lsp_server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_lsp-2.2.6/setup.cfg
new/jupyter_lsp-2.3.1/setup.cfg
--- old/jupyter_lsp-2.2.6/setup.cfg 2025-07-18 23:28:21.843587600 +0200
+++ new/jupyter_lsp-2.3.1/setup.cfg 2026-04-01 21:17:16.723111600 +0200
@@ -37,6 +37,7 @@
[options.entry_points]
jupyter_lsp_spec_v1 =
+ basedpyright = jupyter_lsp.specs:basedpyright
bash-language-server = jupyter_lsp.specs:bash
dockerfile-language-server-nodejs = jupyter_lsp.specs:dockerfile
javascript-typescript-langserver = jupyter_lsp.specs:ts_old
@@ -44,6 +45,7 @@
julia-language-server = jupyter_lsp.specs:julia
python-language-server = jupyter_lsp.specs:py_palantir
python-lsp-server = jupyter_lsp.specs:py_lsp_server
+ pyrefly = jupyter_lsp.specs:pyrefly
pyright = jupyter_lsp.specs:pyright
r-languageserver = jupyter_lsp.specs:r
texlab = jupyter_lsp.specs:tex