[New-bugs-announce] [issue31603] Please add argument to override stdin/out/err in the input builtin

Wren Turkal report at bugs.python.org
Wed Sep 27 02:34:07 EDT 2017


New submission from Wren Turkal <wt at penguintechs.org>:

I would really love to add a few params to input so that it's signature looked more like so:

def input(prompt, /, *, fin=sys.stdin, fout=sys.stdout, ferr=sys.stderr):
    ...

This would certainly make overriding the the files in specific calls to input easier. A reasonable use case is collecting a piece over /dev/tty explicitly so that a redirected stdin could be used to pipe data into a program while overriding using /dev/tty to collect some piece of data. Here's some code illustrating what I'd like:

import sys
sys.stdin.close()
sys.stdin = open('/dev/null', 'r')
with open('/dev/tty', 'r') as f:
    x = input('Name? ', fin=f)
print(x)

FWIW, I have actually already implemented this fully (including tests). I am just trying to see what I need to do to allow release since I am work on my employer's time.

In the interest of getting feedback, does the signature provided above look sane?

----------
components: IO
messages: 303103
nosy: wt
priority: normal
severity: normal
status: open
title: Please add argument to override stdin/out/err in the input builtin
versions: Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue31603>
_______________________________________


More information about the New-bugs-announce mailing list