Spyder: Several errors with code snippets

Created on 17 Sep 2019  Â·  4Comments  Â·  Source: spyder-ide/spyder

Description

What steps will reproduce the problem?

e.g. when typing pd.cont
it completes the function as:
pd.concat(objs)⌷

Traceback

  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 194, in _on_key_pressed
    self._process_text(text)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 204, in _process_text
    self.delete_text(line, column)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 240, in delete_text
    self._delete_token(delete_token, text_parent, line, column)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 263, in _delete_token
    if left_node.name in MERGE_ALLOWED:
AttributeError: 'PlaceholderNode' object has no attribute 'name'

Versions

  • Spyder version: 4.0.0b5
  • Python version: 3.7.3
  • Qt version: 5.9.7
  • PyQt5 version: 5.9.2
  • Operating System: Linux 4.15.0-60-generic

Dependencies

cloudpickle >=0.5.0          :  1.2.1 (OK)
pygments >=2.0               :  2.4.2 (OK)
qtconsole >=4.5.5            :  4.5.5 (OK)
nbconvert >=4.0              :  5.5.0 (OK)
sphinx >=0.6.6               :  2.1.2 (OK)
pylint >=0.25                :  2.3.1 (OK)
psutil >=0.3                 :  5.6.3 (OK)
qtawesome >=0.5.7            :  0.5.7 (OK)
qtpy >=1.5.0                 :  1.8.0 (OK)
pickleshare >=0.4            :  0.7.5 (OK)
zmq >=17                     :  18.0.2 (OK)
chardet >=2.0.0              :  3.0.4 (OK)
numpydoc >=0.6.0             :  0.9.1 (OK)
spyder_kernels >=1.5.0;<2.0.0:  1.5.0 (OK)
qdarkstyle >=2.7             :  2.7 (OK)
atomicwrites >=1.2.0         :  1.3.0 (OK)
diff_match_patch >=20181111  :  20181111 (OK)
watchdog                     :  None (OK)
keyring                      :  None (OK)
pexpect >=4.4.0              :  4.7.0 (OK)
pympler                      :  None (OK)
sympy >=0.7.3                :  None (NOK)
cython >=0.21                :  None (NOK)
IPython >=4.0                :  7.6.1 (OK)
matplotlib >=2.0.0           :  3.1.1 (OK)
pandas >=0.13.1              :  0.24.2 (OK)
numpy >=1.7                  :  1.16.4 (OK)
scipy >=0.17.0               :  1.3.0 (OK)
pyls >=0.28.2;<0.29.0        :  0.28.3 (OK)
xdg >=0.26                   :  0.26 (OK)
rtree >=0.8.3                :  0.8.3 (OK)
Code Completion Bug

All 4 comments

Thanks for reporting. I was able to reproduce your error at some point but now I can't.

@andfoy, I'm getting the following error:

  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 202, in _process_text
    self.insert_text(text, line, column)
  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 327, in insert_text
    if node.name == 'EPSILON':
AttributeError: 'NoneType' object has no attribute 'name'

after entering a comma next to the cc character in this screenshot:

Selección_016

Some other issues:

  • While snippets sections are available for tab change get to the end tab (outside of the function), select all the arguments (shift+left arrow) and delete everything:

cs

Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 194, in _on_key_pressed
    self._process_text(text)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 205, in _process_text
    self._update_ast()
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 745, in _update_ast
    self.ast.compute_position(self.starting_position)
AttributeError: 'NoneType' object has no attribute 'compute_position'
  • Try to do tab after changing contents of all of the arg placeholders (maybe also triggered after experiencing any of the other issues?) Try code snippets for numpy.arange and click tab:
Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 184, in _on_key_pressed
    self.select_snippet(next_snippet)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 719, in select_snippet
    start_line, start_column = node_position[0][0]
IndexError: list index out of range
  • Put a comma while args regions are active:

cs1

Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 202, in _process_text
    self.insert_text(text, line, column)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 327, in insert_text
    if node.name == 'EPSILON':
AttributeError: 'NoneType' object has no attribute 'name'
  • Some other strange behaviors without a traceback:

cs2

@dalthviz, could edit your comment above to post a screenshot or an animated gif to better understand how to reproduce those problems?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Khalilsqu picture Khalilsqu  Â·  3Comments

dalthviz picture dalthviz  Â·  3Comments

ok97465 picture ok97465  Â·  3Comments

goanpeca picture goanpeca  Â·  3Comments

impact27 picture impact27  Â·  3Comments