summaryrefslogtreecommitdiffstats
path: root/Doc/library/modulefinder.rst
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2008-02-24 00:38:49 (GMT)
committerChristian Heimes <christian@cheimes.de>2008-02-24 00:38:49 (GMT)
commitd3eb5a1581b78987621781e674ae514b3c5c68eb (patch)
tree02e5395173df64132335bc82ea31e5da0d40c10a /Doc/library/modulefinder.rst
parent05e8be17fd15d8e649e026600f5ab20e1154599f (diff)
downloadcpython-d3eb5a1581b78987621781e674ae514b3c5c68eb.zip
cpython-d3eb5a1581b78987621781e674ae514b3c5c68eb.tar.gz
cpython-d3eb5a1581b78987621781e674ae514b3c5c68eb.tar.bz2
Merged revisions 61003-61033 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r61004 | georg.brandl | 2008-02-23 19:47:04 +0100 (Sat, 23 Feb 2008) | 2 lines Documentation coverage builder, part 1. ........ r61006 | andrew.kuchling | 2008-02-23 20:02:33 +0100 (Sat, 23 Feb 2008) | 1 line #1389051: IMAP module tries to read entire message in one chunk. Patch by Fredrik Lundh. ........ r61008 | andrew.kuchling | 2008-02-23 20:28:58 +0100 (Sat, 23 Feb 2008) | 1 line #1389051, #1092502: fix excessively large allocations when using read() on a socket ........ r61011 | jeffrey.yasskin | 2008-02-23 20:40:54 +0100 (Sat, 23 Feb 2008) | 13 lines Prevent classes like: class RunSelfFunction(object): def __init__(self): self.thread = threading.Thread(target=self._run) self.thread.start() def _run(self): pass from creating a permanent cycle between the object and the thread by having the Thread delete its references to the object when it completes. As an example of the effect of this bug, paramiko.Transport inherits from Thread to avoid it. ........ r61013 | jeffrey.yasskin | 2008-02-23 21:40:35 +0100 (Sat, 23 Feb 2008) | 3 lines Followup to r61011: Also avoid the reference cycle when the Thread's target raises an exception. ........ r61017 | georg.brandl | 2008-02-23 22:59:11 +0100 (Sat, 23 Feb 2008) | 2 lines #2101: fix removeAttribute docs. ........ r61018 | georg.brandl | 2008-02-23 23:05:38 +0100 (Sat, 23 Feb 2008) | 2 lines Add examples to modulefinder docs. Written for GHOP by Josip Dzolonga. ........ r61019 | georg.brandl | 2008-02-23 23:09:24 +0100 (Sat, 23 Feb 2008) | 2 lines Use os.closerange() in popen2. ........ r61020 | georg.brandl | 2008-02-23 23:14:02 +0100 (Sat, 23 Feb 2008) | 2 lines Use os.closerange(). ........ r61021 | georg.brandl | 2008-02-23 23:35:33 +0100 (Sat, 23 Feb 2008) | 3 lines In test_heapq and test_bisect, test both the Python and the C implementation. Originally written for GHOP by Josip Dzolonga, heavily patched by me. ........ r61024 | facundo.batista | 2008-02-23 23:54:12 +0100 (Sat, 23 Feb 2008) | 3 lines Added simple test case. Thanks Benjamin Peterson. ........ r61025 | georg.brandl | 2008-02-23 23:55:18 +0100 (Sat, 23 Feb 2008) | 2 lines #1825: correctly document msilib.add_data. ........ r61027 | georg.brandl | 2008-02-24 00:02:23 +0100 (Sun, 24 Feb 2008) | 2 lines #1826: allow dotted attribute paths in operator.attrgetter. ........ r61028 | georg.brandl | 2008-02-24 00:04:35 +0100 (Sun, 24 Feb 2008) | 2 lines #1506171: added operator.methodcaller(). ........ r61029 | georg.brandl | 2008-02-24 00:25:26 +0100 (Sun, 24 Feb 2008) | 2 lines Document import ./. threading issues. #1720705. ........ r61032 | georg.brandl | 2008-02-24 00:43:01 +0100 (Sun, 24 Feb 2008) | 2 lines Specify what kind of warning -3 emits. ........ r61033 | christian.heimes | 2008-02-24 00:59:45 +0100 (Sun, 24 Feb 2008) | 1 line MS Windows doesn't have mode_t but stat.st_mode is defined as unsigned short. ........
Diffstat (limited to 'Doc/library/modulefinder.rst')
-rw-r--r--Doc/library/modulefinder.rst62
1 files changed, 62 insertions, 0 deletions
diff --git a/Doc/library/modulefinder.rst b/Doc/library/modulefinder.rst
index 9ae0788..d39f412 100644
--- a/Doc/library/modulefinder.rst
+++ b/Doc/library/modulefinder.rst
@@ -48,3 +48,65 @@ report of the imported modules will be printed.
Analyze the contents of the *pathname* file, which must contain Python code.
+.. attribute:: ModuleFinder.modules
+
+ A dictionary mapping module names to modules. See :ref:`modulefinder-example`
+
+
+.. _modulefinder-example:
+
+Example usage of :class:`ModuleFinder`
+--------------------------------------
+
+The script that is going to get analyzed later on (bacon.py)::
+
+ import re, itertools
+
+ try:
+ import baconhameggs
+ except ImportError:
+ pass
+
+ try:
+ import guido.python.ham
+ except ImportError:
+ pass
+
+
+The script that will output the report of bacon.py::
+
+ from modulefinder import ModuleFinder
+
+ finder = ModuleFinder()
+ finder.run_script('bacon.py')
+
+ print 'Loaded modules:'
+ for name, mod in finder.modules.iteritems():
+ print '%s: ' % name,
+ print ','.join(mod.globalnames.keys()[:3])
+
+ print '-'*50
+ print 'Modules not imported:'
+ print '\n'.join(finder.badmodules.iterkeys())
+
+Sample output (may vary depending on the architecture)::
+
+ Loaded modules:
+ _types:
+ copy_reg: _inverted_registry,_slotnames,__all__
+ sre_compile: isstring,_sre,_optimize_unicode
+ _sre:
+ sre_constants: REPEAT_ONE,makedict,AT_END_LINE
+ sys:
+ re: __module__,finditer,_expand
+ itertools:
+ __main__: re,itertools,baconhameggs
+ sre_parse: __getslice__,_PATTERNENDERS,SRE_FLAG_UNICODE
+ array:
+ types: __module__,IntType,TypeType
+ ---------------------------------------------------
+ Modules not imported:
+ guido.python.ham
+ baconhameggs
+
+