[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-05 Thread Martin Panter

Changes by Martin Panter :


--
Removed message: http://bugs.python.org/msg259637

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-05 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

I think we first should fix 3.6 in correct way, and then see what we can 
backport to other branches without breaking too much. Or left them as is. For 
example the output of --version was changed from strerr to stdout (issue18338, 
issue18920) in default branch, but this was not backported.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-04 Thread Martin Panter

Martin Panter added the comment:

Okay, I see. To clarify, it is Python that sets up Gnu Readline for stdout: 
. The 
problem is whichever way we go, we will have to change some part of the 
behaviour to make it internally consistent. I think my patch is the minimal 
change required.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-04 Thread Martin Panter

Martin Panter added the comment:

Okay, I see. To clarify, it is Python that sets up Gnu Readline for stdout: 
. The 
problem is whichever way we go, we will have to change some part of the 
behaviour to make it internally consistent. I think my patch is the minimal 
change required.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-04 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

This is rather an objection.

If Gnu Readline is configured for stdout, why bash outputs to stderr? We should 
investigate what exactly do bash and other popular programs with readline, and 
implement this in Python.

Changing the documentation usually is a less drastic change than changing 
behavior.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-02-04 Thread Martin Panter

Martin Panter added the comment:

Serhiy, was your comment an objection to changing away from stderr, or was that 
just an observation that Python’s design is inconsistent with the rest of the 
world?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-01-19 Thread Martin Panter

Martin Panter added the comment:

The way I see it, input() is mainly geared for prompting to stdout, and it is 
just one aspect that strangely uses stderr:

* Documentation says stdout
* Stdout is checked if it is a terminal and not redirected
* Gnu Readline is configured for stdout
* The fallback for non-terminals uses stdout

Arguments for using stderr:

* Consistency with Unix shell
* Consistency with the Python interactive interpreter prompt

Maybe it is more ideal to use stderr (I have no idea). But I think that would 
be a more drastic change.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-01-19 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Unix shell builtin command "read" outputs prompt to stderr. In bash that uses 
readline and in dash that doesn't use readline. Looks as this is standard 
behavior.

--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2016-01-18 Thread Martin Panter

Martin Panter added the comment:

Tal: thanks for testing.

This v3 patch changes the interactive interpreter to pass stderr as the 
sys_stdout parameter. This means we should maintain compatibility with the 
interpreter prompt going to stderr, but still fix input().

--
versions:  -Python 3.4
Added file: http://bugs.python.org/file41654/promptOutputFix3.v3.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-05 Thread Tal Einat

Tal Einat added the comment:

The entire test suite passes with the v2 patch on my OSX 10.10.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-05 Thread Martin Panter

Martin Panter added the comment:

Here is an updated patch for Python 3.

I did not remove the “lost sys.stderr” check I mentioned earlier, because the 
implementation still needs it to call flush().

Changes compared to Michael’s patch:

* Added a test for input() using a pseudoterminal and subprocess.Popen
* Write to the passed-in sys_stdout parameter, not the global stdout
* Continue to call fflush(stderr), to avoid regressions with buffered stderr 
messages
* Updated /Parser/pgenmain.c to use sys_stdout

I also had to update test_cmd_line_script, which expected the prompt to be on 
stderr. This made me wonder if it is a good idea to change where the 
interpreter prompt (>>>) goes in a bugfix release. AFAIK it is not documented, 
and it could potentially break other things that use the interactive 
interpreter. What do people think? A way to avoid this might be to pass stderr 
as the sys_stdout parameter.

Also, it would be awesome if someone could try my new test_builtins test case 
on BSD or OS X. I only tested it with Linux. The last time I messed with 
pseudoterminals like this I caused the tests to hang on BSD buildbots.

--
stage: test needed -> patch review
Added file: http://bugs.python.org/file41246/promptOutputFix3.v2.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-02 Thread Jason R. Coombs

Changes by Jason R. Coombs :


--
versions: +Python 3.5, Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-02 Thread Jason R. Coombs

Changes by Jason R. Coombs :


--
nosy: +jason.coombs

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-02 Thread Jason R. Coombs

Jason R. Coombs added the comment:

+1 to applying this patch. After reviewing this and Issue 12869, I don't see 
any substantial objections or concerns. The status is "test needed". Is a test 
really needed? My instinct that simply aligning the implementation with the 
docs is sufficient.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-12-02 Thread Martin Panter

Martin Panter added the comment:

“Test needed” is meant to mean someone needs help producing the problem, but 
people also seem use it to request a refined test case for the test suite.

A test case is always nice, although in this case it is a bit tricky. I can try 
to knock one up use the existing infrastructure in test_builtin.PtyTests. A 
similar test case could probably be made for the interactive interpreter (Issue 
12869), but might be more involved, and I don’t think there is any existing 
code to copy from.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-11-21 Thread Martin Panter

Martin Panter added the comment:

The input() implementation is a bit like this:

def input(prompt):
if stdin and stdout are the original file descriptors, and are terminals:
return PyOS_Readline(sys.stdin, sys.stdout, prompt)
else:
sys.stdout.write(prompt)  # Writes to stdout
return sys.stdin.readline()

def PyOS_StdioReadline(stdin, stdout, prompt):
'''Default implementation of PyOS_Readline()'''
sys.stderr.write(prompt)  # Writes to stderr
return stdin.readline()

def call_readline(stdin, stdout, prompt):
'''Implementation of PyOS_Readline() in the "readline" module'''
rl_instream = stdin
rl_outstream = stdout  # Readline writes to stdout
return readline_until_enter_or_signal(prompt)

It looks like PyOS_StdioReadline() has always written to stderr. The stdin and 
stdout parameters of PyOS_Readline() were added later, in revision dc4a0336a2a3.

I think the changes to myreadline.c will also affect the interactive 
interpreter prompt. But we have Issue 12869 open to change that to stdout, so 
maybe the change is okay.

Since input() should no longer depend on any instance of stderr, perhaps the 
check for “lost sys.stderr” should also be removed.

It may be worth applying any changes in myreadline.c to the independent version 
in pgenmain.c as well, just for consistency.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-07-07 Thread Tal Einat

Tal Einat added the comment:

See also issue #24402: input() uses sys.__stdout__ instead of sys.stdout for 
prompt

--
nosy: +taleinat

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2015-04-20 Thread Bhuvan Arumugam

Bhuvan Arumugam added the comment:

For the record, this bug is still open. 

The proposed patch is not merged in any of branches.

The prompt for raw_input in all versions, go to stderr.

--
nosy: +bhuvan

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2014-07-19 Thread Martin Panter

Martin Panter added the comment:

I experimented with various redirections to /dev/null, files, and other 
terminal windows on Linux. Current behaviour I am seeing seems to be something 
like this:

* Prefers prompting to stderr if both stdout and stderr are terminals
* Prefers prompting to stdout if neither are terminals
* Prompts to the non-terminal if only one of stderr and stdout is a terminal. 
Surely this one should be the other way around if there is going to be a 
preference at all?

--
nosy: +vadmium
versions: +Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2014-02-03 Thread Mark Lawrence

Changes by Mark Lawrence breamore...@yahoo.co.uk:


--
nosy:  -BreamoreBoy

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2012-12-23 Thread Daniel Gonzalez

Daniel Gonzalez added the comment:

Please see this stackoverflow thread where more information is given about this 
issue:

http://stackoverflow.com/questions/14009714/strange-redirection-effect-with-raw-input

--
nosy: +Daniel.Gonzalez

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2012-09-23 Thread Michael Domingues

Michael Domingues added the comment:

The code that dictates this behavior is in /Parser/myreadline.c and has not 
been rectified yet in either Python 2.7 
(http://hg.python.org/cpython/file/bfdf366a779a/Parser/myreadline.c#l107) or 
the default branch 
(http://hg.python.org/cpython/file/c64dec45d46f/Parser/myreadline.c#l111). 
Specifically, within these functions, references to standard error should 
actually be references to standard out.

The attached file is a proposed patch for this bug on the 2.7 branch, bringing 
interpreter behavior into accordance with the Python documentation 
(http://docs.python.org/library/functions.html#raw_input), which states that 
the prompt is written to standard out, as opposed to standard error.

--
keywords: +patch
nosy: +mdomingues
Added file: http://bugs.python.org/file27269/promptOutputFix.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2012-09-23 Thread Michael Domingues

Michael Domingues added the comment:

Also uploading a patch for the Python3.2 branch.

--
Added file: http://bugs.python.org/file27270/promptOutputFix3.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2012-02-22 Thread Éric Araujo

Éric Araujo mer...@netwok.org added the comment:

From reading the code for raw_input in 2.7 or input in 3.3 
(Python/bltinmodule.c:1573), it looks to me that stdout is used, which would 
mean this issue is fixed.  However I browsed the file history and could not 
find the commit that changed this, and my C skills are limited, so I’m adding 
Ezio to nosy to have another pair of eyes confirm.

--
nosy: +eric.araujo, ezio.melotti

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2010-09-20 Thread Mark Lawrence

Mark Lawrence breamore...@yahoo.co.uk added the comment:

Any *NIX gurus who can sort this one?

--
nosy: +BreamoreBoy
versions: +Python 2.7 -Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2010-05-20 Thread Skip Montanaro

Changes by Skip Montanaro s...@pobox.com:


--
nosy:  -skip.montanaro

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2010-01-28 Thread Brian Curtin

Changes by Brian Curtin cur...@acm.org:


--
stage:  - test needed
versions:  -Python 2.5

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue1927
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2008-01-24 Thread Skip Montanaro

New submission from Skip Montanaro:

From a thread on python-dev...

http://mail.python.org/pipermail/python-dev/2008-January/076446.html

Mike Kent mike.kent at sage.com
Thu Jan 24 16:33:47 CET 2008

Recently I was trying to debug an old python program who's maintenance I
inherited.  I was using the quick-and-dirty method of putting some 'print
sys.stderr' statements in the code, and then running the command with
'2filename' appended to the end of the command line.  Imagine my surprise
to see that all of the prompt text from the program's raw_input calls were
also disappearing from the screen output, and appearing in the stderr
output routed to the file.

The latest documentation for raw_input states If the prompt argument is
present, it is written to standard output without a trailing newline.
I posted a question regarding the observed behavior to comp.lang.python
and Gabriel Genellina (thanks Gabriel!) pointed out that despite the
documentation, raw_input was hard-coded to always output its prompt text
to stderr.

This raises two questions:
1. Shouldn't the current documentation be corrected to state that raw_input
writes its prompt to standard error?
2. Is this really the hard-coded behavior we want?  I don't think my
use-case is that odd; in fact, what I find very odd is that the prompt
output is send to stderr.  I mean, I'm printing the prompt for a question,
not some error message. Can there not at least be an optional parameter to
indicate that you want the output sent to stdout rather than stderr?

... after a few responses ...

Guido van Rossum guido at python.org
Thu Jan 24 21:09:12 CET 2008

On Jan 24, 2008 11:41 AM, Mike Kent mike.kent at sage.com wrote:
...
 Interesting point about whether GNU readline is installed.  My setup
is RedHat
 Linux, with Python 2.5 that I built and installed myself.  GNU
readline is not,
 in fact, installed.  If you look at Python2.5/Parser/myreadline.c,
function
 PyOS_StdioReadline, line 125, you will see that prompt output is being
sent to
 stderr.  As best as my Python-fu can determine, this is the code used
to output
 a raw_input prompt (thanks again to Gabriel Genellina for pointing me
in the
 right direction.)

 It's entirely likely that the difference in what I am seeing and what
you guys
 are seeing is caused by my not having GNU readline installed. 
Nevertheless,
 the behavior without it seems wrong, and is certainly different from the
 documentation.

Agreed.

--
components: Interpreter Core
messages: 61652
nosy: skip.montanaro
severity: normal
status: open
title: raw_input behavior incorrect if readline not enabled
versions: Python 2.5, Python 2.6

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue1927
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2008-01-24 Thread Skip Montanaro

Changes by Skip Montanaro:


--
type:  - behavior

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue1927
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2008-01-24 Thread Christian Heimes

Changes by Christian Heimes:


--
priority:  - normal

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue1927
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1927] raw_input behavior incorrect if readline not enabled

2008-01-24 Thread Gabriel Genellina

Gabriel Genellina added the comment:

GNU readline is configured as to prompt the user using standard output, 
and read input from standard input; if this is the desired behavior it 
would be easy to provide a simple patch so input/raw_input behave that 
way even when readline is not used.

--
nosy: +gagenellina

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue1927
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com