Skip to content

Commit 61ec328

Browse files
committed
Optimize error messages
1 parent 234ce7c commit 61ec328

File tree

7 files changed

+20
-26
lines changed

7 files changed

+20
-26
lines changed

ports/atmel-samd/common-hal/audiobusio/I2SOut.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t *self,
243243
// Find a free GCLK to generate the MCLK signal.
244244
uint8_t gclk = find_free_gclk(divisor);
245245
if (gclk > GCLK_GEN_NUM) {
246-
mp_raise_RuntimeError(MP_ERROR_TEXT("No free GLCKs"));
246+
mp_raise_RuntimeError(MP_ERROR_TEXT("No free GCLKs"));
247247
}
248248
self->gclk = gclk;
249249

py/objint.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ mp_obj_t mp_obj_new_int_from_float(mp_float_t val) {
140140
if (u.p.exp == ((1 << MP_FLOAT_EXP_BITS) - 1)) {
141141
// ...then number is Inf (positive or negative) if fraction is 0, else NaN.
142142
if (u.p.frc == 0) {
143-
mp_raise_msg(&mp_type_OverflowError, MP_ERROR_TEXT("can't convert inf to int"));
143+
mp_raise_msg_varg(&mp_type_OverflowError, MP_ERROR_TEXT("can't convert %s to int"), "inf");
144144
} else {
145-
mp_raise_ValueError(MP_ERROR_TEXT("can't convert NaN to int"));
145+
mp_raise_ValueError_varg(MP_ERROR_TEXT("can't convert %s to int"), "NaN");
146146
}
147147
} else {
148148
mp_fp_as_int_class_t icl = mp_classify_fp_as_int(val);

py/runtime.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,12 +1095,7 @@ STATIC mp_obj_t checked_fun_call(mp_obj_t self_in, size_t n_args, size_t n_kw, c
10951095
if (n_args > 0) {
10961096
const mp_obj_type_t *arg0_type = mp_obj_get_type(args[0]);
10971097
if (arg0_type != self->type) {
1098-
#if MICROPY_ERROR_REPORTING != MICROPY_ERROR_REPORTING_DETAILED
1099-
mp_raise_TypeError(MP_ERROR_TEXT("argument has wrong type"));
1100-
#else
1101-
mp_raise_msg_varg(&mp_type_TypeError,
1102-
MP_ERROR_TEXT("argument should be a '%q' not a '%q'"), self->type->name, arg0_type->name);
1103-
#endif
1098+
mp_raise_TypeError_varg(MP_ERROR_TEXT("%q must be of type %q, not %q"), MP_QSTR_self, self->type->name, arg0_type->name);
11041099
}
11051100
}
11061101
return mp_call_function_n_kw(self->fun, n_args, n_kw, args);

shared-bindings/supervisor/__init__.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,12 @@ STATIC mp_obj_t supervisor_set_next_code_file(size_t n_args, const mp_obj_t *pos
130130
mp_arg_val_t sticky_on_reload;
131131
} args;
132132
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t *)&args);
133-
if (!mp_obj_is_str_or_bytes(args.filename.u_obj) && args.filename.u_obj != mp_const_none) {
134-
mp_raise_TypeError(MP_ERROR_TEXT("argument has wrong type"));
133+
mp_obj_t filename_obj = args.filename.u_obj;
134+
if (!mp_obj_is_str_or_bytes(filename_obj) && filename_obj != mp_const_none) {
135+
mp_raise_TypeError_varg(MP_ERROR_TEXT("%q must be of type %q or %q, not %q"), MP_QSTR_filename, MP_QSTR_str, MP_QSTR_None, mp_obj_get_type(filename_obj)->name);
135136
}
136-
if (args.filename.u_obj == mp_const_none) {
137-
args.filename.u_obj = mp_const_empty_bytes;
137+
if (filename_obj == mp_const_none) {
138+
filename_obj = mp_const_empty_bytes;
138139
}
139140
uint8_t options = 0;
140141
if (args.reload_on_success.u_bool) {
@@ -153,7 +154,7 @@ STATIC mp_obj_t supervisor_set_next_code_file(size_t n_args, const mp_obj_t *pos
153154
options |= SUPERVISOR_NEXT_CODE_OPT_STICKY_ON_RELOAD;
154155
}
155156
size_t len;
156-
const char *filename = mp_obj_str_get_data(args.filename.u_obj, &len);
157+
const char *filename = mp_obj_str_get_data(filename_obj, &len);
157158
if (next_code_configuration != NULL) {
158159
port_free(next_code_configuration);
159160
next_code_configuration = NULL;

shared-bindings/time/__init__.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ STATIC mp_obj_t time_sleep(mp_obj_t seconds_o) {
8383
mp_int_t seconds = mp_obj_get_int(seconds_o);
8484
mp_int_t msecs = 1000 * seconds;
8585
#endif
86-
if (seconds < 0) {
87-
mp_raise_ValueError(MP_ERROR_TEXT("sleep length must be non-negative"));
88-
}
86+
mp_arg_validate_int_min(msecs, 0, MP_QSTR_seconds);
8987
common_hal_time_delay_ms(msecs);
9088
return mp_const_none;
9189
}
@@ -161,13 +159,13 @@ void struct_time_to_tm(mp_obj_t t, timeutils_struct_time_t *tm) {
161159
mp_obj_t *elems;
162160
size_t len;
163161

164-
if (!mp_obj_is_type(t, &mp_type_tuple) && !mp_obj_is_type(t, (mp_obj_type_t *)&struct_time_type_obj.base)) {
165-
mp_raise_TypeError(MP_ERROR_TEXT("Tuple or struct_time argument required"));
162+
if (!mp_obj_is_type(t, &mp_type_tuple)) {
163+
mp_arg_validate_type(t, (mp_obj_type_t *)&struct_time_type_obj.base, MP_QSTR_value);
166164
}
167165

168166
mp_obj_tuple_get(t, &len, &elems);
169167
if (len != 9) {
170-
mp_raise_TypeError(MP_ERROR_TEXT("function takes exactly 9 arguments"));
168+
mp_raise_TypeError_varg(MP_ERROR_TEXT("function takes %d positional arguments but %d were given"), 9, len);
171169
}
172170

173171
tm->tm_year = mp_obj_get_int(elems[0]);
@@ -277,8 +275,8 @@ STATIC mp_obj_t time_mktime(mp_obj_t t) {
277275
mp_obj_t *elem;
278276
size_t len;
279277

280-
if (!mp_obj_is_type(t, &mp_type_tuple) && !mp_obj_is_type(t, (mp_obj_type_t *)&struct_time_type_obj.base)) {
281-
mp_raise_TypeError(MP_ERROR_TEXT("Tuple or struct_time argument required"));
278+
if (!mp_obj_is_type(t, &mp_type_tuple)) {
279+
mp_arg_validate_type(t, (mp_obj_type_t *)&struct_time_type_obj.base, MP_QSTR_value);
282280
}
283281

284282
mp_obj_tuple_get(t, &len, &elem);
@@ -287,7 +285,7 @@ STATIC mp_obj_t time_mktime(mp_obj_t t) {
287285
}
288286

289287
if (mp_obj_get_int(elem[0]) < 2000) {
290-
mp_raise_msg(&mp_type_OverflowError, MP_ERROR_TEXT("timestamp out of range for platform time_t"));
288+
mp_raise_msg_varg(&mp_type_OverflowError, MP_ERROR_TEXT("%q out of range"), MP_QSTR_tm_year);
291289
}
292290

293291
mp_uint_t secs = timeutils_mktime(mp_obj_get_int(elem[0]), mp_obj_get_int(elem[1]), mp_obj_get_int(elem[2]),

shared-module/storage/__init__.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,11 @@ void common_hal_storage_mount(mp_obj_t vfs_obj, const char *mount_path, bool rea
186186
nlr_pop();
187187
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mount_point_stat);
188188
if ((MP_OBJ_SMALL_INT_VALUE(t->items[0]) & MP_S_IFDIR) == 0) {
189-
mp_raise_RuntimeError(MP_ERROR_TEXT("Mount point must be a directory"));
189+
mp_raise_RuntimeError(MP_ERROR_TEXT("Mount point directory missing"));
190190
}
191191
} else {
192192
// Something with the same name doesn't exist.
193-
mp_raise_RuntimeError(MP_ERROR_TEXT("Mount point directory missing. Create first (maybe via USB)"));
193+
mp_raise_RuntimeError(MP_ERROR_TEXT("Mount point directory missing"));
194194
}
195195
}
196196

supervisor/shared/safe_mode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ void print_safe_mode_message(safe_mode_t reason) {
177177
break;
178178
#endif
179179
case SAFE_MODE_STACK_OVERFLOW:
180-
message = MP_ERROR_TEXT("Heap was corrupted because the stack was too small. Increase stack size.");
180+
message = MP_ERROR_TEXT("Stack overflow. Increase stack size.");
181181
break;
182182
case SAFE_MODE_USB_TOO_MANY_ENDPOINTS:
183183
message = MP_ERROR_TEXT("USB devices need more endpoints than are available.");

0 commit comments

Comments
 (0)