Message351139
If I read the docs correctly, io.TextIOWrapper is meant to provide a str-typed interface to an underlying bytes stream.
If a TextIOWrapper is instantiated with the underlying buffer=io.StringIO(), it breaks:
>>> import io
>>> tw = io.TextIOWrapper(io.StringIO())
>>> tw.write(b'abcd\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: write() argument must be str, not bytes
>>> tw.write('abcd\n')
5
>>> tw.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string argument expected, got 'bytes'
>>> tw.read(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: underlying read() should have returned a bytes-like object, not 'str'
Would it be better for TextIOWrapper to fail earlier, at instantiation-time, for this kind of (unrecoverably?) broken type mismatch? |
|
Date |
User |
Action |
Args |
2019-09-04 16:09:55 | bskinn | set | recipients:
+ bskinn |
2019-09-04 16:09:55 | bskinn | set | messageid: <1567613395.14.0.527188435842.issue38029@roundup.psfhosted.org> |
2019-09-04 16:09:55 | bskinn | link | issue38029 messages |
2019-09-04 16:09:54 | bskinn | create | |
|