blob: 5fb9e8e27cede45a5a89bfd9ae5d029f1cfc5dea [file] [log] [blame]
Andrew M. Kuchling17e33e42004-08-07 20:13:34 +00001\section{\module{modulefinder} ---
2 Find modules used by a script}
3\sectionauthor{A.M. Kuchling}{amk@amk.ca}
4
5\declaremodule{standard}{modulefinder}
6\modulesynopsis{Find modules used by a script.}
7
Fredrik Lundh049fd902006-01-11 00:14:29 +00008\versionadded{2.3}
9
Andrew M. Kuchling17e33e42004-08-07 20:13:34 +000010This module provides a \class{ModuleFinder} class that can be used to
11determine the set of modules imported by a script.
12\code{modulefinder.py} can also be run as a script, giving the
13filename of a Python script as its argument, after which a report of
14the imported modules will be printed.
15
16\begin{funcdesc}{AddPackagePath}{pkg_name, path}
17Record that the package named \var{pkg_name} can be found in the specified \var{path}.
18\end{funcdesc}
19
20\begin{funcdesc}{ReplacePackage}{oldname, newname}
21Allows specifying that the module named \var{oldname} is in fact
22the package named \var{newname}. The most common usage would be
23to handle how the \module{_xmlplus} package replaces the \module{xml}
24package.
25\end{funcdesc}
26
27\begin{classdesc}{ModuleFinder}{\optional{path=None, debug=0, excludes=[], replace_paths=[]}}
28
29This class provides \method{run_script()} and \method{report()}
30methods to determine the set of modules imported by a script.
31\var{path} can be a list of directories to search for modules; if not
32specified, \code{sys.path} is used.
33\var{debug} sets the debugging level; higher values make the class print
34debugging messages about what it's doing.
35\var{excludes} is a list of module names to exclude from the analysis.
36\var{replace_paths} is a list of \code{(\var{oldpath}, \var{newpath})}
37tuples that will be replaced in module paths.
38\end{classdesc}
39
40\begin{methoddesc}[ModuleFinder]{report}{}
41Print a report to standard output that lists the modules imported by the script
42and their
43paths, as well as modules that are missing or seem to be missing.
44\end{methoddesc}
45
46\begin{methoddesc}[ModuleFinder]{run_script}{pathname}
47Analyze the contents of the \var{pathname} file, which must contain
48Python code.
49\end{methoddesc}
50
51