classification
Title: Interactive shell doesn't work with readline bracketed paste
Type: Stage:
Components: Versions:
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Aaron.Meurer
Priority: normal Keywords:

Created on 2017-11-13 23:02 by Aaron.Meurer, last changed 2017-11-13 23:02 by Aaron.Meurer.

Messages (1)
msg306176 - (view) Author: Aaron Meurer (Aaron.Meurer) Date: 2017-11-13 23:02
Here are the steps to reproduce this:

- Compile and link Python against readline version 7.0 or higher.
- Add 

set enable-bracketed-paste on

to your ~/.inputrc

- Start python and paste the following two lines. Make sure to use a terminal emulator that supports bracketed paste (most modern ones do). You'll need to type enter after pasting the lines. 

a = 1
a


You get something like

>>> a = 1
a
  File "<stdin>", line 1
    a

    ^
SyntaxError: multiple statements found while compiling a single statement

It does work, however, if you paste something that has a newline but is a single statement, like

(1, 
2)

Fixing this in the right way might not be so easy, due to the way that compile('single') is over-engineered. A simple fix would be to disable bracketed paste in the Python shell. 

I tested this with Python 3.6.3. I was not able to get the git master to compile, so I couldn't test it there.
History
Date User Action Args
2017-11-13 23:02:31Aaron.Meurercreate