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

v0.18 breaks django shell after tab completion #1717

Closed
hackengineer opened this issue Dec 27, 2020 · 1 comment
Closed

v0.18 breaks django shell after tab completion #1717

hackengineer opened this issue Dec 27, 2020 · 1 comment

Comments

@hackengineer
Copy link

Within the past couple days, Django's shell crashes after attempting to tab complete. This goes away by rolling back like so

jedi==0.17.2
/usr/local/lib/python3.6/dist-packages/IPython/paths.py:67: UserWarning: IPython parent '/' is not a writable location, using a temp directory.
  " using a temp directory.".format(parent))
Python 3.6.9 (default, Oct  8 2020, 12:12:24) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.16.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from alp

After attempting tab completion

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/ptutils.py", line 113, in get_completions
    yield from self._get_completions(body, offset, cursor_position, self.ipy_completer)
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/ptutils.py", line 126, in _get_completions
    for c in completions:
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 438, in _deduplicate_completions
    completions = list(completions)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1818, in completions
    for c in self._completions(text, offset, _timeout=self.jedi_compute_type_timeout/1000):
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1862, in _completions
    full_text=full_text, cursor_line=cursor_line, cursor_pos=cursor_column)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 2030, in _complete
    cursor_pos, cursor_line, full_text)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1374, in _jedi_matches
    text[:offset], namespaces, column=cursor_column, line=cursor_line + 1)
  File "/usr/local/lib/python3.6/dist-packages/jedi/api/__init__.py", line 726, in __init__
    project=Project(Path.cwd()), **kwds)
TypeError: __init__() got an unexpected keyword argument 'column'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/shell.py", line 100, in handle
    return getattr(self, shell)(options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/shell.py", line 36, in ipython
    start_ipython(argv=[])
  File "/usr/local/lib/python3.6/dist-packages/IPython/__init__.py", line 126, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/traitlets/config/application.py", line 664, in launch_instance
    app.start()
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/ipapp.py", line 356, in start
    self.shell.mainloop()
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/interactiveshell.py", line 563, in mainloop
    self.interact()
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/interactiveshell.py", line 546, in interact
    code = self.prompt_for_code()
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/interactiveshell.py", line 474, in prompt_for_code
    **self._extra_prompt_options())
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/shortcuts/prompt.py", line 1013, in prompt
    return self.app.run(set_exception_handler=set_exception_handler)
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/application/application.py", line 817, in run
    self.run_async(pre_run=pre_run, set_exception_handler=set_exception_handler)
  File "/usr/lib/python3.6/asyncio/base_events.py", line 484, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/application/application.py", line 783, in run_async
    return await _run_async2()
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/application/application.py", line 771, in _run_async2
    await self.cancel_and_wait_for_background_tasks()
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/application/application.py", line 872, in cancel_and_wait_for_background_tasks
    await task
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/buffer.py", line 1854, in new_coroutine
    await coroutine(*a, **kw)
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/buffer.py", line 1684, in async_completer
    document, complete_event
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/completion/base.py", line 270, in get_completions_async
    document, complete_event
  File "/usr/local/lib/python3.6/dist-packages/prompt_toolkit/completion/base.py", line 196, in get_completions_async
    for item in self.get_completions(document, complete_event):
  File "/usr/local/lib/python3.6/dist-packages/IPython/terminal/ptutils.py", line 116, in get_completions
    print_tb(e)
  File "/usr/lib/python3.6/traceback.py", line 53, in print_tb
    print_list(extract_tb(tb, limit=limit), file=file)
  File "/usr/lib/python3.6/traceback.py", line 72, in extract_tb
    return StackSummary.extract(walk_tb(tb), limit=limit)
  File "/usr/lib/python3.6/traceback.py", line 345, in extract
    for f, lineno in frame_gen:
  File "/usr/lib/python3.6/traceback.py", line 310, in walk_tb
    yield tb.tb_frame, tb.tb_lineno
AttributeError: 'TypeError' object has no attribute 'tb_frame'
@PeterJCLaw
Copy link
Collaborator

Looks like this is another instance of ipython/ipython#12740 (see also #1714).
The AttributeError about tb_frame might be worth reporting separately to IPython though.

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

No branches or pull requests

2 participants