\section{\module{dircache} ---
         Cached directory listings}

\declaremodule{standard}{dircache}
\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
\modulesynopsis{Return directory listing, with cache mechanism.}

The \module{dircache} module defines a function for reading directory listing
using a cache, and cache invalidation using the \var{mtime} of the directory.
Additionally, it defines a function to annotate directories by appending
a slash.

The \module{dircache} module defines the following functions:

\begin{funcdesc}{reset}{}
Resets the directory cache.
\end{funcdesc}

\begin{funcdesc}{listdir}{path}
Return a directory listing of \var{path}, as gotten from
\function{os.listdir()}. Note that unless \var{path} changes, further call
to \function{listdir()} will not re-read the directory structure.

Note that the list returned should be regarded as read-only. (Perhaps
a future version should change it to return a tuple?)
\end{funcdesc}

\begin{funcdesc}{opendir}{path}
Same as \function{listdir()}. Defined for backwards compatibility.
\end{funcdesc}

\begin{funcdesc}{annotate}{head, list}
Assume \var{list} is a list of paths relative to \var{head}, and append,
in place, a \character{/} to each path which points to a directory.
\end{funcdesc}

\begin{verbatim}
>>> import dircache
>>> a = dircache.listdir('/')
>>> a = a[:] # Copy the return value so we can change 'a'
>>> a
['bin', 'boot', 'cdrom', 'dev', 'etc', 'floppy', 'home', 'initrd', 'lib', 'lost+
found', 'mnt', 'proc', 'root', 'sbin', 'tmp', 'usr', 'var', 'vmlinuz']
>>> dircache.annotate('/', a)
>>> a
['bin/', 'boot/', 'cdrom/', 'dev/', 'etc/', 'floppy/', 'home/', 'initrd/', 'lib/
', 'lost+found/', 'mnt/', 'proc/', 'root/', 'sbin/', 'tmp/', 'usr/', 'var/', 'vm
linuz']
\end{verbatim}
