Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision d11bfdd9f5710efb083898b4377d432be5e4c861 authored by Guido van Rossum on 29 April 1997, 21:48:34 UTC, committed by Guido van Rossum on 29 April 1997, 21:48:34 UTC
when the pthread package is not installed. configure knows better, so #undef _POSIX_THREADS when pthread.h does not exist.
1 parent 1ed5e57
Tip revision: d11bfdd9f5710efb083898b4377d432be5e4c861 authored by Guido van Rossum on 29 April 1997, 21:48:34 UTC
Ugly hack for SGI IRIX 6.2. Apparently _POSIX_THREADS is defined even
Ugly hack for SGI IRIX 6.2. Apparently _POSIX_THREADS is defined even
Tip revision: d11bfdd
statcache.py
# Module 'statcache'
#
# Maintain a cache of file stats.
# 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 = {}
# Stat a file, possibly out of the cache.
#
def stat(path):
if cache.has_key(path):
return cache[path]
cache[path] = ret = os.stat(path)
return ret
# Reset the cache completely.
#
def reset():
global cache
cache = {}
# Remove a given item from the cache, if it exists.
#
def forget(path):
if cache.has_key(path):
del cache[path]
# Remove all pathnames with a given prefix.
#
def forget_prefix(prefix):
n = len(prefix)
for path in cache.keys():
if path[:n] == prefix:
del cache[path]
# Forget about a directory and all entries in it, but not about
# entries in subdirectories.
#
def forget_dir(prefix):
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]
# Remove all pathnames except with a given prefix.
# Normally used with prefix = '/' after a chdir().
#
def forget_except_prefix(prefix):
n = len(prefix)
for path in cache.keys():
if path[:n] <> prefix:
del cache[path]
# Check for directory.
#
def isdir(path):
try:
st = stat(path)
except os.error:
return 0
return S_ISDIR(st[ST_MODE])
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...