internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: spyder-ide/spyder

Issue:
Minor bug with empty files: `QTextCursor::setPosition: Position '-1' out of range`
If an empty file is opened with Spyder when spyder is launched, a message is printed:

QTextCursor::setPosition: Position '-1' out of range

This message can be suppressed by changing one line in plugins/editor/widgets/codeeditor.py:
(around line 4973)
        # Text might be after a dot '.'
        if text == '':
            #was: cursor.setPosition(pos - 1, QTextCursor.MoveAnchor)
            cursor.setPosition(**max(0, pos - 1)**, QTextCursor.MoveAnchor)

Hope that helps.
Thank you


Discussion:
Hi @mvillion thank you for the feedback and giving a possible solution to the issue! I think I have been seeing that message around too but didn't know from where that was coming from :)

Would you like to submit a PR with your proposed fix? If that is the case I think this should go to the 5.x branch and you can check the contribution guide for more info about how to do the PR at: https://github.com/spyder-ide/spyder/blob/5.x/CONTRIBUTING.md (if you have any question feel free to ask here)

Otherwise we can try to do the PR with your proposed fix :+1:

Let us know!
Hello,

I am not very familiar with writing PR on github. As this is a very small change, I am hoping that maybe you can fix it while solving another bug?
No problem! I will then submit a PR with your proposed fix and put you as a co-author there :+1: 

Resolving patch:
diff --git a/spyder/plugins/editor/widgets/codeeditor.py b/spyder/plugins/editor/widgets/codeeditor.py
--- a/spyder/plugins/editor/widgets/codeeditor.py
+++ b/spyder/plugins/editor/widgets/codeeditor.py
@@ -4960,10 +4960,10 @@ def do_automatic_completions(self):
         # Correctly handle completions when Backspace key is pressed.
         # We should not show the widget if deleting a space before a word.
         if key == Qt.Key_Backspace:
-            cursor.setPosition(pos - 1, QTextCursor.MoveAnchor)
+            cursor.setPosition(max(0, pos - 1), QTextCursor.MoveAnchor)
             cursor.select(QTextCursor.WordUnderCursor)
             prev_text = to_text_string(cursor.selectedText())
-            cursor.setPosition(pos - 1, QTextCursor.MoveAnchor)
+            cursor.setPosition(max(0, pos - 1), QTextCursor.MoveAnchor)
             cursor.setPosition(pos, QTextCursor.KeepAnchor)
             prev_char = cursor.selectedText()
             if prev_text == '' or prev_char in (u'\u2029', ' ', '\t'):
@@ -4971,7 +4971,7 @@ def do_automatic_completions(self):
 
         # Text might be after a dot '.'
         if text == '':
-            cursor.setPosition(pos - 1, QTextCursor.MoveAnchor)
+            cursor.setPosition(max(0, pos - 1), QTextCursor.MoveAnchor)
             cursor.select(QTextCursor.WordUnderCursor)
             text = to_text_string(cursor.selectedText())
             if text != '.':


Test patch:
Repository: spyder-ide/spyder

