diff --git a/Lib/stat.py b/Lib/stat.py new file mode 100644 index 00000000000..273745d8035 --- /dev/null +++ b/Lib/stat.py @@ -0,0 +1,55 @@ +# Module 'stat' + +# Defines constants and functions for interpreting stat/lstat struct +# as returned by posix.stat() and posix.lstat() (if it exists). + +# XXX This module may have to be adapted for UNIXoid systems whose +# deviates from AT&T or BSD UNIX; their S_IF* constants +# may differ. + +# Suggested usage: from stat import * + +# Tuple indices for stat struct members + +ST_MODE = 0 +ST_INO = 1 +ST_DEV = 2 +ST_NLINK = 3 +ST_UID = 4 +ST_GID = 5 +ST_SIZE = 6 +ST_ATIME = 7 +ST_MTIME = 8 +ST_CTIME = 9 + +def S_IFMT(mode): + return mode - mode%4096 + +S_IFDIR = 0040000 +S_IFCHR = 0020000 +S_IFBLK = 0060000 +S_IFREG = 0100000 +S_IFIFO = 0010000 +S_IFLNK = 0120000 +S_IFSOCK = 0140000 + +def S_ISDIR(mode): + return S_IFMT(mode) = S_IFDIR + +def S_ISCHR(mode): + return S_IFMT(mode) = S_IFCHR + +def S_ISBLK(mode): + return S_IFMT(mode) = S_IFBLK + +def S_ISREG(mode): + return S_IFMT(mode) = S_IFREG + +def S_ISFIFO(mode): + return S_IFMT(mode) = S_IFIFO + +def S_ISLNK(mode): + return S_IFMT(mode) = S_IFLNK + +def S_ISSOCK(mode): + return S_IFMT(mode) = S_IFSOCK