Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision c90cda9300ddee21f1cdae1cd857da3a3c71dda3 authored by Fred Drake on 11 June 2002, 02:58:26 UTC, committed by Fred Drake on 11 June 2002, 02:58:26 UTC
the semantics and presentation used in the library reference. Added an explanation of the use of [...] to denote optional arguments, since this is the only use of this in a signature line. Closes SF bug #567127.
1 parent 63ab3e2
Tip revision: c90cda9300ddee21f1cdae1cd857da3a3c71dda3 authored by Fred Drake on 11 June 2002, 02:58:26 UTC
Completely revise markup for the list of list methods; the new markup matches
Completely revise markup for the list of list methods; the new markup matches
Tip revision: c90cda9
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."""
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, []
try:
mtime = os.stat(path)[8]
except os.error:
return []
if mtime != cached_mtime:
try:
list = os.listdir(path)
except os.error:
return []
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 ...