Skip to content

Commit

Permalink
py: Include filename in errors from loading/saving files via "open".
Browse files Browse the repository at this point in the history
This improves error messages in mpy-cross:
- When loading a .py file that doesn't exist (or can't be opened) it now
  includes the filename in the OSError.
- When saving a .mpy file that can't be opened it now raises an exception
  (prior, it would silently fail), and includes the filename in the
  OSError.

Signed-off-by: Damien George <damien@micropython.org>
  • Loading branch information
dpgeorge committed Sep 19, 2022
1 parent cc588ac commit fb77be1
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
3 changes: 3 additions & 0 deletions py/persistentcode.c
Expand Up @@ -644,6 +644,9 @@ void mp_raw_code_save_file(mp_compiled_module_t *cm, const char *filename) {
MP_THREAD_GIL_EXIT();
int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);
MP_THREAD_GIL_ENTER();
if (fd < 0) {
mp_raise_OSError_with_filename(errno, filename);
}
mp_print_t fd_print = {(void *)(intptr_t)fd, fd_print_strn};
mp_raw_code_save(cm, &fd_print);
MP_THREAD_GIL_EXIT();
Expand Down
2 changes: 1 addition & 1 deletion py/reader.c
Expand Up @@ -139,7 +139,7 @@ void mp_reader_new_file(mp_reader_t *reader, const char *filename) {
int fd = open(filename, O_RDONLY, 0644);
MP_THREAD_GIL_ENTER();
if (fd < 0) {
mp_raise_OSError(errno);
mp_raise_OSError_with_filename(errno, filename);
}
mp_reader_new_file_from_fd(reader, fd, true);
}
Expand Down

0 comments on commit fb77be1

Please sign in to comment.