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

Created on 2017-11-13 23:02 by Aaron.Meurer, last changed 2018-09-20 13:24 by xtreak.

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

You get something like

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

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


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.
Date User Action Args
2018-09-20 13:24:02xtreaksetnosy: + xtreak
2017-11-13 23:02:31Aaron.Meurercreate