give TextIOWrapper a repr that tells you the encoding
This commit is contained in:
parent
f2b55fb5ee
commit
c4c0eaebbf
|
@ -1399,6 +1399,9 @@ class TextIOWrapper(TextIOBase):
|
|||
# - "bytes_..." for integer variables that count input bytes
|
||||
# - "chars_..." for integer variables that count decoded characters
|
||||
|
||||
def __repr__(self):
|
||||
return "<TextIOWrapper encoding={0}>".format(self.encoding)
|
||||
|
||||
@property
|
||||
def encoding(self):
|
||||
return self._encoding
|
||||
|
|
|
@ -1354,6 +1354,12 @@ class TextIOWrapperTest(unittest.TestCase):
|
|||
self.assertRaises(TypeError, t.__init__, b, newline=42)
|
||||
self.assertRaises(ValueError, t.__init__, b, newline='xyzzy')
|
||||
|
||||
def test_repr(self):
|
||||
raw = self.BytesIO("hello".encode("utf-8"))
|
||||
b = self.BufferedReader(raw)
|
||||
t = self.TextIOWrapper(b, encoding="utf-8")
|
||||
self.assertEqual(repr(t), "<TextIOWrapper encoding=utf-8>")
|
||||
|
||||
def test_line_buffering(self):
|
||||
r = self.BytesIO()
|
||||
b = self.BufferedWriter(r, 1000)
|
||||
|
|
|
@ -2171,6 +2171,14 @@ TextIOWrapper_truncate(PyTextIOWrapperObject *self, PyObject *args)
|
|||
return PyObject_CallMethodObjArgs(self->buffer, _PyIO_str_truncate, NULL);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
TextIOWrapper_repr(PyTextIOWrapperObject *self)
|
||||
{
|
||||
CHECK_INITIALIZED(self);
|
||||
return PyUnicode_FromFormat("<TextIOWrapper encoding=%S>", self->encoding);
|
||||
}
|
||||
|
||||
|
||||
/* Inquiries */
|
||||
|
||||
static PyObject *
|
||||
|
@ -2372,9 +2380,9 @@ PyTypeObject PyTextIOWrapper_Type = {
|
|||
(destructor)TextIOWrapper_dealloc, /*tp_dealloc*/
|
||||
0, /*tp_print*/
|
||||
0, /*tp_getattr*/
|
||||
0, /*tp_setattr*/
|
||||
0, /*tps_etattr*/
|
||||
0, /*tp_compare */
|
||||
0, /*tp_repr*/
|
||||
(reprfunc)TextIOWrapper_repr,/*tp_repr*/
|
||||
0, /*tp_as_number*/
|
||||
0, /*tp_as_sequence*/
|
||||
0, /*tp_as_mapping*/
|
||||
|
|
Loading…
Reference in New Issue