Commit f1c66617 authored by Fred Drake's avatar Fred Drake

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

side-effect of cmpcache.cmp() using statcache.stat() internally.
parent c4834bab
...@@ -5,32 +5,15 @@ ...@@ -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}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment