diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-10-10 13:50:38 (GMT) |
---|---|---|
committer | Victor Stinner <vstinner@python.org> | 2019-10-10 13:50:38 (GMT) |
commit | f5ed41c1ae9a575e965d55c6a5e86fb59181eee8 (patch) | |
tree | 294411f4fec5cc1de813464879af65696b60641c | |
parent | ca012360b103f2ab1acfa506aed032b0ed9b105c (diff) | |
download | cpython-f5ed41c1ae9a575e965d55c6a5e86fb59181eee8.zip cpython-f5ed41c1ae9a575e965d55c6a5e86fb59181eee8.tar.gz cpython-f5ed41c1ae9a575e965d55c6a5e86fb59181eee8.tar.bz2 |
bpo-38109: Add missing constants to Lib/stat.py (GH-16665) (GH-16691)
Add missing stat.S_IFDOOR, stat.S_IFPORT, stat.S_IFWHT,
stat.S_ISDOOR, stat.S_ISPORT, and stat.S_ISWHT values to
the Python implementation of the stat module.
(cherry picked from commit 7bb14316b8ceddb813f31040a299af94a57ab339)
Co-authored-by: Ronan Lamy <ronan.lamy@gmail.com>
-rw-r--r-- | Lib/stat.py | 16 | ||||
-rw-r--r-- | Lib/test/test_stat.py | 8 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2019-10-10-00-25-28.bpo-38109.9w-IGF.rst | 3 |
3 files changed, 21 insertions, 6 deletions
diff --git a/Lib/stat.py b/Lib/stat.py index 46837c0..165e057 100644 --- a/Lib/stat.py +++ b/Lib/stat.py @@ -40,6 +40,10 @@ S_IFREG = 0o100000 # regular file S_IFIFO = 0o010000 # fifo (named pipe) S_IFLNK = 0o120000 # symbolic link S_IFSOCK = 0o140000 # socket file +# Fallbacks for uncommon platform-specific constants +S_IFDOOR = 0 +S_IFPORT = 0 +S_IFWHT = 0 # Functions to test for each file type @@ -71,6 +75,18 @@ def S_ISSOCK(mode): """Return True if mode is from a socket.""" return S_IFMT(mode) == S_IFSOCK +def S_ISDOOR(mode): + """Return True if mode is from a door.""" + return False + +def S_ISPORT(mode): + """Return True if mode is from an event port.""" + return False + +def S_ISWHT(mode): + """Return True if mode is from a whiteout.""" + return False + # Names for permission bits S_ISUID = 0o4000 # set UID bit diff --git a/Lib/test/test_stat.py b/Lib/test/test_stat.py index 73cd901..4ee0dc2 100644 --- a/Lib/test/test_stat.py +++ b/Lib/test/test_stat.py @@ -14,10 +14,10 @@ class TestFilemode: 'UF_IMMUTABLE', 'UF_NODUMP', 'UF_NOUNLINK', 'UF_OPAQUE'} formats = {'S_IFBLK', 'S_IFCHR', 'S_IFDIR', 'S_IFIFO', 'S_IFLNK', - 'S_IFREG', 'S_IFSOCK'} + 'S_IFREG', 'S_IFSOCK', 'S_IFDOOR', 'S_IFPORT', 'S_IFWHT'} format_funcs = {'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO', 'S_ISLNK', - 'S_ISREG', 'S_ISSOCK'} + 'S_ISREG', 'S_ISSOCK', 'S_ISDOOR', 'S_ISPORT', 'S_ISWHT'} stat_struct = { 'ST_MODE': 0, @@ -221,10 +221,6 @@ class TestFilemode: class TestFilemodeCStat(TestFilemode, unittest.TestCase): statmod = c_stat - formats = TestFilemode.formats | {'S_IFDOOR', 'S_IFPORT', 'S_IFWHT'} - format_funcs = TestFilemode.format_funcs | {'S_ISDOOR', 'S_ISPORT', - 'S_ISWHT'} - class TestFilemodePyStat(TestFilemode, unittest.TestCase): statmod = py_stat diff --git a/Misc/NEWS.d/next/Library/2019-10-10-00-25-28.bpo-38109.9w-IGF.rst b/Misc/NEWS.d/next/Library/2019-10-10-00-25-28.bpo-38109.9w-IGF.rst new file mode 100644 index 0000000..3f4484d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-10-10-00-25-28.bpo-38109.9w-IGF.rst @@ -0,0 +1,3 @@ +Add missing :data:`stat.S_IFDOOR`, :data:`stat.S_IFPORT`, :data:`stat.S_IFWHT`,
+:func:`stat.S_ISDOOR`, :func:`stat.S_ISPORT`, and :func:`stat.S_ISWHT` values to
+the Python implementation of :mod:`stat`.
\ No newline at end of file |