Python Forum

Full Version: ipython autocomplete broke indentation!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I installed ipython through the pip in order to use autocomplete, and now indentation doesn't work in the regular Python shell (it does still work in ipython, though):

>>> def f():
... pass
  File "<stdin>", line 2
    pass
       ^
IndentationError: expected an indented block
I don't understand, you didn't indent pass.

>>> def f():
... pass
  File "<stdin>", line 2
    pass
       ^
IndentationError: expected an indented block
>>> def f():
...     pass
...
>>>
That't the behavior I've always seen from the Python shell.
(Apr-07-2019, 11:14 PM)ichabod801 Wrote: [ -> ]I don't understand, you didn't indent pass.

I shouldn't have to indent it manually; that's what the three dots do (or did, before I installed ipython). But when I hit the Tab button to manually indent it, I still get the indentation error:

Microsoft Windows [Version 10.0.17134.648]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\Exsul>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def f():
... Readline internal error
Traceback (most recent call last):
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\console\console.py", line 768, in hook_wrapper_23
    res = ensure_str(readline_hook(prompt))
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\rlmain.py", line 571, in readline
    self._readline_from_keyboard()
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\rlmain.py", line 536, in _readline_from_keyboard
    if self._readline_from_keyboard_poll():
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\rlmain.py", line 556, in _readline_from_keyboard_poll
    result = self.mode.process_keyevent(event.keyinfo)
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\modes\emacs.py", line 243, in process_keyevent
    r = self.process_keyevent_queue[-1](keyinfo)
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\modes\emacs.py", line 286, in _process_keyevent
    r = dispatch_func(keyinfo)
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\modes\basemode.py", line 257, in complete
    completions = self._get_completions()
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\site-packages\pyreadline\modes\basemode.py", line 200, in _get_completions
    r = self.completer(ensure_unicode(text), i)
  File "C:\Users\Exsul\AppData\Local\Programs\Python\Python37\lib\rlcompleter.py", line 80, in complete
    readline.redisplay()
AttributeError: module 'readline' has no attribute 'redisplay'
  File "<stdin>", line 2

    ^
IndentationError: expected an indented block
>>>
Correction: The problem is that I can't indent, because it tries to autocomplete instead.
if you are using any ide, just do ctrl+A and format the code to auto indentation.

If you are using select all the source code block and select source on menu tab and click on fix indentation, your problem will be solved.
(Apr-07-2019, 11:39 PM)Exsul Wrote: [ -> ]I shouldn't have to indent it manually; that's what the three dots do (or did, before I installed ipython).
That's because you never run ipython.
Exsul Wrote:C:\Users\Exsul>python
This start the normal build in interpreter where you have to manually indent.
Start with ipython.
Here python | IPYthon | ptpython(what i use).
Use also cmder it's an whole other class that cmd/powershell rubbish,then get nice color as shown in image under.
[Image: 94RUKM.png]
I uninstalled iPython and cleaned the registry, but Tab still won't indent.