spyder icon indicating copy to clipboard operation
spyder copied to clipboard

ValueError when sorting data in the Variable Explorer

Open Pavun-KumarCH opened this issue 1 year ago • 5 comments

Description

What steps will reproduce the problem?

glove_dir = '/Artifical Intelligence/RNN/Datasets_RNN/glove.6B' embedding_index = {} f = open(os.path.join(glove_dir, 'glove.6B.100d.txt'), encoding = 'utf8') for line in f: values = line.split() word = values[0] coefs = np.asarray(values[1:], dtype = 'float32') embedding_index[word] = coefs f.close()

Traceback

Traceback (most recent call last):
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/plugins/variableexplorer/widgets/collectionsdelegate.py", line 171, in createEditor
    editor.setup(value, key, icon=self.parent().windowIcon(),
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 1486, in setup
    self.widget = CollectionsEditorWidget(self, self.data_copy,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 1418, in __init__
    self.editor = CollectionsEditorTableView(self, data, readonly,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 1288, in __init__
    self.source_model = CollectionsModelClass(
                        ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 156, in __init__
    self.set_data(data)
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 186, in set_data
    self.keys = sorted(list(data.keys()), key=natsort)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 85, in natsort
    x = [int(t) if t.isdigit() else t.lower() for t in re.split('([0-9]+)', s)]
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pavankumar/anaconda3/lib/python3.11/site-packages/spyder/widgets/collectionseditor.py", line 85, in <listcomp>
    x = [int(t) if t.isdigit() else t.lower() for t in re.split('([0-9]+)', s)]
         ^^^^^^
ValueError: invalid literal for int() with base 10: '₂'

Versions

  • Spyder version: 5.4.3 (conda)
  • Python version: 3.11.5 64-bit
  • Qt version: 5.15.2
  • PyQt5 version: 5.15.10
  • Operating System: Darwin 23.5.0

Dependencies

# Mandatory:
applaunchservices >=0.3.0                        :  0.3.0 (OK)
atomicwrites >=1.2.0                             :  1.4.0 (OK)
chardet >=2.0.0                                  :  4.0.0 (OK)
cloudpickle >=0.5.0                              :  2.2.1 (OK)
cookiecutter >=1.6.0                             :  2.5.0 (OK)
diff_match_patch >=20181111                      :  20200713 (OK)
intervaltree >=3.0.2                             :  3.1.0 (OK)
IPython >=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0 :  8.20.0 (OK)
jedi >=0.17.2,<0.19.0                            :  0.18.1 (OK)
jellyfish >=0.7                                  :  1.0.1 (OK)
jsonschema >=3.2.0                               :  4.19.2 (OK)
keyring >=17.0.0                                 :  23.13.1 (OK)
nbconvert >=4.0                                  :  7.10.0 (OK)
numpydoc >=0.6.0                                 :  1.5.0 (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.0 (OK)
pygments >=2.0                                   :  2.15.1 (OK)
pylint >=2.5.0,<3.0                              :  2.16.2 (OK)
pylint_venv >=2.1.1                              :  2.3.0 (OK)
pyls_spyder >=0.4.0                              :  0.4.0 (OK)
pylsp >=1.7.2,<1.8.0                             :  1.7.2 (OK)
pylsp_black >=1.2.0                              :  1.2.1 (OK)
qdarkstyle >=3.0.2,<3.2.0                        :  3.0.2 (OK)
qstylizer >=0.2.2                                :  0.2.2 (OK)
qtawesome >=1.2.1                                :  1.2.2 (OK)
qtconsole >=5.4.2,<5.5.0                         :  5.4.2 (OK)
qtpy >=2.1.0                                     :  2.4.1 (OK)
rtree >=0.9.7                                    :  1.0.1 (OK)
setuptools >=49.6.0                              :  68.0.0 (OK)
sphinx >=0.6.6                                   :  5.0.2 (OK)
spyder_kernels >=2.4.3,<2.5.0                    :  2.4.4 (OK)
textdistance >=4.2.0                             :  4.2.1 (OK)
three_merge >=0.1.1                              :  0.1.1 (OK)
watchdog >=0.10.3                                :  2.1.6 (OK)
zmq >=22.1.0                                     :  25.1.0 (OK)

# Optional:
cython >=0.21                                    :  3.0.9 (OK)
matplotlib >=3.0.0                               :  3.7.4 (OK)
numpy >=1.7                                      :  1.26.2 (OK)
pandas >=1.1.1                                   :  2.2.2 (OK)
scipy >=0.17.0                                   :  1.11.4 (OK)
sympy >=0.7.3                                    :  1.11.1 (OK)

Pavun-KumarCH avatar Jul 21 '24 11:07 Pavun-KumarCH

Hi @Pavun-KumarCH thank you for the feedback! Seems like inside your data a 2 is being represented with a '₂' which generates a ValueError over the logic used to parse variables. Did the error appear when trying to see or maybe edit some variable generated by your code? Could it be possible for you to share a self-contained example that could help us reproduce this locally (the code you posted over the OP requires some data in a specific directory structure)?

Any further info to help us better understand this is greatly appreciated. Let us know!

dalthviz avatar Jul 23 '24 19:07 dalthviz

It was Fixed! Thank You

On Wed, Jul 24, 2024 at 12:50 AM Daniel Althviz Moré < @.***> wrote:

Hi @Pavun-KumarCH https://github.com/Pavun-KumarCH thank you for the feedback! Seems like inside your data a 2 is being represented with a '₂' which generates a ValueError over the logic used to parse variables. Did the error appear when trying to see or maybe edit some variable generated by your code? Could it be possible for you to share a self-contained example that could help us reproduce this locally (the code you posted over the OP requires some data in a specific directory structure)?

Any further info to help us better understand this is greatly appreciated. Let us know!

— Reply to this email directly, view it on GitHub https://github.com/spyder-ide/spyder/issues/22275#issuecomment-2246109490, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFIYH7QADAPBQQNBUWIIBNLZN2UGXAVCNFSM6AAAAABLGZAR7GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBWGEYDSNBZGA . You are receiving this because you were mentioned.Message ID: @.***>

Pavun-KumarCH avatar Jul 24 '24 17:07 Pavun-KumarCH

@ccordoba12 should we close this or maybe is worthy to further investigate/add a way to handle this kind of error?

dalthviz avatar Jul 25 '24 23:07 dalthviz

I think we should catch the error and handle it appropriately, although I'm not sure how.

ccordoba12 avatar Jul 26 '24 00:07 ccordoba12

Since still no handling has been implement for this kind of error (variables could end up with data that can trigger an error when trying to construct a graphical representation of them) I'm reopening this. Please don't close it @Pavun-KumarCH

dalthviz avatar Jul 31 '24 20:07 dalthviz