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

Issue:
Symbol finder gives error message
## Description

**What steps will reproduce the problem?**

1. Move the Spyder config folder that you have a clean start.
2. Open "Symbol finder" (Ctrl+Alt+P)
3. "Symbol finder" opens.
4. Click somewhere else than the "Symbol finder window".
5. The error message below pops up.

**What is the expected output? What do you see instead?**
Ooening and closing the "Symbol finder window" by clicking somewhere else should close the "Symbol finder window" just normally, instead a error windows pops up.

**Please provide any additional information below**

  File "~/SpyderBug/spyder/spyder/widgets/fileswitcher.py", line 397, in restore_initial_state
    for path in self.initial_cursors:
TypeError: 'NoneType' object is not iterable


## Version and main components

* Spyder Version: 4.0.0.dev0 5083a69fb
* Python Version: 3.6.2
* Qt Versions: 5.7.1, PyQt5 5.8.1 on Linux

## Dependencies
```
pyflakes >=0.6.0 :  1.5.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pygments >=2.0   :  2.2.0 (OK)
pandas >=0.13.1  :  None (NOK)
numpy >=1.7      :  1.12.1 (OK)
sphinx >=0.6.6   :  1.5.2 (OK)
rope >=0.9.4     :  None (NOK)
jedi >=0.9.0     :  0.10.2 (OK)
psutil >=0.3     :  5.0.1 (OK)
nbconvert >=4.0  :  4.2.0 (OK)
sympy >=0.7.3    :  1.1.1 (OK)
cython >=0.21    :  None (NOK)
qtconsole >=4.2.0:  4.2.1 (OK)
IPython >=4.0    :  5.3.0 (OK)
pylint >=0.25    :  1.7.4 (OK)

```



Discussion:
@dalthviz, I think this error was introduced by you. Please take a look at it.

Resolving patch:
diff --git a/spyder/widgets/fileswitcher.py b/spyder/widgets/fileswitcher.py
--- a/spyder/widgets/fileswitcher.py
+++ b/spyder/widgets/fileswitcher.py
@@ -760,6 +760,10 @@ def setup_symbol_list(self, filter_text, current_path):
         # To adjust the delegate layout for KDE themes
         self.list.files_list = False
 
+        # Select edit line when using symbol search initially.
+        # See issue 5661
+        self.edit.setFocus()
+
         # Move selected item in list accordingly
         # NOTE: Doing this is causing two problems:
         # 1. It makes the cursor to auto-jump to the last selected


Test patch:
Repository: spyder-ide/spyder

Issue:
Support for current element highlighting when "." appears in selection
_From [wsu...@gmail.com](https://code.google.com/u/115225145614373588440/) on 2013-11-07T15:15:01Z_

This is a feature request related to the editor. 

The 'current element highlighting' is a very useful and competitive feature. It will only work on singular words, though: selecting the text "args" results in all instances of "args" being highlighted but selecting the text "args.dest" will not highlight instances of "args.dest". 

It would be nice if the highlighter didn't discriminate against ".". 

Spyder 2.2.3, Python 2.7.5 64bits, Qt 4.8.4, PyQt4 (API v2) 4.9.6 on Windows

_Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1634_



Discussion:
_From [ccordoba12](https://code.google.com/u/ccordoba12/) on 2015-01-01T15:53:58Z_

**Labels:** MS-v2.4  


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
@@ -1244,10 +1244,13 @@ def __mark_occurrences(self):
         if not self.supported_language:
             return
 
-        text = self.get_current_word()
+        text = self.get_selected_text().strip()
+        if not text:
+            text = self.get_current_word()
         if text is None:
             return
-        if self.has_selected_text() and self.get_selected_text() != text:
+        if (self.has_selected_text() and
+                self.get_selected_text().strip() != text):
             return
 
         if (self.is_python_like()) and \


Test patch:
Repository: spyder-ide/spyder

Issue:
NameError when running isdefined
## Description

**What steps will reproduce the problem?**
I was deleting a line with backspace (Ubuntu 16.04)

**What is the expected output? What do you see instead?**
A pop came up. But spyder remained open.

**Please provide any additional information below**

  File "/home/ratnadeepb/app/miniconda3/envs/2bytz/lib/python3.6/site-packages/spyder/plugins/help.py", line 92, in validate
    valid = self.is_valid(qstr)
  File "/home/ratnadeepb/app/miniconda3/envs/2bytz/lib/python3.6/site-packages/spyder/plugins/help.py", line 74, in is_valid
    return shell.is_defined(objtxt, force_import=True)
  File "/home/ratnadeepb/app/miniconda3/envs/2bytz/lib/python3.6/site-packages/spyder/widgets/internalshell.py", line 467, in is_defined
    return self.interpreter.is_defined(objtxt, force_import)
  File "/home/ratnadeepb/app/miniconda3/envs/2bytz/lib/python3.6/site-packages/spyder/interpreter.py", line 312, in is_defined
    namespace=self.locals)
  File "/home/ratnadeepb/app/miniconda3/envs/2bytz/lib/python3.6/site-packages/spyder/utils/dochelpers.py", line 305, in isdefined
    module = __import__(base, globals(), namespace)
  File "/home/ratnadeepb/app/_2bytz/python/Forex/scripts/create_tables.py", line 183, in <module>
    for pos in r.response['account']['positions']:
NameError: name 'r' is not defined


## Version and main components

* Spyder Version: 3.2.4 
* Python Version: 3.6.1
* Qt Versions: 5.6.2, PyQt5 5.6 on Linux

## Dependencies
```
pyflakes >=0.6.0 :  1.5.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pygments >=2.0   :  2.2.0 (OK)
pandas >=0.13.1  :  0.20.2 (OK)
numpy >=1.7      :  1.12.1 (OK)
sphinx >=0.6.6   :  1.6.2 (OK)
rope >=0.9.4     :  0.9.4-1 (OK)
jedi >=0.9.0     :  0.10.2 (OK)
psutil >=0.3     :  5.2.2 (OK)
nbconvert >=4.0  :  5.2.1 (OK)
sympy >=0.7.3    :  None (NOK)
cython >=0.21    :  None (NOK)
qtconsole >=4.2.0:  4.3.0 (OK)
IPython >=4.0    :  6.1.0 (OK)
pylint >=0.25    :  1.6.4 (OK)

```



Discussion:
Thanks for reporting. We'll fix this error in our next version.

@dalthviz, an easy one for you. You just need to catch `NameError` in `isdefined`, around line `305`.

Resolving patch:
diff --git a/spyder/utils/dochelpers.py b/spyder/utils/dochelpers.py
--- a/spyder/utils/dochelpers.py
+++ b/spyder/utils/dochelpers.py
@@ -306,7 +306,7 @@ def isdefined(obj, force_import=False, namespace=None):
                 if base not in globals():
                     globals()[base] = module
                 namespace[base] = module
-            except (ImportError, SyntaxError, SystemExit):
+            except (ImportError, NameError, SyntaxError, SystemExit):
                 return False
         else:
             return False


Test patch:
Repository: spyder-ide/spyder

Issue:
Outline explorer doesn't work with second Editor window
I have the Spyder Editor in a separate window from the Consoles and Inspector etc. When I launch Spyder, both windows appear correctly. In the Editor, I then click somewhere in the Outline. Then a second Editor opens in the Consoles window (left side, horizontal split).
Even if I close this second Editor, choose View -> Set layout, the same will happen next time Spyder is launched.

Spyder 2.3.8, Windows 64-bit.



Discussion:
Just to clarify, I prefer using Spider with 2 separate windows: 1) the Editor and Outline, and 2) the Consoles, Variable Explorer and Object Explorer etc. The advantage is that I can switch focus, foreground/background, and maximize these 2 windows independently - and both windows have a menu bar.
But I just noticed, that the View -> Panes -> Editor menu item is NOT selected in the Consoles window. This may explain why Spyder sometimes sees a need to open a new Editor - even though I have one already!

This seems like a bug. We'll have to investigate further to see how to fix this problem.

@ccordoba12 I can reproduce this. I show how below:

![outline_external_editor](https://user-images.githubusercontent.com/10170372/30647801-6984a816-9dea-11e7-96ad-4f2a13af9405.gif)

Resolving patch:
diff --git a/spyder/plugins/editor.py b/spyder/plugins/editor.py
--- a/spyder/plugins/editor.py
+++ b/spyder/plugins/editor.py
@@ -1877,15 +1877,23 @@ def load(self, filenames=None, goto=None, word='', editorwindow=None,
                 filenames = [osp.normpath(fname) for fname in filenames]
             else:
                 return
-            
+
         focus_widget = QApplication.focusWidget()
-        if self.dockwidget and not self.ismaximized and\
-           (not self.dockwidget.isAncestorOf(focus_widget)\
-            and not isinstance(focus_widget, CodeEditor)):
+        if self.editorwindows and not self.dockwidget.isVisible():
+            # We override the editorwindow variable to force a focus on
+            # the editor window instead of the hidden editor dockwidget.
+            # See PR #5742.
+            if editorwindow not in self.editorwindows:
+                editorwindow = self.editorwindows[0]
+            editorwindow.setFocus()
+            editorwindow.raise_()
+        elif (self.dockwidget and not self.ismaximized
+              and not self.dockwidget.isAncestorOf(focus_widget)
+              and not isinstance(focus_widget, CodeEditor)):
             self.dockwidget.setVisible(True)
             self.dockwidget.setFocus()
             self.dockwidget.raise_()
-        
+
         def _convert(fname):
             fname = osp.abspath(encoding.to_unicode_from_fs(fname))
             if os.name == 'nt' and len(fname) >= 2 and fname[1] == ':':


Test patch:
Repository: spyder-ide/spyder

Issue:
TypeError: disconnect() failed between 'sig_prompt_ready' and all its connections
## Description

**What steps will reproduce the problem?**

1. 
2. 
3. 

**What is the expected output? What do you see instead?**


**Please provide any additional information below**

  File "/home/vangjush/.local/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 906, in <lambda>
    clear_variables))
  File "/home/vangjush/.local/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 948, in execute_code
    sw.sig_prompt_ready.disconnect()
TypeError: disconnect() failed between 'sig_prompt_ready' and all its connections
Traceback (most recent call last):
  File "/home/vangjush/.local/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 906, in <lambda>
    clear_variables))
  File "/home/vangjush/.local/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 948, in execute_code
    sw.sig_prompt_ready.disconnect()
TypeError: disconnect() failed between 'sig_prompt_ready' and all its connections


## Version and main components

* Spyder Version: 3.2.4 
* Python Version: 2.7.14
* Qt Versions: 5.9.1, PyQt5 5.7 on Linux

## Dependencies
```
pyflakes >=0.5.0  :  1.6.0 (OK)
pycodestyle >=2.3 :  2.3.1 (OK)
pygments >=2.0    :  2.2.0 (OK)
pandas >=0.13.1   :  0.20.3 (OK)
numpy >=1.7       :  1.13.3 (OK)
sphinx >=0.6.6    :  1.6.5 (OK)
rope >=0.9.4      :  0.10.7 (OK)
jedi >=0.9.0      :  0.11.0 (OK)
psutil >=0.3      :  5.4.0 (OK)
nbconvert >=4.0   :  5.3.1 (OK)
sympy >=0.7.3     :  1.1.1 (OK)
cython >=0.21     :  None (NOK)
qtconsole >=4.2.0 :  4.3.1 (OK)
IPython >=4.0;<6.0:  5.5.0 (OK)
pylint >=0.25     :  1.7.4 (OK)

```



Discussion:
Thanks for reporting. We'll fix this bug in our next release.
@dalthviz, please catch the TypeError and simply `pass` if that happens.

Resolving patch:
diff --git a/spyder/plugins/ipythonconsole.py b/spyder/plugins/ipythonconsole.py
--- a/spyder/plugins/ipythonconsole.py
+++ b/spyder/plugins/ipythonconsole.py
@@ -945,7 +945,11 @@ def execute_code(self, lines, current_client=True, clear_variables=False):
                 if not current_client:
                     # Clear console and reset namespace for
                     # dedicated clients
-                    sw.sig_prompt_ready.disconnect()
+                    # See issue 5748
+                    try:
+                        sw.sig_prompt_ready.disconnect()
+                    except TypeError:
+                        pass
                     sw.silent_execute(
                         'get_ipython().kernel.close_all_mpl_figures()')
                     sw.reset_namespace(warning=False, silent=True)


Test patch:
Repository: spyder-ide/spyder

Issue:
Improve working directory dropdown box
## Description of problem

The dropdown box that lists recent working directories is not very friendly as the width of the box is fixed. If the list of recent working directories is wide, the text is cut off with no way to scroll to the right to see what folder the list items are.

See screenshot below:
![Image of working directory being blocked](https://i.imgur.com/KciVXgX.png)

As you can see, there is no way to tell what is to the right of the cut off text.


## Versions and main components

* Spyder Version: 3.2.4
* Python Version: 3.6
* Qt Version: 7.7.3
* PyQt Version: 5.9
* Operating system:  macOS Sierra (10.12.6)




Discussion:
Thanks for reporting. We'll take a look at it in a future release.
Would adding tooltips to each item of the drop-down list showing the full path be a viable solution to this problem? Something like:

![infobulle_wordir_cb](https://user-images.githubusercontent.com/10170372/32842562-61cd37f0-c9eb-11e7-8331-ddb22ec6ec1c.gif)

Good idea! I think it's a great usability improvement, and better than simply adding a horizontal scrollbar.

@goanpeca, what do you think?
@ccordoba12 yep looks good, go for it @jnsebgosselin :-)
@ccordoba12 and @goanpeca Alright, working on it! :D

Resolving patch:
diff --git a/spyder/widgets/comboboxes.py b/spyder/widgets/comboboxes.py
--- a/spyder/widgets/comboboxes.py
+++ b/spyder/widgets/comboboxes.py
@@ -210,6 +210,7 @@ def __init__(self, parent, adjust_to_contents=False):
         self.setLineEdit(lineedit)
 
         # Signals
+        self.highlighted.connect(self.add_tooltip_to_highlighted_item)
         self.sig_tab_pressed.connect(self.tab_complete)
         self.sig_double_tab_pressed.connect(self.double_tab_complete)
         self.valid.connect(lineedit.update_status)
@@ -282,6 +283,13 @@ def add_current_text(self):
                 text = text[:-1]
         self.add_text(text)
 
+    def add_tooltip_to_highlighted_item(self, index):
+        """
+        Add a tooltip showing the full path of the currently highlighted item
+        of the PathComboBox.
+        """
+        self.setItemData(index, self.itemText(index), Qt.ToolTipRole)
+
 
 class UrlComboBox(PathComboBox):
     """


Test patch:
Repository: spyder-ide/spyder

Issue:
Make arrow-key selection in multiple-option tab-completion dialogs "roll over"
A bit of a long winded name, but essentially a simple fix (hopefully). In tab completion dialogs, when multiple completion options are possible, it would be a huge efficiency boost to have scrolling the list with up or downarrow "roll over" when reaching the end; i.e., when the first item is selected (as when first getting the dialog), pressing "uparrow" will select the last item, and continue up from there with subsequent presses; similarly, "downarrow" on the last item will go back to the beginning. 

With a list of say n=3 items, it means that any item can be reached with at most one keypress vs. two, and with n=5 with at most two keypresses vs. four. In particular, it can save a lot of time being able to hit "up" and go directly to the last item, if you know that's the one you want. 

(Platform: Windows 8.1/10 x64 Pro/Ent, in case it matters...) Thanks!



Discussion:

Resolving patch:
diff --git a/spyder/widgets/sourcecode/base.py b/spyder/widgets/sourcecode/base.py
--- a/spyder/widgets/sourcecode/base.py
+++ b/spyder/widgets/sourcecode/base.py
@@ -174,7 +174,12 @@ def keyPressEvent(self, event):
         elif key in (Qt.Key_Up, Qt.Key_Down, Qt.Key_PageUp, Qt.Key_PageDown,
                      Qt.Key_Home, Qt.Key_End,
                      Qt.Key_CapsLock) and not modifier:
-            QListWidget.keyPressEvent(self, event)
+            if key == Qt.Key_Up and self.currentRow() == 0:
+                self.setCurrentRow(self.count() - 1)
+            elif key == Qt.Key_Down and self.currentRow() == self.count()-1:
+                self.setCurrentRow(0)
+            else:
+                QListWidget.keyPressEvent(self, event)
         elif len(text) or key == Qt.Key_Backspace:
             self.textedit.keyPressEvent(event)
             self.update_current()


Test patch:
Repository: spyder-ide/spyder

Issue:
AttributeError is thrown when trying to get help of an object
## Description

**What steps will reproduce the problem?**

1. when i search ducument in the help pane it has error
2. after i restart spyder the help pane is ok

**What is the expected output? What do you see instead?**


**Please provide any additional information below**

  File "/usr/local/Cellar/anaconda3/lib/python3.6/site-packages/spyder/plugins/help.py", line 92, in validate
    valid = self.is_valid(qstr)
  File "/usr/local/Cellar/anaconda3/lib/python3.6/site-packages/spyder/plugins/help.py", line 74, in is_valid
    return shell.is_defined(objtxt, force_import=True)
  File "/usr/local/Cellar/anaconda3/lib/python3.6/site-packages/spyder/widgets/internalshell.py", line 467, in is_defined
    return self.interpreter.is_defined(objtxt, force_import)
  File "/usr/local/Cellar/anaconda3/lib/python3.6/site-packages/spyder/interpreter.py", line 312, in is_defined
    namespace=self.locals)
  File "/usr/local/Cellar/anaconda3/lib/python3.6/site-packages/spyder/utils/dochelpers.py", line 315, in isdefined
    attr_not_found = not hasattr(eval(base, namespace), attr)
  File "<string>", line 1, in <module>
AttributeError: module 'sympy.integrals.integrals' has no attribute 'integrals'


## Version and main components

* Spyder Version: 3.2.3 
* Python Version: 3.6.2
* Qt Versions: 5.6.2, PyQt5 5.6 on Darwin

## Dependencies
```
pyflakes >=0.6.0 :  1.5.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pygments >=2.0   :  2.2.0 (OK)
pandas >=0.13.1  :  0.20.3 (OK)
numpy >=1.7      :  1.13.1 (OK)
sphinx >=0.6.6   :  1.6.3 (OK)
rope >=0.9.4     :  0.10.5 (OK)
jedi >=0.9.0     :  0.10.2 (OK)
psutil >=0.3     :  5.2.2 (OK)
nbconvert >=4.0  :  5.3.1 (OK)
sympy >=0.7.3    :  1.1.1 (OK)
cython >=0.21    :  0.26.1 (OK)
qtconsole >=4.2.0:  4.3.1 (OK)
IPython >=4.0    :  6.1.0 (OK)
pylint >=0.25    :  1.7.2 (OK)

```



Discussion:
Thank you for posting this bug. Could you share some code you are trying to run? Or provide more details about how to reproduce this error? Do you can reproduce this error yourself?
Thanks for reporting. We'll fix this error in our next release.

@dalthviz, another easy one for you. Please catch `AttributeError` at the right place.
@ccordoba12 How can you already identify the problem. When I try to reproduce the issue I am not able to. 

Resolving patch:
diff --git a/spyder/utils/dochelpers.py b/spyder/utils/dochelpers.py
--- a/spyder/utils/dochelpers.py
+++ b/spyder/utils/dochelpers.py
@@ -313,7 +313,7 @@ def isdefined(obj, force_import=False, namespace=None):
     for attr in attr_list:
         try:
             attr_not_found = not hasattr(eval(base, namespace), attr)
-        except SyntaxError:
+        except (SyntaxError, AttributeError):
             return False
         if attr_not_found:
             if force_import:


Test patch:
Repository: spyder-ide/spyder

Issue:
Newline added to default file
_From [contrebasse](https://code.google.com/u/contrebasse/) on 2013-09-29T02:56:15Z_

Spyder Version:  2.3.0dev
Python Version:  2.7.5
Qt Version    :  4.8.5, PyQt4 (API v2) 4.10.3 on Linux
pyflakes >=0.5.0:  0.7.3 (OK)
pep8 >=0.6      :  1.4.6 (OK)
IPython >=0.13  :  1.1.0 (OK)
rope >=0.9.2    :  0.9.4 (OK)
sphinx >=0.6.6  :  1.1.3 (OK)
matplotlib >=1.0:  1.3.0 (OK)
sympy >=0.7.0   :  0.7.3 (OK)
pylint >=0.25   :  1.0.0 (OK) 

What steps will reproduce the problem?
1. Check the default new file template
   1. Create a new file What is the expected output? What do you see instead? I expect the new file to be the exact replica of the template, but a newline is added at the end. 

Please provide any additional information below

.

_Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1584_



Discussion:

Resolving patch:
diff --git a/spyder/plugins/editor.py b/spyder/plugins/editor.py
--- a/spyder/plugins/editor.py
+++ b/spyder/plugins/editor.py
@@ -431,7 +431,7 @@ def __init__(self, parent, ignore_last_opened_files=False):
             header = shebang + [
                 '# -*- coding: utf-8 -*-',
                 '"""', 'Created on %(date)s', '',
-                '@author: %(username)s', '"""', '']
+                '@author: %(username)s', '"""', '', '']
             encoding.write(os.linesep.join(header), self.TEMPLATE_PATH, 'utf-8')
 
         self.projects = None
diff --git a/spyder/widgets/editor.py b/spyder/widgets/editor.py
--- a/spyder/widgets/editor.py
+++ b/spyder/widgets/editor.py
@@ -2307,7 +2307,8 @@ def new(self, filename, encoding, text, default_content=False):
         finfo = self.create_new_editor(filename, encoding, text,
                                        set_current=False, new=True)
         finfo.editor.set_cursor_position('eof')
-        finfo.editor.insert_text(os.linesep)
+        if not default_content:
+            finfo.editor.insert_text(os.linesep)
         if default_content:
             finfo.default = True
             finfo.editor.document().setModified(False)


Test patch:
Repository: spyder-ide/spyder

Issue:
Missing python doc in help menu
Hi,

maybe it is by purpose that the "python documentation" link is removed from the help-menu as part of removing the python console.

I really miss it, would it be possible to put it back?
It seems like the code to find the .chm is still there.

* Spyder Version: 3.2.4
* OS: Windows



Discussion:
Ok, we'll put it back in our next version.
great, thanks.

Resolving patch:
diff --git a/spyder/app/mainwindow.py b/spyder/app/mainwindow.py
--- a/spyder/app/mainwindow.py
+++ b/spyder/app/mainwindow.py
@@ -233,6 +233,10 @@ class MainWindow(QMainWindow):
     SPYDER_PATH = get_conf_path('path')
     SPYDER_NOT_ACTIVE_PATH = get_conf_path('not_active_path')
     BOOKMARKS = (
+         ('Python2', "https://docs.python.org/2/index.html",
+          _("Python2 documentation")),
+         ('Python3', "https://docs.python.org/3/index.html",
+          _("Python3 documentation")),
          ('numpy', "http://docs.scipy.org/doc/",
           _("Numpy and Scipy documentation")),
          ('matplotlib', "http://matplotlib.sourceforge.net/contents.html",
@@ -243,6 +247,12 @@ class MainWindow(QMainWindow):
          ('PyQt4',
           "http://pyqt.sourceforge.net/Docs/PyQt4/classes.html",
           _("PyQt4 API Reference")),
+         ('PyQt5',
+          "http://pyqt.sourceforge.net/Docs/PyQt5/",
+          _("PyQt5 Reference Guide")),
+         ('PyQt5',
+          "http://pyqt.sourceforge.net/Docs/PyQt5/class_reference.html",
+          _("PyQt5 API Reference")),
          ('winpython', "https://winpython.github.io/",
           _("WinPython"))
                 )
@@ -1055,6 +1065,7 @@ def add_ipm_action(text, path):
                                                         self.BOOKMARKS)
         webres_actions.insert(2, None)
         webres_actions.insert(5, None)
+        webres_actions.insert(8, None)
         add_actions(web_resources, webres_actions)
         self.help_menu_actions.append(web_resources)
         # Qt assistant link


Test patch: