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

Reply via email to