]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-140615: Update docstrings in the fcntl module (GH-140619) (GH-141231) ...
authorSerhiy Storchaka <storchaka@gmail.com>
Sat, 8 Nov 2025 11:50:17 +0000 (13:50 +0200)
committerGitHub <noreply@github.com>
Sat, 8 Nov 2025 11:50:17 +0000 (11:50 +0000)
* Refer to bytes objects or bytes-like objects instead of strings.
* Remove backticks -- they do not have effect on formatting.
* Re-wrap lines to ensure the pydoc output fits in 80 columns.
(cherry picked from commit 610377056bad696915d70590429e68002bee9006)
(cherry picked from commit 1a080199aff6d98b476ab19e409d7ca4d56cb3c6)

Modules/clinic/fcntlmodule.c.h
Modules/fcntlmodule.c

index d4846ddf8df7e43b7561b1dee6dd62f43ef0d6a9..fe747c905d2467b477c23e25f8ee12e00f9a9270 100644 (file)
@@ -6,17 +6,23 @@ PyDoc_STRVAR(fcntl_fcntl__doc__,
 "fcntl($module, fd, cmd, arg=0, /)\n"
 "--\n"
 "\n"
-"Perform the operation `cmd` on file descriptor fd.\n"
+"Perform the operation cmd on file descriptor fd.\n"
 "\n"
-"The values used for `cmd` are operating system dependent, and are available\n"
-"as constants in the fcntl module, using the same names as used in\n"
-"the relevant C header files.  The argument arg is optional, and\n"
-"defaults to 0; it may be an int or a string.  If arg is given as a string,\n"
-"the return value of fcntl is a string of that length, containing the\n"
-"resulting value put in the arg buffer by the operating system.  The length\n"
-"of the arg string is not allowed to exceed 1024 bytes.  If the arg given\n"
-"is an integer or if none is specified, the result value is an integer\n"
-"corresponding to the return value of the fcntl call in the C code.");
+"The values used for cmd are operating system dependent, and are\n"
+"available as constants in the fcntl module, using the same names as used\n"
+"in the relevant C header files.  The argument arg is optional, and\n"
+"defaults to 0; it may be an integer, a bytes-like object or a string.\n"
+"If arg is given as a string, it will be encoded to binary using the\n"
+"UTF-8 encoding.\n"
+"\n"
+"If the arg given is an integer or if none is specified, the result value\n"
+"is an integer corresponding to the return value of the fcntl() call in\n"
+"the C code.\n"
+"\n"
+"If arg is given as a bytes-like object, the return value of fcntl() is a\n"
+"bytes object of that length, containing the resulting value put in the\n"
+"arg buffer by the operating system.  The length of the arg buffer is not\n"
+"allowed to exceed 1024 bytes.");
 
 #define FCNTL_FCNTL_METHODDEF    \
     {"fcntl", (PyCFunction)(void(*)(void))fcntl_fcntl, METH_FASTCALL, fcntl_fcntl__doc__},
@@ -63,34 +69,34 @@ PyDoc_STRVAR(fcntl_ioctl__doc__,
 "ioctl($module, fd, request, arg=0, mutate_flag=True, /)\n"
 "--\n"
 "\n"
-"Perform the operation `request` on file descriptor `fd`.\n"
+"Perform the operation request on file descriptor fd.\n"
 "\n"
-"The values used for `request` are operating system dependent, and are available\n"
-"as constants in the fcntl or termios library modules, using the same names as\n"
-"used in the relevant C header files.\n"
+"The values used for request are operating system dependent, and are\n"
+"available as constants in the fcntl or termios library modules, using\n"
+"the same names as used in the relevant C header files.\n"
 "\n"
-"The argument `arg` is optional, and defaults to 0; it may be an int or a\n"
-"buffer containing character data (most likely a string or an array).\n"
+"The argument arg is optional, and defaults to 0; it may be an integer, a\n"
+"bytes-like object or a string.  If arg is given as a string, it will be\n"
+"encoded to binary using the UTF-8 encoding.\n"
 "\n"
-"If the argument is a mutable buffer (such as an array) and if the\n"
-"mutate_flag argument (which is only allowed in this case) is true then the\n"
-"buffer is (in effect) passed to the operating system and changes made by\n"
-"the OS will be reflected in the contents of the buffer after the call has\n"
-"returned.  The return value is the integer returned by the ioctl system\n"
-"call.\n"
+"If the arg given is an integer or if none is specified, the result value\n"
+"is an integer corresponding to the return value of the ioctl() call in\n"
+"the C code.\n"
 "\n"
-"If the argument is a mutable buffer and the mutable_flag argument is false,\n"
-"the behavior is as if a string had been passed.\n"
+"If the argument is a mutable buffer (such as a bytearray) and the\n"
+"mutate_flag argument is true (default) then the buffer is (in effect)\n"
+"passed to the operating system and changes made by the OS will be\n"
+"reflected in the contents of the buffer after the call has returned.\n"
+"The return value is the integer returned by the ioctl() system call.\n"
 "\n"
-"If the argument is an immutable buffer (most likely a string) then a copy\n"
-"of the buffer is passed to the operating system and the return value is a\n"
-"string of the same length containing whatever the operating system put in\n"
-"the buffer.  The length of the arg buffer in this case is not allowed to\n"
-"exceed 1024 bytes.\n"
+"If the argument is a mutable buffer and the mutable_flag argument is\n"
+"false, the behavior is as if an immutable buffer had been passed.\n"
 "\n"
-"If the arg given is an integer or if none is specified, the result value is\n"
-"an integer corresponding to the return value of the ioctl call in the C\n"
-"code.");
+"If the argument is an immutable buffer then a copy of the buffer is\n"
+"passed to the operating system and the return value is a bytes object of\n"
+"the same length containing whatever the operating system put in the\n"
+"buffer.  The length of the arg buffer in this case is not allowed to\n"
+"exceed 1024 bytes.");
 
 #define FCNTL_IOCTL_METHODDEF    \
     {"ioctl", (PyCFunction)(void(*)(void))fcntl_ioctl, METH_FASTCALL, fcntl_ioctl__doc__},
@@ -146,7 +152,7 @@ PyDoc_STRVAR(fcntl_flock__doc__,
 "flock($module, fd, operation, /)\n"
 "--\n"
 "\n"
-"Perform the lock operation `operation` on file descriptor `fd`.\n"
+"Perform the lock operation on file descriptor fd.\n"
 "\n"
 "See the Unix manual page for flock(2) for details (On some systems, this\n"
 "function is emulated using fcntl()).");
@@ -188,22 +194,22 @@ PyDoc_STRVAR(fcntl_lockf__doc__,
 "\n"
 "A wrapper around the fcntl() locking calls.\n"
 "\n"
-"`fd` is the file descriptor of the file to lock or unlock, and operation is one\n"
-"of the following values:\n"
+"fd is the file descriptor of the file to lock or unlock, and operation\n"
+"is one of the following values:\n"
 "\n"
 "    LOCK_UN - unlock\n"
 "    LOCK_SH - acquire a shared lock\n"
 "    LOCK_EX - acquire an exclusive lock\n"
 "\n"
 "When operation is LOCK_SH or LOCK_EX, it can also be bitwise ORed with\n"
-"LOCK_NB to avoid blocking on lock acquisition.  If LOCK_NB is used and the\n"
-"lock cannot be acquired, an OSError will be raised and the exception will\n"
-"have an errno attribute set to EACCES or EAGAIN (depending on the operating\n"
-"system -- for portability, check for either value).\n"
+"LOCK_NB to avoid blocking on lock acquisition.  If LOCK_NB is used and\n"
+"the lock cannot be acquired, an OSError will be raised and the exception\n"
+"will have an errno attribute set to EACCES or EAGAIN (depending on the\n"
+"operating system -- for portability, check for either value).\n"
 "\n"
-"`len` is the number of bytes to lock, with the default meaning to lock to\n"
-"EOF.  `start` is the byte offset, relative to `whence`, to that the lock\n"
-"starts.  `whence` is as with fileobj.seek(), specifically:\n"
+"len is the number of bytes to lock, with the default meaning to lock to\n"
+"EOF.  start is the byte offset, relative to whence, to that the lock\n"
+"starts.  whence is as with fileobj.seek(), specifically:\n"
 "\n"
 "    0 - relative to the start of the file (SEEK_SET)\n"
 "    1 - relative to the current buffer position (SEEK_CUR)\n"
@@ -263,4 +269,4 @@ skip_optional:
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=26793691ab1c75ba input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d9d2cfd8f11c2c15 input=a9049054013a1b77]*/
index 17ecf4c6731ff713d36e9798ee85475bfff5f6cc..3910cdcbc423e6f36ff277cf46727059c5ed79a9 100644 (file)
@@ -37,22 +37,28 @@ fcntl.fcntl
     arg: object(c_default='NULL') = 0
     /
 
-Perform the operation `cmd` on file descriptor fd.
-
-The values used for `cmd` are operating system dependent, and are available
-as constants in the fcntl module, using the same names as used in
-the relevant C header files.  The argument arg is optional, and
-defaults to 0; it may be an int or a string.  If arg is given as a string,
-the return value of fcntl is a string of that length, containing the
-resulting value put in the arg buffer by the operating system.  The length
-of the arg string is not allowed to exceed 1024 bytes.  If the arg given
-is an integer or if none is specified, the result value is an integer
-corresponding to the return value of the fcntl call in the C code.
+Perform the operation cmd on file descriptor fd.
+
+The values used for cmd are operating system dependent, and are
+available as constants in the fcntl module, using the same names as used
+in the relevant C header files.  The argument arg is optional, and
+defaults to 0; it may be an integer, a bytes-like object or a string.
+If arg is given as a string, it will be encoded to binary using the
+UTF-8 encoding.
+
+If the arg given is an integer or if none is specified, the result value
+is an integer corresponding to the return value of the fcntl() call in
+the C code.
+
+If arg is given as a bytes-like object, the return value of fcntl() is a
+bytes object of that length, containing the resulting value put in the
+arg buffer by the operating system.  The length of the arg buffer is not
+allowed to exceed 1024 bytes.
 [clinic start generated code]*/
 
 static PyObject *
 fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
-/*[clinic end generated code: output=888fc93b51c295bd input=7955340198e5f334]*/
+/*[clinic end generated code: output=888fc93b51c295bd input=56c6d6196a4854df]*/
 {
     unsigned int int_arg = 0;
     int ret;
@@ -117,40 +123,40 @@ fcntl.ioctl
     mutate_flag as mutate_arg: bool = True
     /
 
-Perform the operation `request` on file descriptor `fd`.
+Perform the operation request on file descriptor fd.
 
-The values used for `request` are operating system dependent, and are available
-as constants in the fcntl or termios library modules, using the same names as
-used in the relevant C header files.
+The values used for request are operating system dependent, and are
+available as constants in the fcntl or termios library modules, using
+the same names as used in the relevant C header files.
 
-The argument `arg` is optional, and defaults to 0; it may be an int or a
-buffer containing character data (most likely a string or an array).
+The argument arg is optional, and defaults to 0; it may be an integer, a
+bytes-like object or a string.  If arg is given as a string, it will be
+encoded to binary using the UTF-8 encoding.
 
-If the argument is a mutable buffer (such as an array) and if the
-mutate_flag argument (which is only allowed in this case) is true then the
-buffer is (in effect) passed to the operating system and changes made by
-the OS will be reflected in the contents of the buffer after the call has
-returned.  The return value is the integer returned by the ioctl system
-call.
+If the arg given is an integer or if none is specified, the result value
+is an integer corresponding to the return value of the ioctl() call in
+the C code.
 
-If the argument is a mutable buffer and the mutable_flag argument is false,
-the behavior is as if a string had been passed.
+If the argument is a mutable buffer (such as a bytearray) and the
+mutate_flag argument is true (default) then the buffer is (in effect)
+passed to the operating system and changes made by the OS will be
+reflected in the contents of the buffer after the call has returned.
+The return value is the integer returned by the ioctl() system call.
 
-If the argument is an immutable buffer (most likely a string) then a copy
-of the buffer is passed to the operating system and the return value is a
-string of the same length containing whatever the operating system put in
-the buffer.  The length of the arg buffer in this case is not allowed to
-exceed 1024 bytes.
+If the argument is a mutable buffer and the mutable_flag argument is
+false, the behavior is as if an immutable buffer had been passed.
 
-If the arg given is an integer or if none is specified, the result value is
-an integer corresponding to the return value of the ioctl call in the C
-code.
+If the argument is an immutable buffer then a copy of the buffer is
+passed to the operating system and the return value is a bytes object of
+the same length containing whatever the operating system put in the
+buffer.  The length of the arg buffer in this case is not allowed to
+exceed 1024 bytes.
 [clinic start generated code]*/
 
 static PyObject *
 fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
                  PyObject *ob_arg, int mutate_arg)
