summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoramaajemyfren <32741226+amaajemyfren@users.noreply.github.com>2022-12-21 17:48:25 (GMT)
committerGitHub <noreply@github.com>2022-12-21 17:48:25 (GMT)
commitbbf4a66a18cc0fa9121e1bbc90d75d10f5b3a389 (patch)
tree7a5f89beefc38379066c609bf72845037fbefa9b
parentd713c54ac8a2eba0616a5a07714696d935f1062e (diff)
downloadcpython-bbf4a66a18cc0fa9121e1bbc90d75d10f5b3a389.zip
cpython-bbf4a66a18cc0fa9121e1bbc90d75d10f5b3a389.tar.gz
cpython-bbf4a66a18cc0fa9121e1bbc90d75d10f5b3a389.tar.bz2
GH-69564: Clarify use of octal format of mode argument in help(os.chmod) (#20621)
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
-rw-r--r--Misc/NEWS.d/next/Documentation/2020-06-17-14-47-48.bpo-25377.CTxC6o.rst1
-rw-r--r--Modules/clinic/posixmodule.c.h13
-rw-r--r--Modules/posixmodule.c12
3 files changed, 23 insertions, 3 deletions
diff --git a/Misc/NEWS.d/next/Documentation/2020-06-17-14-47-48.bpo-25377.CTxC6o.rst b/Misc/NEWS.d/next/Documentation/2020-06-17-14-47-48.bpo-25377.CTxC6o.rst
new file mode 100644
index 0000000..019a1c4
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2020-06-17-14-47-48.bpo-25377.CTxC6o.rst
@@ -0,0 +1 @@
+Clarify use of octal format of mode argument in help(os.chmod) as well as help(os.fchmod)
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index 8625100..d4722cc 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -501,6 +501,9 @@ PyDoc_STRVAR(os_chmod__doc__,
" If this functionality is unavailable, using it raises an exception.\n"
" mode\n"
" Operating-system mode bitfield.\n"
+" Be careful when using number literals for *mode*. The conventional UNIX notation for\n"
+" numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in\n"
+" Python.\n"
" dir_fd\n"
" If not None, it should be a file descriptor open to a directory,\n"
" and path should be relative; path will then be relative to that\n"
@@ -602,6 +605,14 @@ PyDoc_STRVAR(os_fchmod__doc__,
"\n"
"Change the access permissions of the file given by file descriptor fd.\n"
"\n"
+" fd\n"
+" The file descriptor of the file to be modified.\n"
+" mode\n"
+" Operating-system mode bitfield.\n"
+" Be careful when using number literals for *mode*. The conventional UNIX notation for\n"
+" numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in\n"
+" Python.\n"
+"\n"
"Equivalent to os.chmod(fd, mode).");
#define OS_FCHMOD_METHODDEF \
@@ -11549,4 +11560,4 @@ exit:
#ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF
#define OS_WAITSTATUS_TO_EXITCODE_METHODDEF
#endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */
-/*[clinic end generated code: output=04fd23c89ab41f75 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=41eab6c3523792a9 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 4817973..607d40b 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3173,6 +3173,9 @@ os.chmod
mode: int
Operating-system mode bitfield.
+ Be careful when using number literals for *mode*. The conventional UNIX notation for
+ numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in
+ Python.
*
@@ -3198,7 +3201,7 @@ dir_fd and follow_symlinks may not be implemented on your platform.
static PyObject *
os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
int follow_symlinks)
-/*[clinic end generated code: output=5cf6a94915cc7bff input=989081551c00293b]*/
+/*[clinic end generated code: output=5cf6a94915cc7bff input=674a14bc998de09d]*/
{
int result;
@@ -3328,7 +3331,12 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
os.fchmod
fd: int
+ The file descriptor of the file to be modified.
mode: int
+ Operating-system mode bitfield.
+ Be careful when using number literals for *mode*. The conventional UNIX notation for
+ numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in
+ Python.
Change the access permissions of the file given by file descriptor fd.
@@ -3337,7 +3345,7 @@ Equivalent to os.chmod(fd, mode).
static PyObject *
os_fchmod_impl(PyObject *module, int fd, int mode)
-/*[clinic end generated code: output=afd9bc05b4e426b3 input=8ab11975ca01ee5b]*/
+/*[clinic end generated code: output=afd9bc05b4e426b3 input=b5594618bbbc22df]*/
{
int res;
int async_err = 0;