| 
									
										
										
										
											1999-06-17 15:11:35 +00:00
										 |  |  | \section{\module{statcache} --- | 
					
						
							|  |  |  |          An optimization of \function{os.stat()}} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \declaremodule{standard}{statcache} | 
					
						
							|  |  |  | \sectionauthor{Moshe Zadka}{mzadka@geocities.com} | 
					
						
							|  |  |  | \modulesynopsis{Stat files, and remember results.} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The \module{statcache} module provides a simple optimization to | 
					
						
							|  |  |  | \function{os.stat()}: remembering the values of previous invocations. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The \module{statcache} module defines the following functions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{stat}{path} | 
					
						
							|  |  |  | This is the main module entry-point. | 
					
						
							|  |  |  | Identical for \function{os.stat()}, except for remembering the result | 
					
						
							|  |  |  | for future invocations of the function. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The rest of the functions are used to clear the cache, or parts of | 
					
						
							|  |  |  | it. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{reset}{} | 
					
						
							| 
									
										
										
										
											1999-06-17 17:09:23 +00:00
										 |  |  | Clear the cache: forget all results of previous \function{stat()} | 
					
						
							|  |  |  | calls. | 
					
						
							| 
									
										
										
										
											1999-06-17 15:11:35 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{forget}{path} | 
					
						
							|  |  |  | Forget the result of \code{stat(\var{path})}, if any. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{forget_prefix}{prefix} | 
					
						
							|  |  |  | Forget all results of \code{stat(\var{path})} for \var{path} starting | 
					
						
							|  |  |  | with \var{prefix}. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{forget_dir}{prefix} | 
					
						
							| 
									
										
										
										
											1999-06-17 17:09:23 +00:00
										 |  |  | Forget all results of \code{stat(\var{path})} for \var{path} a file in  | 
					
						
							| 
									
										
										
										
											1999-06-17 15:11:35 +00:00
										 |  |  | the directory \var{prefix}, including \code{stat(\var{prefix})}. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{forget_except_prefix}{prefix} | 
					
						
							| 
									
										
										
										
											1999-06-17 17:09:23 +00:00
										 |  |  | Similar to \function{forget_prefix()}, but for all \var{path} values | 
					
						
							| 
									
										
										
										
											1999-06-17 15:11:35 +00:00
										 |  |  | \emph{not} starting with \var{prefix}. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{verbatim} | 
					
						
							|  |  |  | >>> import os, statcache | 
					
						
							|  |  |  | >>> statcache.stat('.') | 
					
						
							|  |  |  | (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777) | 
					
						
							|  |  |  | >>> os.stat('.') | 
					
						
							|  |  |  | (16893, 2049, 772, 18, 1000, 1000, 2048, 929609777, 929609777, 929609777) | 
					
						
							|  |  |  | \end{verbatim} |