Fred Drake | 64bc94e | 1999-06-17 15:11:35 +0000 | [diff] [blame] | 1 | \section{\module{statcache} --- |
| 2 | An optimization of \function{os.stat()}} |
| 3 | |
| 4 | \declaremodule{standard}{statcache} |
| 5 | \sectionauthor{Moshe Zadka}{mzadka@geocities.com} |
| 6 | \modulesynopsis{Stat files, and remember results.} |
| 7 | |
| 8 | The \module{statcache} module provides a simple optimization to |
| 9 | \function{os.stat()}: remembering the values of previous invocations. |
| 10 | |
| 11 | The \module{statcache} module defines the following functions: |
| 12 | |
| 13 | \begin{funcdesc}{stat}{path} |
| 14 | This is the main module entry-point. |
| 15 | Identical for \function{os.stat()}, except for remembering the result |
| 16 | for future invocations of the function. |
| 17 | \end{funcdesc} |
| 18 | |
| 19 | The rest of the functions are used to clear the cache, or parts of |
| 20 | it. |
| 21 | |
| 22 | \begin{funcdesc}{reset}{} |
Fred Drake | 173ba5e | 1999-06-17 17:09:23 +0000 | [diff] [blame] | 23 | Clear the cache: forget all results of previous \function{stat()} |
| 24 | calls. |
Fred Drake | 64bc94e | 1999-06-17 15:11:35 +0000 | [diff] [blame] | 25 | \end{funcdesc} |
| 26 | |
| 27 | \begin{funcdesc}{forget}{path} |
| 28 | Forget the result of \code{stat(\var{path})}, if any. |
| 29 | \end{funcdesc} |
| 30 | |
| 31 | \begin{funcdesc}{forget_prefix}{prefix} |
| 32 | Forget all results of \code{stat(\var{path})} for \var{path} starting |
| 33 | with \var{prefix}. |
| 34 | \end{funcdesc} |
| 35 | |
| 36 | \begin{funcdesc}{forget_dir}{prefix} |
Fred Drake | 173ba5e | 1999-06-17 17:09:23 +0000 | [diff] [blame] | 37 | Forget all results of \code{stat(\var{path})} for \var{path} a file in |
Fred Drake | 64bc94e | 1999-06-17 15:11:35 +0000 | [diff] [blame] | 38 | the directory \var{prefix}, including \code{stat(\var{prefix})}. |
| 39 | \end{funcdesc} |
| 40 | |
| 41 | \begin{funcdesc}{forget_except_prefix}{prefix} |
Fred Drake | 173ba5e | 1999-06-17 17:09:23 +0000 | [diff] [blame] | 42 | Similar to \function{forget_prefix()}, but for all \var{path} values |
Fred Drake | 64bc94e | 1999-06-17 15:11:35 +0000 | [diff] [blame] | 43 | \emph{not} starting with \var{prefix}. |
| 44 | \end{funcdesc} |
| 45 | |
| 46 | Example: |
| 47 | |
| 48 | \begin{verbatim} |
| 49 | >>> import os, statcache |
| 50 | >>> statcache.stat('.') |
| 51 | (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777) |
| 52 | >>> os.stat('.') |
| 53 | (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777) |
| 54 | \end{verbatim} |