]> git.lizzy.rs Git - plan9front.git/blob - sys/lib/python/stat.py
dist/mkfile: run binds in subshell
[plan9front.git] / sys / lib / python / stat.py
1 """Constants/functions for interpreting results of os.stat() and os.lstat().
2
3 Suggested usage: from stat import *
4 """
5
6 # XXX Strictly spoken, this module may have to be adapted for each POSIX
7 # implementation; in practice, however, the numeric constants used by
8 # stat() are almost universal (even for stat() emulations on non-UNIX
9 # systems like MS-DOS).
10
11 # Indices for stat struct members in tuple returned by os.stat()
12
13 ST_MODE  = 0
14 ST_INO   = 1
15 ST_DEV   = 2
16 ST_NLINK = 3
17 ST_UID   = 4
18 ST_GID   = 5
19 ST_SIZE  = 6
20 ST_ATIME = 7
21 ST_MTIME = 8
22 ST_CTIME = 9
23
24 # Extract bits from the mode
25
26 def S_IMODE(mode):
27     return mode & 07777
28
29 def S_IFMT(mode):
30     return mode & 0170000
31
32 # Constants used as S_IFMT() for various file types
33 # (not all are implemented on all systems)
34
35 S_IFDIR  = 0040000
36 S_IFCHR  = 0020000
37 S_IFBLK  = 0060000
38 S_IFREG  = 0100000
39 S_IFIFO  = 0010000
40 S_IFLNK  = 0120000
41 S_IFSOCK = 0140000
42
43 # Functions to test for each file type
44
45 def S_ISDIR(mode):
46     return S_IFMT(mode) == S_IFDIR
47
48 def S_ISCHR(mode):
49     return S_IFMT(mode) == S_IFCHR
50
51 def S_ISBLK(mode):
52     return S_IFMT(mode) == S_IFBLK
53
54 def S_ISREG(mode):
55     return S_IFMT(mode) == S_IFREG
56
57 def S_ISFIFO(mode):
58     return S_IFMT(mode) == S_IFIFO
59
60 def S_ISLNK(mode):
61     return S_IFMT(mode) == S_IFLNK
62
63 def S_ISSOCK(mode):
64     return S_IFMT(mode) == S_IFSOCK
65
66 # Names for permission bits
67
68 S_ISUID = 04000
69 S_ISGID = 02000
70 S_ENFMT = S_ISGID
71 S_ISVTX = 01000
72 S_IREAD = 00400
73 S_IWRITE = 00200
74 S_IEXEC = 00100
75 S_IRWXU = 00700
76 S_IRUSR = 00400
77 S_IWUSR = 00200
78 S_IXUSR = 00100
79 S_IRWXG = 00070
80 S_IRGRP = 00040
81 S_IWGRP = 00020
82 S_IXGRP = 00010
83 S_IRWXO = 00007
84 S_IROTH = 00004
85 S_IWOTH = 00002
86 S_IXOTH = 00001