home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / stat.py < prev    next >
Text File  |  2003-12-30  |  2KB  |  87 lines

  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
  87.