Updated version from Moshe, with a re-written warning about the

side-effect of cmpcache.cmp() using statcache.stat() internally.
This commit is contained in:
Fred Drake 1999-06-17 17:40:52 +00:00
parent 173ba5e3bc
commit de69ae1753
1 changed files with 11 additions and 28 deletions

View File

@ -5,32 +5,15 @@
\sectionauthor{Moshe Zadka}{mzadka@geocities.com} \sectionauthor{Moshe Zadka}{mzadka@geocities.com}
\modulesynopsis{Compare files very efficiently.} \modulesynopsis{Compare files very efficiently.}
The \module{cmpcache} module defines a function to compare files, taking all The \module{cmpcache} module provides an identical interface and similar
sort of short-cuts to make it a highly efficient operation. functionality as the \refmodule{cmp} module, but can be a bit more efficient
as it uses \function{statcache.stat()} instead of \function{os.stat()}
(see the \refmodule{statcache} module for information on the
difference).
The \module{cmpcache} module defines the following function: \strong{Note:} Using the \refmodule{statcache} module to provide
\function{stat()} information results in trashing the cache
\begin{funcdesc}{cmp}{f1, f2} invalidation mechanism: results are not as reliable. To ensure
Compare two files given as names. The following tricks are used to ``current'' results, use \function{cmp.cmp()} instead of the version
optimize the comparisons: defined in this module, or use \function{statcache.forget()} to
invalidate the appropriate entries.
\begin{itemize}
\item Signatures (type, size and mtime) are computed via
\refmodule{statcache}
\item Files with identical type, size and mtime are assumed equal.
\item Files with different type or size are never equal.
\item The module only compares files it already compared if their
signature changed.
\item No external programs are called.
\end{itemize}
\end{funcdesc}
Example:
\begin{verbatim}
>>> import cmpcache
>>> cmpcache.cmp('libundoc.tex', 'libundoc.tex')
1
>>> cmpcache.cmp('libundoc.tex', 'lib.tex')
0
\end{verbatim}