home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Lib / stat.py < prev    next >
Text File  |  1994-08-23  |  2KB  |  89 lines

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