diff options
Diffstat (limited to 'Lib/dos-8x3/statcach.py')
-rwxr-xr-x | Lib/dos-8x3/statcach.py | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/Lib/dos-8x3/statcach.py b/Lib/dos-8x3/statcach.py deleted file mode 100755 index b5147c2..0000000 --- a/Lib/dos-8x3/statcach.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Maintain a cache of stat() information on files. - -There are functions to reset the cache or to selectively remove items. -""" - -import os -from stat import * - -# The cache. -# Keys are pathnames, values are `os.stat' outcomes. -# -cache = {} - - -def stat(path): - """Stat a file, possibly out of the cache.""" - if cache.has_key(path): - return cache[path] - cache[path] = ret = os.stat(path) - return ret - - -def reset(): - """Reset the cache completely.""" - global cache - cache = {} - - -def forget(path): - """Remove a given item from the cache, if it exists.""" - if cache.has_key(path): - del cache[path] - - -def forget_prefix(prefix): - """Remove all pathnames with a given prefix.""" - n = len(prefix) - for path in cache.keys(): - if path[:n] == prefix: - del cache[path] - - -def forget_dir(prefix): - """Forget about a directory and all entries in it, but not about - entries in subdirectories.""" - if prefix[-1:] == '/' and prefix <> '/': - prefix = prefix[:-1] - forget(prefix) - if prefix[-1:] <> '/': - prefix = prefix + '/' - n = len(prefix) - for path in cache.keys(): - if path[:n] == prefix: - rest = path[n:] - if rest[-1:] == '/': rest = rest[:-1] - if '/' not in rest: - del cache[path] - - -def forget_except_prefix(prefix): - """Remove all pathnames except with a given prefix. - Normally used with prefix = '/' after a chdir().""" - n = len(prefix) - for path in cache.keys(): - if path[:n] <> prefix: - del cache[path] - - -def isdir(path): - """Check for directory.""" - try: - st = stat(path) - except os.error: - return 0 - return S_ISDIR(st[ST_MODE]) |