\section{\module{linecache} ---
         Random access to text lines}

\declaremodule{standard}{linecache}
\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
\modulesynopsis{This module provides random access to individual lines
                from text files.}


The \module{linecache} module allows one to get any line from any file,
while attempting to optimize internally, using a cache, the common case
where many lines are read from a single file.  This is used by the
\refmodule{traceback} module to retrieve source lines for inclusion in 
the formatted traceback.

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

\begin{funcdesc}{getline}{filename, lineno\optional{, module_globals}}
Get line \var{lineno} from file named \var{filename}. This function
will never throw an exception --- it will return \code{''} on errors
(the terminating newline character will be included for lines that are
found).

If a file named \var{filename} is not found, the function will look
for it in the module\indexiii{module}{search}{path} search path,
\code{sys.path}, after first checking for a \pep{302} \code{__loader__}
in \var{module_globals}, in case the module was imported from a zipfile
or other non-filesystem import source. 

\versionadded[The \var{module_globals} parameter was added]{2.5}
\end{funcdesc}

\begin{funcdesc}{clearcache}{}
Clear the cache.  Use this function if you no longer need lines from
files previously read using \function{getline()}.
\end{funcdesc}

\begin{funcdesc}{checkcache}{\optional{filename}}
Check the cache for validity.  Use this function if files in the cache 
may have changed on disk, and you require the updated version.  If
\var{filename} is omitted, it will check all the entries in the cache.
\end{funcdesc}

Example:

\begin{verbatim}
>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/sh\n'
\end{verbatim}
