Oliver Fabel 1 год назад
Родитель
Сommit
f6f70425f4
3 измененных файлов с 28 добавлено и 7 удалено
  1. 1 3
      genhdr/qstrdefs.generated.h
  2. 25 2
      mp_flipper_fileio.c
  3. 2 2
      mpconfigport.h

+ 1 - 3
genhdr/qstrdefs.generated.h

@@ -176,7 +176,6 @@ QDEF1(MP_QSTR__lt_string_gt_, 82, 8, "<string>")
 QDEF1(MP_QSTR_ALIGN_BEGIN, 240, 11, "ALIGN_BEGIN")
 QDEF1(MP_QSTR_ALIGN_CENTER, 28, 12, "ALIGN_CENTER")
 QDEF1(MP_QSTR_ALIGN_END, 248, 9, "ALIGN_END")
-QDEF1(MP_QSTR_BytesIO, 26, 7, "BytesIO")
 QDEF1(MP_QSTR_CANVAS_BLACK, 213, 12, "CANVAS_BLACK")
 QDEF1(MP_QSTR_CANVAS_WHITE, 53, 12, "CANVAS_WHITE")
 QDEF1(MP_QSTR_FONT_PRIMARY, 133, 12, "FONT_PRIMARY")
@@ -328,7 +327,6 @@ QDEF1(MP_QSTR_SPEAKER_NOTE_GS7, 13, 16, "SPEAKER_NOTE_GS7")
 QDEF1(MP_QSTR_SPEAKER_NOTE_GS8, 2, 16, "SPEAKER_NOTE_GS8")
 QDEF1(MP_QSTR_SPEAKER_VOLUME_MAX, 66, 18, "SPEAKER_VOLUME_MAX")
 QDEF1(MP_QSTR_SPEAKER_VOLUME_MIN, 92, 18, "SPEAKER_VOLUME_MIN")
-QDEF1(MP_QSTR_StringIO, 118, 8, "StringIO")
 QDEF1(MP_QSTR_TextIO, 30, 6, "TextIO")
 QDEF0(MP_QSTR___add__, 196, 7, "__add__")
 QDEF1(MP_QSTR___bases__, 3, 9, "__bases__")
@@ -399,7 +397,6 @@ QDEF1(MP_QSTR_flush, 97, 5, "flush")
 QDEF1(MP_QSTR_function, 39, 8, "function")
 QDEF1(MP_QSTR_generator, 150, 9, "generator")
 QDEF1(MP_QSTR_getrandbits, 102, 11, "getrandbits")
-QDEF1(MP_QSTR_getvalue, 120, 8, "getvalue")
 QDEF1(MP_QSTR_gpio_deinit_pin, 120, 15, "gpio_deinit_pin")
 QDEF1(MP_QSTR_gpio_get_pin, 85, 12, "gpio_get_pin")
 QDEF1(MP_QSTR_gpio_init_pin, 185, 13, "gpio_init_pin")
@@ -432,6 +429,7 @@ QDEF1(MP_QSTR_pwm_start, 240, 9, "pwm_start")
 QDEF1(MP_QSTR_pwm_stop, 200, 8, "pwm_stop")
 QDEF1(MP_QSTR_random, 190, 6, "random")
 QDEF1(MP_QSTR_rb, 213, 2, "rb")
+QDEF1(MP_QSTR_readable, 93, 8, "readable")
 QDEF1(MP_QSTR_readlines, 106, 9, "readlines")
 QDEF1(MP_QSTR_reversed, 161, 8, "reversed")
 QDEF1(MP_QSTR_seed, 146, 4, "seed")

+ 25 - 2
mp_flipper_fileio.c

@@ -113,6 +113,13 @@ static mp_obj_t mp_flipper_fileio_name(mp_obj_t self) {
 }
 static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_fileio_name_obj, mp_flipper_fileio_name);
 
+static mp_obj_t mp_flipper_fileio_readable(mp_obj_t self) {
+    mp_flipper_fileio_file_descriptor_t* fd = MP_OBJ_TO_PTR(self);
+
+    return (fd->access_mode & MP_FLIPPER_FILE_ACCESS_MODE_READ) ? mp_const_true : mp_const_false;
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_fileio_readable_obj, mp_flipper_fileio_readable);
+
 static mp_obj_t mp_flipper_fileio_writable(mp_obj_t self) {
     mp_flipper_fileio_file_descriptor_t* fd = MP_OBJ_TO_PTR(self);
 
@@ -123,9 +130,9 @@ static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_fileio_writable_obj, mp_flipper_file
 static const mp_map_elem_t mp_flipper_file_locals_dict_table[] = {
     {MP_OBJ_NEW_QSTR(MP_QSTR_name), MP_ROM_PTR(&mp_flipper_fileio_name_obj)},
     {MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_stream_read_obj)},
-    {MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&mp_stream_readinto_obj)},
     {MP_ROM_QSTR(MP_QSTR_readline), MP_ROM_PTR(&mp_stream_unbuffered_readline_obj)},
     {MP_ROM_QSTR(MP_QSTR_readlines), MP_ROM_PTR(&mp_stream_unbuffered_readlines_obj)},
+    {MP_OBJ_NEW_QSTR(MP_QSTR_readable), MP_ROM_PTR(&mp_flipper_fileio_readable_obj)},
     {MP_OBJ_NEW_QSTR(MP_QSTR_writable), MP_ROM_PTR(&mp_flipper_fileio_writable_obj)},
     {MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mp_stream_write_obj)},
     {MP_ROM_QSTR(MP_QSTR_flush), MP_ROM_PTR(&mp_stream_flush_obj)},
@@ -168,4 +175,20 @@ MP_DEFINE_CONST_OBJ_TYPE(
     protocol,
     &mp_flipper_textio_stream_p,
     locals_dict,
-    &mp_flipper_file_locals_dict);
+    &mp_flipper_file_locals_dict);
+
+static const mp_rom_map_elem_t mp_module_io_globals_table[] = {
+    {MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_io)},
+    {MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&mp_builtin_open_obj)},
+    {MP_ROM_QSTR(MP_QSTR_FileIO), MP_ROM_PTR(&mp_flipper_fileio_type)},
+    {MP_ROM_QSTR(MP_QSTR_TextIO), MP_ROM_PTR(&mp_flipper_textio_type)},
+};
+
+static MP_DEFINE_CONST_DICT(mp_module_io_globals, mp_module_io_globals_table);
+
+const mp_obj_module_t mp_module_io = {
+    .base = {&mp_type_module},
+    .globals = (mp_obj_dict_t*)&mp_module_io_globals,
+};
+
+MP_REGISTER_EXTENSIBLE_MODULE(MP_QSTR_io, mp_module_io);

+ 2 - 2
mpconfigport.h

@@ -149,8 +149,8 @@ typedef long mp_off_t;
 
 #define MICROPY_PY_MATH (0)
 
-#define MICROPY_PY_IO (1)
-#define MICROPY_PY_IO_BYTESIO (1)
+#define MICROPY_PY_IO (0)
+#define MICROPY_PY_IO_BYTESIO (0)
 
 #define MICROPY_PY_JSON (0)
 #define MICROPY_PY_JSON_SEPARATORS (0)