Whoops, input *and* raw_input are slated for removal, and now both are gone.
This commit is contained in:
parent
cd65e3fc7d
commit
9e2b9665ae
|
@ -1106,7 +1106,6 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertRaises(TypeError, oct, ())
|
||||
|
||||
def write_testfile(self):
|
||||
# NB the first 4 lines are also used to test input, below
|
||||
fp = open(TESTFN, 'w')
|
||||
try:
|
||||
fp.write('1+1\n')
|
||||
|
@ -1265,36 +1264,6 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertRaises(OverflowError, range, -sys.maxint, sys.maxint)
|
||||
self.assertRaises(OverflowError, range, 0, 2*sys.maxint)
|
||||
|
||||
def test_input(self):
|
||||
self.write_testfile()
|
||||
fp = open(TESTFN, 'r')
|
||||
savestdin = sys.stdin
|
||||
savestdout = sys.stdout # Eats the echo
|
||||
try:
|
||||
sys.stdin = fp
|
||||
sys.stdout = BitBucket()
|
||||
self.assertEqual(input(), '1+1')
|
||||
self.assertEqual(input('testing\n'), '1+1')
|
||||
self.assertEqual(input(), 'The quick brown fox jumps over the lazy dog.')
|
||||
self.assertEqual(input('testing\n'), 'Dear John')
|
||||
sys.stdin = cStringIO.StringIO("NULL\0")
|
||||
self.assertRaises(TypeError, input, 42, 42)
|
||||
whitespace = " 'whitespace'"
|
||||
sys.stdin = cStringIO.StringIO(whitespace)
|
||||
self.assertEqual(input(), whitespace)
|
||||
sys.stdin = cStringIO.StringIO()
|
||||
self.assertRaises(EOFError, input)
|
||||
|
||||
del sys.stdout
|
||||
self.assertRaises(RuntimeError, input, 'prompt')
|
||||
del sys.stdin
|
||||
self.assertRaises(RuntimeError, input, 'prompt')
|
||||
finally:
|
||||
sys.stdin = savestdin
|
||||
sys.stdout = savestdout
|
||||
fp.close()
|
||||
unlink(TESTFN)
|
||||
|
||||
def test_reduce(self):
|
||||
self.assertEqual(reduce(lambda x, y: x+y, ['a', 'b', 'c'], ''), 'abc')
|
||||
self.assertEqual(
|
||||
|
|
|
@ -1073,91 +1073,6 @@ PyDoc_STRVAR(hex_doc,
|
|||
Return the hexadecimal representation of an integer or long integer.");
|
||||
|
||||
|
||||
static PyObject *
|
||||
builtin_input(PyObject *self, PyObject *args)
|
||||
{
|
||||
PyObject *v = NULL;
|
||||
PyObject *fin = PySys_GetObject("stdin");
|
||||
PyObject *fout = PySys_GetObject("stdout");
|
||||
|
||||
if (!PyArg_UnpackTuple(args, "input", 0, 1, &v))
|
||||
return NULL;
|
||||
|
||||
if (fin == NULL) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "input: lost sys.stdin");
|
||||
return NULL;
|
||||
}
|
||||
if (fout == NULL) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "input: lost sys.stdout");
|
||||
return NULL;
|
||||
}
|
||||
if (PyFile_SoftSpace(fout, 0)) {
|
||||
if (PyFile_WriteString(" ", fout) != 0)
|
||||
return NULL;
|
||||
}
|
||||
if (PyFile_Check(fin) && PyFile_Check(fout)
|
||||
&& isatty(fileno(PyFile_AsFile(fin)))
|
||||
&& isatty(fileno(PyFile_AsFile(fout)))) {
|
||||
PyObject *po;
|
||||
char *prompt;
|
||||
char *s;
|
||||
PyObject *result;
|
||||
if (v != NULL) {
|
||||
po = PyObject_Str(v);
|
||||
if (po == NULL)
|
||||
return NULL;
|
||||
prompt = PyString_AsString(po);
|
||||
if (prompt == NULL)
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
po = NULL;
|
||||
prompt = "";
|
||||
}
|
||||
s = PyOS_Readline(PyFile_AsFile(fin), PyFile_AsFile(fout),
|
||||
prompt);
|
||||
Py_XDECREF(po);
|
||||
if (s == NULL) {
|
||||
if (!PyErr_Occurred())
|
||||
PyErr_SetNone(PyExc_KeyboardInterrupt);
|
||||
return NULL;
|
||||
}
|
||||
if (*s == '\0') {
|
||||
PyErr_SetNone(PyExc_EOFError);
|
||||
result = NULL;
|
||||
}
|
||||
else { /* strip trailing '\n' */
|
||||
size_t len = strlen(s);
|
||||
if (len > INT_MAX) {
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"[raw_]input: input too long");
|
||||
result = NULL;
|
||||
}
|
||||
else {
|
||||
result = PyString_FromStringAndSize(s,
|
||||
(int)(len-1));
|
||||
}
|
||||
}
|
||||
PyMem_FREE(s);
|
||||
return result;
|
||||
}
|
||||
if (v != NULL) {
|
||||
if (PyFile_WriteObject(v, fout, Py_PRINT_RAW) != 0)
|
||||
return NULL;
|
||||
}
|
||||
return PyFile_GetLine(fin, -1);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(input_doc,
|
||||
"input([prompt]) -> string\n\
|
||||
\n\
|
||||
Read a string from standard input. The trailing newline is stripped.\n\
|
||||
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.\n\
|
||||
On Unix, GNU readline is used if enabled. The prompt string, if given,\n\
|
||||
is printed without a trailing newline before reading.");
|
||||
|
||||
|
||||
|
||||
static PyObject *
|
||||
builtin_intern(PyObject *self, PyObject *args)
|
||||
{
|
||||
|
@ -2193,7 +2108,6 @@ static PyMethodDef builtin_methods[] = {
|
|||
{"hash", builtin_hash, METH_O, hash_doc},
|
||||
{"hex", builtin_hex, METH_O, hex_doc},
|
||||
{"id", builtin_id, METH_O, id_doc},
|
||||
{"input", builtin_input, METH_VARARGS, input_doc},
|
||||
{"intern", builtin_intern, METH_VARARGS, intern_doc},
|
||||
{"isinstance", builtin_isinstance, METH_VARARGS, isinstance_doc},
|
||||
{"issubclass", builtin_issubclass, METH_VARARGS, issubclass_doc},
|
||||
|
|
Loading…
Reference in New Issue