shared/runtime/sys_stdio_mphal: Fix printed type for stdio streams.
The printed type for stdio streams indicates "FileIO", which is a binary IO stream. Stdio is not binary by design, and its printed type should indicate a text stream. "TextIOWrapper" suits that purpose, and is used by VfsPosix files. Signed-off-by: timdechant <timdechant.git@gmail.com>
This commit is contained in:
committed by
Damien George
parent
659113825d
commit
455415b1e1
@@ -54,7 +54,7 @@ static const sys_stdio_obj_t stdio_buffer_obj;
|
||||
|
||||
static void stdio_obj_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
|
||||
sys_stdio_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
mp_printf(print, "<io.FileIO %d>", self->fd);
|
||||
mp_printf(print, "<io.%s %d>", mp_obj_get_type_str(self_in), self->fd);
|
||||
}
|
||||
|
||||
static mp_uint_t stdio_read(mp_obj_t self_in, void *buf, mp_uint_t size, int *errcode) {
|
||||
@@ -122,7 +122,7 @@ static const mp_stream_p_t stdio_obj_stream_p = {
|
||||
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
stdio_obj_type,
|
||||
MP_QSTR_FileIO,
|
||||
MP_QSTR_TextIOWrapper,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, stdio_obj_print,
|
||||
protocol, &stdio_obj_stream_p,
|
||||
|
||||
21
tests/basics/sys_stdio.py
Normal file
21
tests/basics/sys_stdio.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Test sys.std* objects.
|
||||
|
||||
import sys
|
||||
|
||||
try:
|
||||
sys.stdout
|
||||
sys.stdin
|
||||
sys.stderr
|
||||
except AttributeError:
|
||||
print("SKIP")
|
||||
raise SystemExit
|
||||
|
||||
# CPython is more verbose; no need to match exactly
|
||||
|
||||
print('TextIOWrapper' in str(sys.stdout))
|
||||
print('TextIOWrapper' in str(sys.stderr))
|
||||
print('TextIOWrapper' in str(sys.stdin))
|
||||
|
||||
print('TextIOWrapper' in str(type(sys.stdout)))
|
||||
print('TextIOWrapper' in str(type(sys.stderr)))
|
||||
print('TextIOWrapper' in str(type(sys.stdin)))
|
||||
21
tests/basics/sys_stdio_buffer.py
Normal file
21
tests/basics/sys_stdio_buffer.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Test sys.std*.buffer objects.
|
||||
|
||||
import sys
|
||||
|
||||
try:
|
||||
sys.stdout.buffer
|
||||
sys.stdin.buffer
|
||||
sys.stderr.buffer
|
||||
except AttributeError:
|
||||
print("SKIP")
|
||||
raise SystemExit
|
||||
|
||||
# CPython is more verbose; no need to match exactly
|
||||
|
||||
print('FileIO' in str(sys.stdout.buffer))
|
||||
print('FileIO' in str(sys.stderr.buffer))
|
||||
print('FileIO' in str(sys.stdin.buffer))
|
||||
|
||||
print('FileIO' in str(type(sys.stdout.buffer)))
|
||||
print('FileIO' in str(type(sys.stderr.buffer)))
|
||||
print('FileIO' in str(type(sys.stdin.buffer)))
|
||||
6
tests/basics/sys_stdio_buffer.py.exp
Normal file
6
tests/basics/sys_stdio_buffer.py.exp
Normal file
@@ -0,0 +1,6 @@
|
||||
True
|
||||
True
|
||||
True
|
||||
True
|
||||
True
|
||||
True
|
||||
Reference in New Issue
Block a user