micropython 273 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. commit a92199d3c33b322edc7c98c21af594b43cb6d8d8
  2. Author: Oliver Fabel <28701799+ofabel@users.noreply.github.com>
  3. Date: Tue Oct 1 05:57:46 2024 +0200
  4. library update
  5. diff --git a/genhdr/qstrdefs.generated.h b/genhdr/qstrdefs.generated.h
  6. index 8cba2f58a..0579691fd 100644
  7. --- a/genhdr/qstrdefs.generated.h
  8. +++ b/genhdr/qstrdefs.generated.h
  9. @@ -423,6 +423,7 @@ QDEF1(MP_QSTR_max, 177, 3, "max")
  10. QDEF1(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded, 115, 32, "maximum recursion depth exceeded")
  11. QDEF1(MP_QSTR_min, 175, 3, "min")
  12. QDEF1(MP_QSTR_module, 191, 6, "module")
  13. +QDEF1(MP_QSTR_name, 162, 4, "name")
  14. QDEF1(MP_QSTR_oct, 253, 3, "oct")
  15. QDEF1(MP_QSTR_on_gpio, 106, 7, "on_gpio")
  16. QDEF1(MP_QSTR_on_input, 141, 8, "on_input")
  17. diff --git a/mp_flipper_fileio.c b/mp_flipper_fileio.c
  18. index 4e044cd97..102a4d03d 100644
  19. --- a/mp_flipper_fileio.c
  20. +++ b/mp_flipper_fileio.c
  21. @@ -1,6 +1,7 @@
  22. #include <stdio.h>
  23. #include <stdbool.h>
  24. #include <stdint.h>
  25. +#include <string.h>
  26. #include "py/obj.h"
  27. #include "py/stream.h"
  28. @@ -15,17 +16,17 @@ extern const mp_obj_type_t mp_flipper_textio_type;
  29. typedef struct _mp_flipper_fileio_file_descriptor_t {
  30. mp_obj_base_t base;
  31. void* handle;
  32. - size_t offset;
  33. + mp_obj_t name;
  34. uint8_t access_mode;
  35. uint8_t open_mode;
  36. } mp_flipper_fileio_file_descriptor_t;
  37. -void* mp_flipper_file_new_file_descriptor(void* handle, size_t offset, uint8_t access_mode, uint8_t open_mode, bool is_text) {
  38. +void* mp_flipper_file_new_file_descriptor(void* handle, const char* name, uint8_t access_mode, uint8_t open_mode, bool is_text) {
  39. mp_flipper_fileio_file_descriptor_t* fd = mp_obj_malloc_with_finaliser(
  40. mp_flipper_fileio_file_descriptor_t, is_text ? &mp_flipper_textio_type : &mp_flipper_fileio_type);
  41. fd->handle = handle;
  42. - fd->offset = offset;
  43. + fd->name = mp_obj_new_str(name, strlen(name));
  44. fd->access_mode = access_mode;
  45. fd->open_mode = open_mode;
  46. @@ -105,6 +106,13 @@ static mp_uint_t mp_flipper_fileio_ioctl(mp_obj_t self, mp_uint_t request, uintp
  47. return MP_STREAM_ERROR;
  48. }
  49. +static mp_obj_t mp_flipper_fileio_name(mp_obj_t self) {
  50. + mp_flipper_fileio_file_descriptor_t* fd = MP_OBJ_TO_PTR(self);
  51. +
  52. + return fd->name;
  53. +}
  54. +static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_fileio_name_obj, mp_flipper_fileio_name);
  55. +
  56. static mp_obj_t mp_flipper_fileio_writable(mp_obj_t self) {
  57. mp_flipper_fileio_file_descriptor_t* fd = MP_OBJ_TO_PTR(self);
  58. @@ -113,6 +121,7 @@ static mp_obj_t mp_flipper_fileio_writable(mp_obj_t self) {
  59. static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_fileio_writable_obj, mp_flipper_fileio_writable);
  60. static const mp_map_elem_t mp_flipper_file_locals_dict_table[] = {
  61. + {MP_OBJ_NEW_QSTR(MP_QSTR_name), MP_ROM_PTR(&mp_flipper_fileio_name_obj)},
  62. {MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_stream_read_obj)},
  63. {MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&mp_stream_readinto_obj)},
  64. {MP_ROM_QSTR(MP_QSTR_readline), MP_ROM_PTR(&mp_stream_unbuffered_readline_obj)},
  65. diff --git a/mp_flipper_fileio.h b/mp_flipper_fileio.h
  66. index 52d5d85a5..579422200 100644
  67. --- a/mp_flipper_fileio.h
  68. +++ b/mp_flipper_fileio.h
  69. @@ -13,9 +13,9 @@ extern uint8_t MP_FLIPPER_FILE_OPEN_MODE_OPEN_APPEND;
  70. extern uint8_t MP_FLIPPER_FILE_OPEN_MODE_CREATE_NEW;
  71. extern uint8_t MP_FLIPPER_FILE_OPEN_MODE_CREATE_ALWAYS;
  72. -void* mp_flipper_file_open(const char* name, uint8_t access_mode, uint8_t open_mode, size_t* offset);
  73. -void* mp_flipper_file_new_file_descriptor(void* handle, size_t offset, uint8_t access_mode, uint8_t open_mode, bool is_text);
  74. -uint8_t mp_flipper_file_close(void* handle);
  75. +void* mp_flipper_file_open(const char* name, uint8_t access_mode, uint8_t open_mode);
  76. +void* mp_flipper_file_new_file_descriptor(void* handle, const char* name, uint8_t access_mode, uint8_t open_mode, bool is_text);
  77. +bool mp_flipper_file_close(void* handle);
  78. size_t mp_flipper_file_seek(void* handle, uint32_t offset);
  79. size_t mp_flipper_file_tell(void* handle);
  80. size_t mp_flipper_file_size(void* handle);
  81. diff --git a/mp_flipper_halport.c b/mp_flipper_halport.c
  82. index c271b705f..3be95e436 100644
  83. --- a/mp_flipper_halport.c
  84. +++ b/mp_flipper_halport.c
  85. @@ -59,10 +59,8 @@ mp_obj_t mp_builtin_open(size_t n_args, const mp_obj_t* args, mp_map_t* kwargs)
  86. }
  87. }
  88. - size_t offset;
  89. -
  90. - void* handle = mp_flipper_file_open(file_name, access_mode, open_mode, &offset);
  91. - void* fd = mp_flipper_file_new_file_descriptor(handle, offset, access_mode, open_mode, is_text);
  92. + void* handle = mp_flipper_file_open(file_name, access_mode, open_mode);
  93. + void* fd = mp_flipper_file_new_file_descriptor(handle, file_name, access_mode, open_mode, is_text);
  94. return MP_OBJ_FROM_PTR(fd);
  95. }