-/*[clinic end generated code: output=7f7f5840c65991be input=967b4a4cbeceb0a8]*/
+/*[clinic end generated code: output=7f7f5840c65991be input=e345d82d499e5273]*/
 {
 #define IOCTL_BUFSZ 1024
     /* We use the unsigned non-checked 'I' format for the 'code' parameter
@@ -280,7 +286,7 @@ fcntl.flock
     operation as code: int
     /
 
-Perform the lock operation `operation` on file descriptor `fd`.
+Perform the lock operation on file descriptor fd.
 
 See the Unix manual page for flock(2) for details (On some systems, this
 function is emulated using fcntl()).
@@ -288,7 +294,7 @@ function is emulated using fcntl()).
 
 static PyObject *
 fcntl_flock_impl(PyObject *module, int fd, int code)
-/*[clinic end generated code: output=84059e2b37d2fc64 input=0bfc00f795953452]*/
+/*[clinic end generated code: output=84059e2b37d2fc64 input=ade68943e8599f0a]*/
 {
     int ret;
     int async_err = 0;
@@ -351,22 +357,22 @@ fcntl.lockf
 
 A wrapper around the fcntl() locking calls.
 
-`fd` is the file descriptor of the file to lock or unlock, and operation is one
-of the following values:
+fd is the file descriptor of the file to lock or unlock, and operation
+is one of the following values:
 
     LOCK_UN - unlock
     LOCK_SH - acquire a shared lock
     LOCK_EX - acquire an exclusive lock
 
 When operation is LOCK_SH or LOCK_EX, it can also be bitwise ORed with
-LOCK_NB to avoid blocking on lock acquisition.  If LOCK_NB is used and the
-lock cannot be acquired, an OSError will be raised and the exception will
-have an errno attribute set to EACCES or EAGAIN (depending on the operating
-system -- for portability, check for either value).
+LOCK_NB to avoid blocking on lock acquisition.  If LOCK_NB is used and
+the lock cannot be acquired, an OSError will be raised and the exception
+will have an errno attribute set to EACCES or EAGAIN (depending on the
+operating system -- for portability, check for either value).
 
-`len` is the number of bytes to lock, with the default meaning to lock to
-EOF.  `start` is the byte offset, relative to `whence`, to that the lock
-starts.  `whence` is as with fileobj.seek(), specifically:
+len is the number of bytes to lock, with the default meaning to lock to
+EOF.  start is the byte offset, relative to whence, to that the lock
+starts.  whence is as with fileobj.seek(), specifically:
 
     0 - relative to the start of the file (SEEK_SET)
     1 - relative to the current buffer position (SEEK_CUR)
@@ -376,7 +382,7 @@ starts.  `whence` is as with fileobj.seek(), specifically:
 static PyObject *
 fcntl_lockf_impl(PyObject *module, int fd, int code, PyObject *lenobj,
                  PyObject *startobj, int whence)
-/*[clinic end generated code: output=4985e7a172e7461a input=5480479fc63a04b8]*/
+/*[clinic end generated code: output=4985e7a172e7461a input=369bef4d7a1c5ff4]*/
 {
     int ret;
     int async_err = 0;