Issue:
Incorrect line numbers displayed after line wrapping in the source code editor
I have a very long source code (I am unlikely allowed to share it), where the source code lines keep counting upwards even so the line is wrapped over. The displayed line numbers also end prematurely. When placing the cursor into any line after the wrapping, it shows a different line number than the line number displayed before:
![image](https://user-images.githubusercontent.com/50355793/231104461-9f154a5c-596a-4a9e-acfa-4e7b1b6c3b52.png)
Is there a defect in the skipping of the lines following wrap overs for the line numbers display component?

The info about my Spyder version (Installed and updated with pip starting from a standard Python distribution):
![image](https://user-images.githubusercontent.com/50355793/231104921-7054f499-e335-4c82-957a-cd00f17880b6.png)

_Originally posted by @TBSenseo in https://github.com/spyder-ide/spyder/issues/20308#issuecomment-1502917160_
            


Discussion:
Hi @TBSenseo thank you for the feedback! I think I was able to reproduce this! The wrap lines feature is doing something strange with the line number panels indeed!

We will try to fix this in a future release :+1:

Resolving patch:
diff --git a/spyder/plugins/editor/panels/linenumber.py b/spyder/plugins/editor/panels/linenumber.py
--- a/spyder/plugins/editor/panels/linenumber.py
+++ b/spyder/plugins/editor/panels/linenumber.py
@@ -14,7 +14,9 @@
 
 # Third party imports
 from qtpy.QtCore import QSize, Qt, QPointF
-from qtpy.QtGui import QPainter, QColor, QStaticText, QFontMetricsF
+from qtpy.QtGui import (
+    QColor, QFontMetricsF, QPainter, QStaticText, QTextOption
+)
 
 # Local imports
 from spyder.utils.icon_manager import ima
@@ -88,11 +90,14 @@ def draw_pixmap(xleft, ytop, pixmap):
         if self._margin:
             font = self.editor.font()
             fm = QFontMetricsF(font)
-            if fm.leading() == 0:
+            if (
+                fm.leading() == 0
+                and self.editor.lineWrapMode() == QTextOption.NoWrap
+            ):
                 self.draw_linenumbers(painter)
             else:
-                # The editor doesn't care about leading, so each line
-                # must be drawn independently.
+                # The editor doesn't care about leading or the text is being
+                # wrapped, so each line must be drawn independently.
                 self.draw_linenumbers_slow(painter)
 
         for top, line_number, block in self.editor.visible_blocks:
@@ -201,7 +206,8 @@ def draw_linenumbers_slow(self, painter):
         """
         Slower way (2x) to draw line numbers.
 
-        This is necessary for some fonts.
+        This is necessary for some fonts and when the wrap lines option
+        is active.
         """
         font = self.editor.font()
         font_height = self.editor.fontMetrics().height()


Test patch:
Repository: spyder-ide/spyder

Issue:
Compatibility of Spyder standalone 5.4.4 with Windows Server 2016
I tried to install Spyder standalone 5.4.4 with Windows Server 2016 in a VPS and got the following error.
![Windows 2016 - error](https://github.com/spyder-ide/spyder/assets/54849336/57038566-565c-4e21-b3fa-c014063f97de)



Discussion:
Hi @GastaoDM thank you for the feedback! Just adding some tracebility here: Issue opened following comments from https://github.com/spyder-ide/spyder/issues/19079
@dalthviz and @mrclary, I think we should remove Spyder-terminal from our installers given that it's unmaintained and the inability of disable it right now.

Resolving patch:
diff --git a/installers/macOS/packages.py b/installers/macOS/packages.py
--- a/installers/macOS/packages.py
+++ b/installers/macOS/packages.py
@@ -13,9 +13,6 @@
 they will be placed in Spyder.app/Contents/Resources/lib/python<ver>
 instead.
 
-humanfriendly :
-    spyder-terminal plugin
-    ModuleNotFoundError: No module named 'humanfriendly.tables'
 keyring:
     ModuleNotFoundError: No module named 'keyring.backends.kwallet'
     ModuleNotFoundError: No module named 'keyring.backends.SecretService'
@@ -42,13 +39,10 @@
     python38.zip/spyder/app/mac_stylesheet.qss'
 spyder_kernels :
     No module named spyder_kernels.console.__main__
-spyder_terminal :
-    No module named spyder_terminal.server
 """
 
 # Packages that cannot be in the zip folder
 PACKAGES = [
-    'humanfriendly',
     'keyring',
     'pkg_resources',
     'pygments',
@@ -58,7 +52,6 @@
     'setuptools',
     'spyder',
     'spyder_kernels',
-    'spyder_terminal',
 ]
 
 # Packages to exclude


Test patch:
Repository: spyder-ide/spyder

Issue:
Spyder 6.0 alpha2 release
This is an issue for the new Spyder 6 alpha2 release.

New dependencies:

- [x] `fzf` to provide fuzzy search functionality for the project files in the Switcher. This can only be added to our Conda and Binder requirement files.
- [x] `fcitx-qt5` to add input support for Chinese, Japanese and Korean on Linux (see issue #4120). Again, this package is only available in Conda-forge. 
- [x]  `spyder-kernels` to 3.0b2, pending release.


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -240,7 +240,7 @@ def run(self):
     'rtree>=0.9.7',
     'setuptools>=49.6.0',
     'sphinx>=0.6.6',
-    'spyder-kernels>=3.0.0b1,<3.0.0b2',
+    'spyder-kernels>=3.0.0b2,<3.0.0b3',
     'textdistance>=4.2.0',
     'three-merge>=0.1.1',
     'watchdog>=0.10.3'
@@ -253,7 +253,7 @@ def run(self):
                         if req.split(">")[0] not in reqs_to_loosen]
     install_requires.append('python-lsp-server[all]>=1.7.4,<1.9.0')
     install_requires.append('qtconsole>=5.4.2,<5.6.0')
-    install_requires.append('spyder-kernels>=3.0.0b1,<3.1.0')
+    install_requires.append('spyder-kernels>=3.0.0b2,<3.1.0')
 
 extras_require = {
     'test:platform_system == "Windows"': ['pywin32'],
diff --git a/spyder/dependencies.py b/spyder/dependencies.py
--- a/spyder/dependencies.py
+++ b/spyder/dependencies.py
@@ -66,7 +66,7 @@
 RTREE_REQVER = '>=0.9.7'
 SETUPTOOLS_REQVER = '>=49.6.0'
 SPHINX_REQVER = '>=0.6.6'
-SPYDER_KERNELS_REQVER = '>=3.0.0b1,<3.0.0b2'
+SPYDER_KERNELS_REQVER = '>=3.0.0b2,<3.0.0b3'
 TEXTDISTANCE_REQVER = '>=4.2.0'
 THREE_MERGE_REQVER = '>=0.1.1'
 WATCHDOG_REQVER = '>=0.10.3'


Test patch:
diff --git a/external-deps/spyder-kernels/spyder_kernels/utils/tests/test_iofuncs.py b/external-deps/spyder-kernels/spyder_kernels/utils/tests/test_iofuncs.py
--- a/external-deps/spyder-kernels/spyder_kernels/utils/tests/test_iofuncs.py
+++ b/external-deps/spyder-kernels/spyder_kernels/utils/tests/test_iofuncs.py
@@ -340,13 +340,14 @@ def test_spydata_export(input_namespace, expected_namespace,
                 pass
 
 
-def test_save_load_hdf5_files():
+def test_save_load_hdf5_files(tmp_path):
     """Simple test to check that we can save and load HDF5 files."""
+    h5_file = tmp_path / "test.h5"
     data = {'a' : [1, 2, 3, 4], 'b' : 4.5}
-    iofuncs.save_hdf5(data, "test.h5")
+    iofuncs.save_hdf5(data, h5_file)
 
     expected = ({'a': np.array([1, 2, 3, 4]), 'b': np.array(4.5)}, None)
-    assert repr(iofuncs.load_hdf5("test.h5")) == repr(expected)
+    assert repr(iofuncs.load_hdf5(h5_file)) == repr(expected)
 
 
 def test_load_dicom_files():
Repository: spyder-ide/spyder

Issue:
Disabling one completion and linting provider prevents showing completions
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

## Problem Description

Disabling a completion provider prevents showing completions even if there are still more providers enabled

### What steps reproduce the problem?

1.  Go to `Preferences > Completion and Linting` and uncheck `Enable Fallback Provider`
2.  Try to get completions from the Editor (it doesn't work)
3.  Check again the `Enable Fallback Provider` from the preferences
4.  Completions from the Editor start working again

#### Preview 

![providers](https://github.com/spyder-ide/spyder/assets/16781833/0ae1bbab-9038-4ff3-96d8-d5f9f9da3f84)

### What is the expected output? What do you see instead?

To be able to disable an individual provider without affecting getting completions from other providers

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 5.4.5  (standalone)
* Python version: 3.8.10 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.9
* Operating System: Windows-10-10.0.19045-SP0



Discussion:
I think this is serious enough to warrant delaying 5.5.0 for a few days so we try to fix it.

Resolving patch:
diff --git a/spyder/plugins/completion/plugin.py b/spyder/plugins/completion/plugin.py
--- a/spyder/plugins/completion/plugin.py
+++ b/spyder/plugins/completion/plugin.py
@@ -948,7 +948,15 @@ def start_provider_instance(self, provider_name: str):
         """Start a given provider."""
         provider_info = self.providers[provider_name]
         if provider_info['status'] == self.STOPPED:
-            provider_info['instance'].start()
+            provider_instance = provider_info['instance']
+            provider_instance.start()
+            for language in self.language_status:
+                language_providers = self.language_status[language]
+                language_providers[provider_name] = (
+                    provider_instance.start_completion_services_for_language(
+                        language
+                    )
+                )
 
     def shutdown_provider_instance(self, provider_name: str):
         """Shutdown a given provider."""
@@ -956,6 +964,10 @@ def shutdown_provider_instance(self, provider_name: str):
         if provider_info['status'] == self.RUNNING:
             provider_info['instance'].shutdown()
             provider_info['status'] = self.STOPPED
+            for language in self.language_status:
+                language_providers = self.language_status[language]
+                if provider_name in language_providers:
+                    language_providers[provider_name] = False
 
     # ---------- Methods to create/access graphical elements -----------
     def create_action(self, *args, **kwargs):


Test patch:
Repository: spyder-ide/spyder

Issue:
Bug: Unexpected type 'float' when clicking in Spyder preferences
## Problem Description



### What steps reproduce the problem?

1. Just click on preferences in the Spyder toolbar.

### Paste Traceback/Error Below (if applicable)
Traceback (most recent call last):

**File "C:\\Users\\dan-s\\miniconda3\\envs\\ciermag-develop\\Lib\\site-packages\\spyder\\widgets\\helperwidgets.py", line 216, in sizeHint**

return QSize(doc.idealWidth(), doc.size().height())

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TypeError: arguments did not match any overloaded call:

QSize(): too many arguments

QSize(w: int, h: int): argument 1 has unexpected type 'float'

QSize(a0: QSize): argument 1 has unexpected type 'float'


## Versions

Spyder version: 5.5.0
Python version: Python 3.12
Qt version: n/a
PyQt version: PyQt5= 5.15.10
Operating System name/version: Windows10 and Ubuntu



Discussion:
```
One of the possible solutions implemented is the code below, where the height and width values are 
converted to integers. I can submit as a PR.

    def sizeHint(self, option, index):
        options = QStyleOptionViewItem(option)
        self.initStyleOption(options, index)

        doc = QTextDocument()
        doc.setHtml(options.text)
        doc.setTextWidth(options.rect.width())

        return QSize(int(doc.idealWidth()), int(doc.size().height()))
```

Resolving patch:
diff --git a/spyder/widgets/helperwidgets.py b/spyder/widgets/helperwidgets.py
--- a/spyder/widgets/helperwidgets.py
+++ b/spyder/widgets/helperwidgets.py
@@ -213,7 +213,7 @@ def sizeHint(self, option, index):
         doc.setHtml(options.text)
         doc.setTextWidth(options.rect.width())
 
-        return QSize(doc.idealWidth(), doc.size().height())
+        return QSize(int(doc.idealWidth()), int(doc.size().height()))
 
 
 class IconLineEdit(QLineEdit):


Test patch:
Repository: spyder-ide/spyder

Issue:
Profiler pane not showing results
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

## Problem Description

Unable to see code profiling results. Also seems like there some sort of widget under the Profiler pane file combobox selector.

### What steps reproduce the problem?

1. Try to profile a file via the menu (`Run > Run profiler`)

### What is the expected output? What do you see instead?

Expected to see the profiler result as a tree instead the empty pane message persists

### Behavior preview:

![profiler](https://github.com/spyder-ide/spyder/assets/16781833/2ffcfa49-302c-42b9-8479-1a48408398d2)

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 6.0.0.dev0 0d4f2045e (conda)
* Python version: 3.9.17 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.7
* Operating System: Windows-10-10.0.19045-SP0



Profiler pane not showing results
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

## Problem Description

Unable to see code profiling results. Also seems like there some sort of widget under the Profiler pane file combobox selector.

### What steps reproduce the problem?

1. Try to profile a file via the menu (`Run > Run profiler`)

### What is the expected output? What do you see instead?

Expected to see the profiler result as a tree instead the empty pane message persists

### Behavior preview:

![profiler](https://github.com/spyder-ide/spyder/assets/16781833/2ffcfa49-302c-42b9-8479-1a48408398d2)

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 6.0.0.dev0 0d4f2045e (conda)
* Python version: 3.9.17 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.7
* Operating System: Windows-10-10.0.19045-SP0





Discussion:
Note: Seems like PR #21555 fixed the UI issue releated with the combobox
Note: Seems like PR #21555 fixed the UI issue releated with the combobox

Resolving patch:
diff --git a/spyder/plugins/profiler/widgets/main_widget.py b/spyder/plugins/profiler/widgets/main_widget.py
--- a/spyder/plugins/profiler/widgets/main_widget.py
+++ b/spyder/plugins/profiler/widgets/main_widget.py
@@ -618,6 +618,7 @@ def show_data(self, justanalyzed=False):
         self.datelabel.setText(_('Sorting data, please wait...'))
         QApplication.processEvents()
 
+        self.stacked_widget.setCurrentWidget(self.datatree)
         self.datatree.load_data(self.DATAPATH)
         self.datatree.show_tree()
 


Test patch:
Repository: spyder-ide/spyder

Issue:
Icons for "Remove plots" and "Remove all plots" inconsistent
## Problem Description

The icons for "Remove plots" (a rubbish bin) and "Remove all plots" (two diagonal crosses) in the Plots pane are inconsistent, at least to me; see the image below. I think we need to either replace the first icon by one diagonal cross (like the icon for "Close file" in the Files menu) or the second icon by two rubbish bins (like the icon for "Remove all variables"). Personally, I find the rubbish bin icon slightly more appropriate.

![plots](https://github.com/spyder-ide/spyder/assets/7941918/9e4e6259-5e25-4606-bdd7-d61a8e5fd254)

### What steps reproduce the problem?

1. Open Spyder
2. Look at Plots pane
3. Observe the issue

## Versions

* Spyder version: 6.0.0.dev0 ee062e4b5 (conda), but the same icons appear in the docs for Spyder 5
* Python version: 3.10.12 64-bit
* Qt version: 5.15.6
* PyQt5 version: 5.15.7
* Operating System: Linux-3.10.0-1160.95.1.el7.x86_64-x86_64-with-glibc2.17


Discussion:
> The icons for "Remove plots" (a rubbish bin) and "Remove all plots" (two diagonal crosses) in the Plots pane are inconsistent

Agreed.

>  I find the rubbish bin icon slightly more appropriate.

I think so too.

@conradolandia, what do you think?
I also agree, I will work on those next week. 
Don't worry, we already have an icon for that. So, @jitseniesen can simply change it.
Ok, good!

Resolving patch:
diff --git a/spyder/plugins/plots/widgets/main_widget.py b/spyder/plugins/plots/widgets/main_widget.py
--- a/spyder/plugins/plots/widgets/main_widget.py
+++ b/spyder/plugins/plots/widgets/main_widget.py
@@ -154,7 +154,7 @@ def setup(self):
             name=PlotsWidgetActions.CloseAll,
             text=_("Remove all plots"),
             tip=_("Remove all plots"),
-            icon=self.create_icon('filecloseall'),
+            icon=self.create_icon('editdelete'),
             triggered=self.remove_all_plots,
             register_shortcut=True,
         )


Test patch:
Repository: spyder-ide/spyder

Issue:
Standalone installers for 6.0 alpha4 are incorrectly named and Mac installer failed to build
* I left the assets for Windows and Linux as they were uploaded by Github actions, instead of downloading, renaming and uploading them again myself with the right names.
* About the Mac installer you can see this: https://github.com/spyder-ide/spyder/actions/runs/7824722718/job/21348477707
* I hid the section about the installers in the release message until this is solved.

@mrclary, please take a look at this one.


Discussion:

Resolving patch:
diff --git a/installers-conda/build_conda_pkgs.py b/installers-conda/build_conda_pkgs.py
--- a/installers-conda/build_conda_pkgs.py
+++ b/installers-conda/build_conda_pkgs.py
@@ -212,6 +212,11 @@ def _patch_source(self):
         )
         file.write_text(file_text)
 
+        self.repo.git.diff(
+            output=(self._fdstk_path / "recipe" / "version.patch").as_posix()
+        )
+        self.repo.git.stash()
+
     def _patch_meta(self, meta):
         # Get current Spyder requirements
         yaml = YAML()
@@ -239,6 +244,10 @@ def _patch_meta(self, meta):
         meta = re.sub(r'^(requirements:\n(.*\n)+  run:\n)(    .*\n)+',
                       rf'\g<1>    - {cr_string}\n', meta, flags=re.MULTILINE)
 
+        # Add version patch
+        meta = re.sub(r'^(source:\n(.*\n)*  patches:\n)',
+                      r'\g<1>    - version.patch\n',
+                      meta, flags=re.MULTILINE)
         return meta
 
 


Test patch:
Repository: spyder-ide/spyder

Issue:
Release 5.5.2
This is an issue to track changes regarding dependencies done for the new Spyder 5.5.2 release.

* New/updated dependencies:
    * Spyder-kernels `>=2.5.1,<2.6.0`
    * qtawesome `>=1.2.1,<1.3.0` (try to decrease chance of issues related with operations over font files and QtAwesome. Actual issue at https://github.com/spyder-ide/qtawesome/issues/236) 
* Remove pin on IPykernel (see #21834).


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -237,13 +237,13 @@ def run(self):
     'pyzmq>=24.0.0',
     'qdarkstyle>=3.2.0,<3.3.0',
     'qstylizer>=0.2.2',
-    'qtawesome>=1.2.1',
+    'qtawesome>=1.2.1,<1.3.0',
     'qtconsole>=5.5.1,<5.6.0',
     'qtpy>=2.1.0',
     'rtree>=0.9.7',
     'setuptools>=49.6.0',
     'sphinx>=0.6.6',
-    'spyder-kernels>=2.5.0,<2.6.0',
+    'spyder-kernels>=2.5.1,<2.6.0',
     'textdistance>=4.2.0',
     'three-merge>=0.1.1',
     'watchdog>=0.10.3'
@@ -256,7 +256,7 @@ def run(self):
                         if req.split(">")[0] not in reqs_to_loosen]
     install_requires.append('python-lsp-server[all]>=1.10.0,<1.12.0')
     install_requires.append('qtconsole>=5.5.1,<5.7.0')
-    install_requires.append('spyder-kernels>=2.5.0,<2.7.0')
+    install_requires.append('spyder-kernels>=2.5.1,<2.7.0')
 
 extras_require = {
     'test:platform_system == "Windows"': ['pywin32'],
diff --git a/spyder/dependencies.py b/spyder/dependencies.py
--- a/spyder/dependencies.py
+++ b/spyder/dependencies.py
@@ -65,13 +65,13 @@
 PYZMQ_REQVER = '>=24.0.0'
 QDARKSTYLE_REQVER = '>=3.2.0,<3.3.0'
 QSTYLIZER_REQVER = '>=0.2.2'
-QTAWESOME_REQVER = '>=1.2.1'
+QTAWESOME_REQVER = '>=1.2.1,<1.3.0'
 QTCONSOLE_REQVER = '>=5.5.1,<5.6.0'
 QTPY_REQVER = '>=2.1.0'
 RTREE_REQVER = '>=0.9.7'
 SETUPTOOLS_REQVER = '>=49.6.0'
 SPHINX_REQVER = '>=0.6.6'
-SPYDER_KERNELS_REQVER = '>=2.5.0,<2.6.0'
+SPYDER_KERNELS_REQVER = '>=2.5.1,<2.6.0'
 TEXTDISTANCE_REQVER = '>=4.2.0'
 THREE_MERGE_REQVER = '>=0.1.1'
 # None for pynsist install for now


Test patch: