Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Editor error while closing a project #21468

Closed
dalthviz opened this issue Oct 27, 2023 · 4 comments · Fixed by #21918
Closed

Editor error while closing a project #21468

dalthviz opened this issue Oct 27, 2023 · 4 comments · Fixed by #21918

Comments

@dalthviz
Copy link
Member

Description

What steps will reproduce the problem?

  1. Close a project that has been open for a while (at least a couple of hours).

Not sure if that would be enough to trigger the error 🤔

Also, seems like it has been reported before: #15722 and #15668 (comment)

Traceback

Traceback (most recent call last):
  File "C:\Program Files\Spyder\pkgs\spyder\plugins\editor\panels\debugger.py", line 89, in paintEvent
    painter.fillRect(event.rect(), self.editor.sideareas_color)
TypeError: arguments did not match any overloaded call:
  fillRect(self, a0: QRectF, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRectF, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, c: Qt.GlobalColor): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, style: Qt.BrushStyle): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, preset: QGradient.Preset): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'
Traceback (most recent call last):
  File "C:\Program Files\Spyder\pkgs\spyder\plugins\editor\panels\linenumber.py", line 75, in paintEvent
    painter.fillRect(event.rect(), self.editor.sideareas_color)
TypeError: arguments did not match any overloaded call:
  fillRect(self, a0: QRectF, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRectF, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, c: Qt.GlobalColor): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, style: Qt.BrushStyle): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, preset: QGradient.Preset): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'
Traceback (most recent call last):
  File "C:\Program Files\Spyder\pkgs\spyder\plugins\editor\panels\scrollflag.py", line 190, in paintEvent
    painter.fillRect(event.rect(), self.editor.sideareas_color)
TypeError: arguments did not match any overloaded call:
  fillRect(self, a0: QRectF, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, a1: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRectF, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, a0: QRect, color: Union[QColor, Qt.GlobalColor, QGradient]): argument 2 has unexpected type 'NoneType'
  fillRect(self, x: int, y: int, w: int, h: int, b: Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, c: Qt.GlobalColor): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, c: Qt.GlobalColor): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, style: Qt.BrushStyle): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, style: Qt.BrushStyle): argument 1 has unexpected type 'QRect'
  fillRect(self, x: int, y: int, w: int, h: int, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'
  fillRect(self, r: QRect, preset: QGradient.Preset): argument 2 has unexpected type 'NoneType'
  fillRect(self, r: QRectF, preset: QGradient.Preset): argument 1 has unexpected type 'QRect'

Versions

  • 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

Dependencies

# Mandatory:
atomicwrites >=1.2.0                                                        :  1.4.1 (OK)
chardet >=2.0.0                                                             :  5.2.0 (OK)
cloudpickle >=0.5.0                                                         :  2.2.1 (OK)
cookiecutter >=1.6.0                                                        :  2.3.0 (OK)
diff_match_patch >=20181111                                                 :  20230430 (OK)
intervaltree                                                                :  None (OK)
IPython >=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0,!=8.11.0,!=8.12.0,!=8.12.1 :  8.12.2 (OK)
jedi >=0.17.2,<0.19.0                                                       :  0.18.2 (OK)
jellyfish >=0.7                                                             :  1.0.0 (OK)
jsonschema >=3.2.0                                                          :  4.19.0 (OK)
keyring >=17.0.0                                                            :  24.2.0 (OK)
nbconvert >=4.0                                                             :  7.8.0 (OK)
numpydoc >=0.6.0                                                            :  1.5.0 (OK)
paramiko >=2.4.0                                                            :  3.3.1 (OK)
parso >=0.7.0,<0.9.0                                                        :  0.8.3 (OK)
pexpect >=4.4.0                                                             :  4.8.0 (OK)
pickleshare >=0.4                                                           :  0.7.5 (OK)
psutil >=5.3                                                                :  5.9.5 (OK)
pygments >=2.0                                                              :  2.16.1 (OK)
pylint >=2.5.0,<3.0                                                         :  2.17.5 (OK)
pylint_venv >=3.0.2                                                         :  3.0.2 (OK)
pyls_spyder >=0.4.0                                                         :  0.4.0 (OK)
pylsp >=1.7.4,<1.8.0                                                        :  1.7.4 (OK)
pylsp_black >=1.2.0,<3.0.0                                                  :  1.3.0 (OK)
qdarkstyle >=3.0.2,<3.2.0                                                   :  3.1 (OK)
qstylizer >=0.2.2                                                           :  0.2.2 (OK)
qtawesome >=1.2.1                                                           :  1.2.3 (OK)
qtconsole >=5.4.2,<5.5.0                                                    :  5.4.3 (OK)
qtpy >=2.1.0                                                                :  2.4.0 (OK)
rtree >=0.9.7                                                               :  1.0.1 (OK)
setuptools >=49.6.0                                                         :  68.1.2 (OK)
sphinx >=0.6.6                                                              :  7.1.2 (OK)
spyder_kernels >=2.4.4,<2.5.0                                               :  2.4.4 (OK)
textdistance >=4.2.0                                                        :  4.5.0 (OK)
three_merge >=0.1.1                                                         :  0.1.1 (OK)
watchdog                                                                    :  3.0.0 (OK)
zmq >=22.1.0                                                                :  25.1.1 (OK)

# Optional:
cython >=0.21                                                               :  3.0.2 (OK)
matplotlib >=3.0.0                                                          :  3.7.2 (OK)
numpy >=1.7                                                                 :  1.24.4 (OK)
pandas >=1.1.1                                                              :  2.0.3 (OK)
scipy >=0.17.0                                                              :  1.10.1 (OK)
sympy >=0.7.3                                                               :  1.12 (OK)

# Spyder plugins:
spyder_terminal.terminalplugin 1.2.2                                        :  1.2.2 (OK)
@ccordoba12
Copy link
Member

The problem with this one is that it seems hard to reproduce. Any ideas on how to fix it?

@dalthviz
Copy link
Member Author

dalthviz commented Nov 2, 2023

Seems like self.editor.sideareas_color is None for the error to happen so maybe a validation could help? Although, it could be nice to understand why self.editor.sideareas_color is getting a None value 🤔

@ccordoba12
Copy link
Member

Seems like self.editor.sideareas_color is None for the error to happen

Yeah, it seems that's exactly the problem! I couldn't tell that from the traceback.

so maybe a validation could help?

Agreed. Please do that for alpha3. Then you'll be to test the fix on your end and see if it really helps.

Although, it could be nice to understand why self.editor.sideareas_color is getting a None value 🤔

Agreed too, but if things work as expected after adding the validation you mentioned, then at least we'll no longer have to deal with this bug.

@ccordoba12
Copy link
Member

@dalthviz, could you address this one for alpha5? It seems relatively simple to fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants