Skip to content

Commit

Permalink
gh-129354: Fix grammar in PyErr_FormatUnraisable()
Browse files Browse the repository at this point in the history
Replace "on verb+ing" with "while verb+ing".
  • Loading branch information
vstinner committed Jan 30, 2025
1 parent 4e47e05 commit 6f0e248
Show file tree
Hide file tree
Showing 24 changed files with 76 additions and 56 deletions.
2 changes: 1 addition & 1 deletion Lib/test/test_cmd_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ def test_stdout_flush_at_shutdown(self):
rc, out, err = assert_python_failure('-c', code)
self.assertEqual(b'', out)
self.assertEqual(120, rc)
self.assertIn(b'Exception ignored on flushing sys.stdout:\n'
self.assertIn(b'Exception ignored while flushing sys.stdout:\n'
b'OSError: '.replace(b'\n', os.linesep.encode()),
err)

Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_ctypes/test_callbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ def func():

self.assertIsInstance(cm.unraisable.exc_value, TypeError)
self.assertEqual(cm.unraisable.err_msg,
f"Exception ignored on converting result "
f"Exception ignored while converting result "
f"of ctypes callback function {func!r}")
self.assertIsNone(cm.unraisable.object)

Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_ctypes/test_random_things.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def expect_unraisable(self, exc_type, exc_msg=None):
if exc_msg is not None:
self.assertEqual(str(cm.unraisable.exc_value), exc_msg)
self.assertEqual(cm.unraisable.err_msg,
f"Exception ignored on calling ctypes "
f"Exception ignored while calling ctypes "
f"callback function {callback_func!r}")
self.assertIsNone(cm.unraisable.object)

Expand Down
3 changes: 2 additions & 1 deletion Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,8 @@ _DictRemover_call(PyObject *myself, PyObject *args, PyObject *kw)
DictRemoverObject *self = _DictRemoverObject_CAST(myself);
if (self->key && self->dict) {
if (-1 == PyDict_DelItem(self->dict, self->key)) {
PyErr_FormatUnraisable("Exception ignored on calling _ctypes.DictRemover");
PyErr_FormatUnraisable("Exception ignored while "
"calling _ctypes.DictRemover");
}
Py_CLEAR(self->key);
Py_CLEAR(self->dict);
Expand Down
10 changes: 5 additions & 5 deletions Modules/_ctypes/callbacks.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,9 @@ static void _CallPythonObject(ctypes_state *st,

result = PyObject_Vectorcall(callable, args, nargs, NULL);
if (result == NULL) {
PyErr_FormatUnraisable(
"Exception ignored on calling ctypes callback function %R",
callable);
PyErr_FormatUnraisable("Exception ignored while "
"calling ctypes callback function %R",
callable);
}

#ifdef MS_WIN32
Expand Down Expand Up @@ -269,7 +269,7 @@ static void _CallPythonObject(ctypes_state *st,
if (keep == NULL) {
/* Could not convert callback result. */
PyErr_FormatUnraisable(
"Exception ignored on converting result "
"Exception ignored while converting result "
"of ctypes callback function %R",
callable);
}
Expand All @@ -282,7 +282,7 @@ static void _CallPythonObject(ctypes_state *st,
"memory leak in callback function.",
1) == -1) {
PyErr_FormatUnraisable(
"Exception ignored on converting result "
"Exception ignored while converting result "
"of ctypes callback function %R",
callable);
}
Expand Down
2 changes: 1 addition & 1 deletion Modules/_datetimemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ clear_current_module(PyInterpreterState *interp, PyObject *expected)
goto finally;

error:
PyErr_FormatUnraisable("Exception ignored when clearing _datetime module");
PyErr_FormatUnraisable("Exception ignored while clearing _datetime module");

finally:
PyErr_SetRaisedException(exc);
Expand Down
3 changes: 2 additions & 1 deletion Modules/_lsprof.c
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,8 @@ profiler_dealloc(ProfilerObject *op)
if (op->flags & POF_ENABLED) {
PyThreadState *tstate = _PyThreadState_GET();
if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
PyErr_FormatUnraisable("Exception ignored when destroying _lsprof profiler");
PyErr_FormatUnraisable("Exception ignored while "
"destroying _lsprof profiler");
}
}

Expand Down
6 changes: 3 additions & 3 deletions Modules/_testcapi/watchers.c
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ allocate_too_many_code_watchers(PyObject *self, PyObject *args)
PyObject *exc = PyErr_GetRaisedException();
for (int i = 0; i < num_watchers; i++) {
if (PyCode_ClearWatcher(watcher_ids[i]) < 0) {
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"clearing code watcher");
break;
}
Expand Down Expand Up @@ -610,7 +610,7 @@ allocate_too_many_func_watchers(PyObject *self, PyObject *args)
PyObject *exc = PyErr_GetRaisedException();
for (int i = 0; i < num_watchers; i++) {
if (PyFunction_ClearWatcher(watcher_ids[i]) < 0) {
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"clearing function watcher");
break;
}
Expand Down Expand Up @@ -757,7 +757,7 @@ allocate_too_many_context_watchers(PyObject *self, PyObject *args)
PyObject *exc = PyErr_GetRaisedException();
for (int i = 0; i < num_watchers; i++) {
if (PyContext_ClearWatcher(watcher_ids[i]) < 0) {
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"clearing context watcher");
break;
}
Expand Down
2 changes: 1 addition & 1 deletion Modules/_winapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ overlapped_dealloc(OverlappedObject *self)
PyErr_SetString(PyExc_PythonFinalizationError,
"I/O operations still in flight while destroying "
"Overlapped object, the process may crash");
PyErr_FormatUnraisable("Exception ignored when deallocating "
PyErr_FormatUnraisable("Exception ignored while deallocating "
"overlapped operation %R", self);
}
else {
Expand Down
2 changes: 1 addition & 1 deletion Modules/atexitmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ atexit_callfuncs(struct atexit_state *state)
PyObject *copy = PyList_GetSlice(state->callbacks, 0, PyList_GET_SIZE(state->callbacks));
if (copy == NULL)
{
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"copying atexit callbacks");
return;
}
Expand Down
6 changes: 3 additions & 3 deletions Modules/getpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,7 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config)
) {
Py_DECREF(co);
Py_DECREF(dict);
PyErr_FormatUnraisable("Exception ignored in preparing getpath");
PyErr_FormatUnraisable("Exception ignored while preparing getpath");
return PyStatus_Error("error evaluating initial values");
}

Expand All @@ -964,13 +964,13 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config)

if (!r) {
Py_DECREF(dict);
PyErr_FormatUnraisable("Exception ignored in running getpath");
PyErr_FormatUnraisable("Exception ignored while running getpath");
return PyStatus_Error("error evaluating path");
}
Py_DECREF(r);

if (_PyConfig_FromDict(config, configDict) < 0) {
PyErr_FormatUnraisable("Exception ignored in reading getpath results");
PyErr_FormatUnraisable("Exception ignored while reading getpath results");
Py_DECREF(dict);
return PyStatus_Error("error getting getpath results");
}
Expand Down
2 changes: 1 addition & 1 deletion Modules/overlapped.c
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ Overlapped_dealloc(OverlappedObject *self)
PyExc_RuntimeError,
"%R still has pending operation at "
"deallocation, the process may crash", self);
PyErr_FormatUnraisable("Exception ignored when deallocating "
PyErr_FormatUnraisable("Exception ignored while deallocating "
"overlapped operation %R", self);
}
}
Expand Down
8 changes: 5 additions & 3 deletions Modules/signalmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,8 @@ report_wakeup_write_error(void *data)
errno = (int) (intptr_t) data;
PyObject *exc = PyErr_GetRaisedException();
PyErr_SetFromErrno(PyExc_OSError);
PyErr_FormatUnraisable("Exception ignored when trying to write to the signal wakeup fd");
PyErr_FormatUnraisable("Exception ignored while "
"trying to write to the signal wakeup fd");
PyErr_SetRaisedException(exc);
errno = save_errno;
return 0;
Expand All @@ -262,7 +263,8 @@ report_wakeup_send_error(void* data)
recognizes the error codes used by both GetLastError() and
WSAGetLastError */
PyErr_SetExcFromWindowsErr(PyExc_OSError, send_errno);
PyErr_FormatUnraisable("Exception ignored when trying to send to the signal wakeup fd");
PyErr_FormatUnraisable("Exception ignored while "
"trying to send to the signal wakeup fd");
PyErr_SetRaisedException(exc);
return 0;
}
Expand Down Expand Up @@ -1837,7 +1839,7 @@ _PyErr_CheckSignalsTstate(PyThreadState *tstate)
PyErr_Format(PyExc_OSError,
"Signal %i ignored due to race condition",
i);
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"calling signal handler");
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion Objects/dictobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -7351,7 +7351,7 @@ PyObject_ClearManagedDict(PyObject *obj)
if (set_or_clear_managed_dict(obj, NULL, true) < 0) {
/* Must be out of memory */
assert(PyErr_Occurred() == PyExc_MemoryError);
PyErr_FormatUnraisable("Exception ignored when "
PyErr_FormatUnraisable("Exception ignored while "
"clearing an object managed dict");
/* Clear the dict */
PyDictObject *dict = _PyObject_GetManagedDict(obj);
Expand Down
6 changes: 4 additions & 2 deletions Objects/moduleobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,8 @@ _PyModule_ClearDict(PyObject *d)
PyErr_Clear();
}
if (PyDict_SetItem(d, key, Py_None) != 0) {
PyErr_FormatUnraisable("Exception ignored on clearing module dict");
PyErr_FormatUnraisable("Exception ignored while "
"clearing module dict");
}
}
}
Expand All @@ -724,7 +725,8 @@ _PyModule_ClearDict(PyObject *d)
PyErr_Clear();
}
if (PyDict_SetItem(d, key, Py_None) != 0) {
PyErr_FormatUnraisable("Exception ignored on clearing module dict");
PyErr_FormatUnraisable("Exception ignored while "
"clearing module dict");
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion Objects/weakrefobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1042,7 +1042,8 @@ PyObject_ClearWeakRefs(PyObject *object)
PyObject *tuple = PyTuple_New(num_weakrefs * 2);
if (tuple == NULL) {
_PyWeakref_ClearWeakRefsNoCallbacks(object);
PyErr_FormatUnraisable("Exception ignored when clearing object weakrefs");
PyErr_FormatUnraisable("Exception ignored while "
"clearing object weakrefs");
PyErr_SetRaisedException(exc);
return;
}
Expand Down
4 changes: 2 additions & 2 deletions Python/compile.c
Original file line number Diff line number Diff line change
Expand Up @@ -704,12 +704,12 @@ _PyCompile_ExitScope(compiler *c)
assert(c->u);
/* we are deleting from a list so this really shouldn't fail */
if (PySequence_DelItem(c->c_stack, n) < 0) {
PyErr_FormatUnraisable("Exception ignored on removing "
PyErr_FormatUnraisable("Exception ignored while removing "
"the last compiler stack item");
}
if (nested_seq != NULL) {
if (_PyInstructionSequence_AddNested(c->u->u_instr_sequence, nested_seq) < 0) {
PyErr_FormatUnraisable("Exception ignored on appending "
PyErr_FormatUnraisable("Exception ignored while appending "
"nested instruction sequence");
}
}
Expand Down
3 changes: 2 additions & 1 deletion Python/crossinterp.c
Original file line number Diff line number Diff line change
Expand Up @@ -784,7 +784,8 @@ _PyXI_excinfo_Apply(_PyXI_excinfo *info, PyObject *exctype)
PyObject *exc = PyErr_GetRaisedException();
if (PyObject_SetAttrString(exc, "_errdisplay", tbexc) < 0) {
#ifdef Py_DEBUG
PyErr_FormatUnraisable("Exception ignored when setting _errdisplay");
PyErr_FormatUnraisable("Exception ignored while "
"setting _errdisplay");
#endif
PyErr_Clear();
}
Expand Down
2 changes: 1 addition & 1 deletion Python/errors.c
Original file line number Diff line number Diff line change
Expand Up @@ -1633,7 +1633,7 @@ format_unraisable_v(const char *format, va_list va, PyObject *obj)
PyObject *hook_args = make_unraisable_hook_args(
tstate, exc_type, exc_value, exc_tb, err_msg, obj);
if (hook_args == NULL) {
err_msg_str = ("Exception ignored on building "
err_msg_str = ("Exception ignored while building "
"sys.unraisablehook arguments");
goto error;
}
Expand Down
4 changes: 2 additions & 2 deletions Python/gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1779,15 +1779,15 @@ do_gc_callback(GCState *gcstate, const char *phase,
"collected", stats->collected,
"uncollectable", stats->uncollectable);
if (info == NULL) {
PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks");
PyErr_FormatUnraisable("Exception ignored while invoking gc callbacks");
return;
}
}

PyObject *phase_obj = PyUnicode_FromString(phase);
if (phase_obj == NULL) {
Py_XDECREF(info);
PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks");
PyErr_FormatUnraisable("Exception ignored while invoking gc callbacks");
return;
}

Expand Down
6 changes: 4 additions & 2 deletions Python/gc_free_threading.c
Original file line number Diff line number Diff line change
Expand Up @@ -1427,15 +1427,17 @@ invoke_gc_callback(PyThreadState *tstate, const char *phase,
"collected", collected,
"uncollectable", uncollectable);
if (info == NULL) {
PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks");
PyErr_FormatUnraisable("Exception ignored while "
"invoking gc callbacks");
return;
}
}

PyObject *phase_obj = PyUnicode_FromString(phase);
if (phase_obj == NULL) {
Py_XDECREF(info);
PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks");
PyErr_FormatUnraisable("Exception ignored while "
"invoking gc callbacks");
return;
}

Expand Down
15 changes: 10 additions & 5 deletions Python/import.c
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,8 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp)
if (PyList_SetSlice(MODULES_BY_INDEX(interp),
0, PyList_GET_SIZE(MODULES_BY_INDEX(interp)),
NULL)) {
PyErr_FormatUnraisable("Exception ignored on clearing interpreters module list");
PyErr_FormatUnraisable("Exception ignored while "
"clearing interpreters module list");
}
}

Expand Down Expand Up @@ -4080,13 +4081,15 @@ _PyImport_FiniCore(PyInterpreterState *interp)
int verbose = _PyInterpreterState_GetConfig(interp)->verbose;

if (_PySys_ClearAttrString(interp, "meta_path", verbose) < 0) {
PyErr_FormatUnraisable("Exception ignored on clearing sys.meta_path");
PyErr_FormatUnraisable("Exception ignored while "
"clearing sys.meta_path");
}

// XXX Pull in most of finalize_modules() in pylifecycle.c.

if (_PySys_ClearAttrString(interp, "modules", verbose) < 0) {
PyErr_FormatUnraisable("Exception ignored on clearing sys.modules");
PyErr_FormatUnraisable("Exception ignored while "
"clearing sys.modules");
}

_PyImport_ClearCore(interp);
Expand Down Expand Up @@ -4161,10 +4164,12 @@ _PyImport_FiniExternal(PyInterpreterState *interp)
// XXX Uninstall importlib metapath importers here?

if (_PySys_ClearAttrString(interp, "path_importer_cache", verbose) < 0) {
PyErr_FormatUnraisable("Exception ignored on clearing sys.path_importer_cache");
PyErr_FormatUnraisable("Exception ignored while "
"clearing sys.path_importer_cache");
}
if (_PySys_ClearAttrString(interp, "path_hooks", verbose) < 0) {
PyErr_FormatUnraisable("Exception ignored on clearing sys.path_hooks");
PyErr_FormatUnraisable("Exception ignored while "
"clearing sys.path_hooks");
}
}

Expand Down
3 changes: 2 additions & 1 deletion Python/jit.c
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,8 @@ _PyJIT_Free(_PyExecutorObject *executor)
executor->jit_side_entry = NULL;
executor->jit_size = 0;
if (jit_free(memory, size)) {
PyErr_FormatUnraisable("Exception ignored when freeing JIT memory");
PyErr_FormatUnraisable("Exception ignored while "
"freeing JIT memory");
}
}
}
Expand Down
Loading

0 comments on commit 6f0e248

Please sign in to comment.