|
28 | 28 |
|
29 | 29 | #include "py/obj.h"
|
30 | 30 |
|
31 |
| -mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args); |
| 31 | +typedef enum { |
| 32 | + MP_IMPORT_STAT_NO_EXIST, |
| 33 | + MP_IMPORT_STAT_DIR, |
| 34 | + MP_IMPORT_STAT_FILE, |
| 35 | +} mp_import_stat_t; |
| 36 | + |
| 37 | +#if MICROPY_VFS |
| 38 | + |
| 39 | +// Delegate to the VFS for import stat and builtin open. |
| 40 | + |
| 41 | +#define mp_builtin_open_obj mp_vfs_open_obj |
| 42 | + |
| 43 | +mp_import_stat_t mp_vfs_import_stat(const char *path); |
| 44 | +mp_obj_t mp_vfs_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs); |
| 45 | + |
| 46 | +MP_DECLARE_CONST_FUN_OBJ_KW(mp_vfs_open_obj); |
| 47 | + |
| 48 | +static inline mp_import_stat_t mp_import_stat(const char *path) { |
| 49 | + return mp_vfs_import_stat(path); |
| 50 | +} |
| 51 | + |
| 52 | +static inline mp_obj_t mp_builtin_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs) { |
| 53 | + return mp_vfs_open(n_args, args, kwargs); |
| 54 | +} |
| 55 | + |
| 56 | +#else |
| 57 | + |
| 58 | +// A port can provide implementations of these functions. |
| 59 | +mp_import_stat_t mp_import_stat(const char *path); |
32 | 60 | mp_obj_t mp_builtin_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs);
|
| 61 | + |
| 62 | +// A port can provide this object. |
| 63 | +MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_open_obj); |
| 64 | + |
| 65 | +#endif |
| 66 | + |
| 67 | +mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args); |
33 | 68 | mp_obj_t mp_micropython_mem_info(size_t n_args, const mp_obj_t *args);
|
34 | 69 |
|
35 | 70 | MP_DECLARE_CONST_FUN_OBJ_VAR(mp_builtin___build_class___obj);
|
@@ -76,9 +111,7 @@ MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_repr_obj);
|
76 | 111 | MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_round_obj);
|
77 | 112 | MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_sorted_obj);
|
78 | 113 | MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_sum_obj);
|
79 |
| -// Defined by a port, but declared here for simplicity |
80 | 114 | MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_input_obj);
|
81 |
| -MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_open_obj); |
82 | 115 |
|
83 | 116 | MP_DECLARE_CONST_FUN_OBJ_2(mp_namedtuple_obj);
|
84 | 117 |
|
|
0 commit comments