spyder
spyder copied to clipboard
ValueError when sorting data in the Variable Explorer
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)
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!
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: @.***>
@ccordoba12 should we close this or maybe is worthy to further investigate/add a way to handle this kind of error?
I think we should catch the error and handle it appropriately, although I'm not sure how.
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