Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision dd7b6302ee1b4ee541aa2070380d9262cd1a907b authored by Gregory P. Smith on 06 April 2009, 06:47:37 UTC, committed by Gregory P. Smith on 06 April 2009, 06:47:37 UTC
svn+ssh://pythondev@svn.python.org/python/trunk ........ r71299 | gregory.p.smith | 2009-04-05 16:43:58 -0700 (Sun, 05 Apr 2009) | 3 lines Fixes issue5705: os.setuid() and friends did not accept the same range of values that pwd.getpwnam() returns. ........
1 parent 28f4d20
Tip revision: dd7b6302ee1b4ee541aa2070380d9262cd1a907b authored by Gregory P. Smith on 06 April 2009, 06:47:37 UTC
Merged revisions 71299 via svnmerge from
Merged revisions 71299 via svnmerge from
Tip revision: dd7b630
dircache.py
"""Read and cache directory listings.
The listdir() routine returns a sorted list of the files in a directory,
using a cache to avoid reading the directory more often than necessary.
The annotate() routine appends slashes to directories."""
from warnings import warnpy3k
warnpy3k("the dircache module has been removed in Python 3.0", stacklevel=2)
del warnpy3k
import os
__all__ = ["listdir", "opendir", "annotate", "reset"]
cache = {}
def reset():
"""Reset the cache completely."""
global cache
cache = {}
def listdir(path):
"""List directory contents, using cache."""
try:
cached_mtime, list = cache[path]
del cache[path]
except KeyError:
cached_mtime, list = -1, []
mtime = os.stat(path).st_mtime
if mtime != cached_mtime:
list = os.listdir(path)
list.sort()
cache[path] = mtime, list
return list
opendir = listdir # XXX backward compatibility
def annotate(head, list):
"""Add '/' suffixes to directories."""
for i in range(len(list)):
if os.path.isdir(os.path.join(head, list[i])):
list[i] = list[i] + '/'
Computing file changes ...