Kaydet (Commit) c4c0eaeb authored tarafından Benjamin Peterson's avatar Benjamin Peterson

give TextIOWrapper a repr that tells you the encoding

üst f2b55fb5
...@@ -1399,6 +1399,9 @@ class TextIOWrapper(TextIOBase): ...@@ -1399,6 +1399,9 @@ class TextIOWrapper(TextIOBase):
# - "bytes_..." for integer variables that count input bytes # - "bytes_..." for integer variables that count input bytes
# - "chars_..." for integer variables that count decoded characters # - "chars_..." for integer variables that count decoded characters
def __repr__(self):
return "<TextIOWrapper encoding={0}>".format(self.encoding)
@property @property
def encoding(self): def encoding(self):
return self._encoding return self._encoding
......
...@@ -1354,6 +1354,12 @@ class TextIOWrapperTest(unittest.TestCase): ...@@ -1354,6 +1354,12 @@ class TextIOWrapperTest(unittest.TestCase):
self.assertRaises(TypeError, t.__init__, b, newline=42) self.assertRaises(TypeError, t.__init__, b, newline=42)
self.assertRaises(ValueError, t.__init__, b, newline='xyzzy') 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): def test_line_buffering(self):
r = self.BytesIO() r = self.BytesIO()
b = self.BufferedWriter(r, 1000) b = self.BufferedWriter(r, 1000)
......
...@@ -2171,6 +2171,14 @@ TextIOWrapper_truncate(PyTextIOWrapperObject *self, PyObject *args) ...@@ -2171,6 +2171,14 @@ TextIOWrapper_truncate(PyTextIOWrapperObject *self, PyObject *args)
return PyObject_CallMethodObjArgs(self->buffer, _PyIO_str_truncate, NULL); 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 */ /* Inquiries */
static PyObject * static PyObject *
...@@ -2372,9 +2380,9 @@ PyTypeObject PyTextIOWrapper_Type = { ...@@ -2372,9 +2380,9 @@ PyTypeObject PyTextIOWrapper_Type = {
(destructor)TextIOWrapper_dealloc, /*tp_dealloc*/ (destructor)TextIOWrapper_dealloc, /*tp_dealloc*/
0, /*tp_print*/ 0, /*tp_print*/
0, /*tp_getattr*/ 0, /*tp_getattr*/
0, /*tp_setattr*/ 0, /*tps_etattr*/
0, /*tp_compare */ 0, /*tp_compare */
0, /*tp_repr*/ (reprfunc)TextIOWrapper_repr,/*tp_repr*/
0, /*tp_as_number*/ 0, /*tp_as_number*/
0, /*tp_as_sequence*/ 0, /*tp_as_sequence*/
0, /*tp_as_mapping*/ 0, /*tp_as_mapping*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment