https://github.com/python/cpython/commit/d0b0e3d2eff30f699c620bc87c4dadd8cd4a77d5
commit: d0b0e3d2eff30f699c620bc87c4dadd8cd4a77d5
branch: main
author: Ronald Oussoren <[email protected]>
committer: ronaldoussoren <[email protected]>
date: 2024-01-01T19:38:29+01:00
summary:
gh-113536: Expose `os.waitid` on macOS (#113542)
* gh-113536: Expose `os.waitid` on macOS
This API has been available on macOS for a long time, but was
explicitly excluded due to unspecified problems with the API
in ancient versions of macOS.
* Document that the API is available on macOS starting in Python 3.13
files:
A Misc/NEWS.d/next/macOS/2023-12-28-12-18-39.gh-issue-113536.0ythg7.rst
M Doc/library/os.rst
M Modules/clinic/posixmodule.c.h
M Modules/posixmodule.c
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 2af61f2960cc63..637191f2980a05 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -4986,11 +4986,11 @@ written in Python, such as a mail server's external
command delivery program.
.. availability:: Unix, not Emscripten, not WASI.
- .. note::
- This function is not available on macOS.
-
.. versionadded:: 3.3
+ .. versionchanged:: 3.13
+ This function is now available on macOS as well.
+
.. function:: waitpid(pid, options, /)
diff --git
a/Misc/NEWS.d/next/macOS/2023-12-28-12-18-39.gh-issue-113536.0ythg7.rst
b/Misc/NEWS.d/next/macOS/2023-12-28-12-18-39.gh-issue-113536.0ythg7.rst
new file mode 100644
index 00000000000000..828b872d283627
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2023-12-28-12-18-39.gh-issue-113536.0ythg7.rst
@@ -0,0 +1 @@
+:func:`os.waitid` is now available on macOS
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index b7639af4b78a9d..ba3e1cfa8dbc21 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -5467,7 +5467,7 @@ os_wait4(PyObject *module, PyObject *const *args,
Py_ssize_t nargs, PyObject *kw
#endif /* defined(HAVE_WAIT4) */
-#if (defined(HAVE_WAITID) && !defined(__APPLE__))
+#if defined(HAVE_WAITID)
PyDoc_STRVAR(os_waitid__doc__,
"waitid($module, idtype, id, options, /)\n"
@@ -5510,7 +5510,7 @@ os_waitid(PyObject *module, PyObject *const *args,
Py_ssize_t nargs)
return return_value;
}
-#endif /* (defined(HAVE_WAITID) && !defined(__APPLE__)) */
+#endif /* defined(HAVE_WAITID) */
#if defined(HAVE_WAITPID)
@@ -12422,4 +12422,4 @@ os__supports_virtual_terminal(PyObject *module,
PyObject *Py_UNUSED(ignored))
#ifndef OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
#define OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF
#endif /* !defined(OS__SUPPORTS_VIRTUAL_TERMINAL_METHODDEF) */
-/*[clinic end generated code: output=b82391c4f58231b6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=18c128534c355d84 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index f4a18536e8f1e1..39b1f3cb7b2b9b 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1024,7 +1024,7 @@ typedef struct {
PyObject *TerminalSizeType;
PyObject *TimesResultType;
PyObject *UnameResultType;
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
PyObject *WaitidResultType;
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@@ -2292,7 +2292,7 @@ static PyStructSequence_Desc statvfs_result_desc = {
10
};
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
PyDoc_STRVAR(waitid_result__doc__,
"waitid_result: Result from waitid.\n\n\
This object may be accessed either as a tuple of\n\
@@ -2367,7 +2367,7 @@ _posix_clear(PyObject *module)
Py_CLEAR(state->TerminalSizeType);
Py_CLEAR(state->TimesResultType);
Py_CLEAR(state->UnameResultType);
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
Py_CLEAR(state->WaitidResultType);
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@@ -2392,7 +2392,7 @@ _posix_traverse(PyObject *module, visitproc visit, void
*arg)
Py_VISIT(state->TerminalSizeType);
Py_VISIT(state->TimesResultType);
Py_VISIT(state->UnameResultType);
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
Py_VISIT(state->WaitidResultType);
#endif
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
@@ -9518,7 +9518,7 @@ os_wait4_impl(PyObject *module, pid_t pid, int options)
#endif /* HAVE_WAIT4 */
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
/*[clinic input]
os.waitid
@@ -9575,7 +9575,7 @@ os_waitid_impl(PyObject *module, idtype_t idtype, id_t
id, int options)
return result;
}
-#endif /* defined(HAVE_WAITID) && !defined(__APPLE__) */
+#endif /* defined(HAVE_WAITID) */
#if defined(HAVE_WAITPID)
@@ -17309,7 +17309,7 @@ posixmodule_exec(PyObject *m)
return -1;
}
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
+#if defined(HAVE_WAITID)
waitid_result_desc.name = MODNAME ".waitid_result";
state->WaitidResultType = (PyObject
*)PyStructSequence_NewType(&waitid_result_desc);
if (PyModule_AddObjectRef(m, "waitid_result", state->WaitidResultType) <
0) {
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]