python-2.5.2/win32/Lib/stat.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     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