• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Metadata-Version: 1.1
2Name: modulegraph
3Version: 0.12.1
4Summary: Python module dependency analysis tool
5Home-page: http://bitbucket.org/ronaldoussoren/modulegraph
6Author: Ronald Oussoren
7Author-email: ronaldoussoren@mac.com
8License: MIT
9Download-URL: http://pypi.python.org/pypi/modulegraph
10Description: modulegraph determines a dependency graph between Python modules primarily
11        by bytecode analysis for import statements.
12
13        modulegraph uses similar methods to modulefinder from the standard library,
14        but uses a more flexible internal representation, has more extensive
15        knowledge of special cases, and is extensible.
16
17
18        Release history
19        ===============
20
21        0.12.1
22        ------
23
24        * Issue #25: Complex python files could cause an "maximum recursion depth exceeded"
25          exception due to using stack-based recursion to walk the module AST.
26
27
28        0.12
29        ----
30
31        * Added 'modulegraph.modulegraph.InvalidSourceModule'. This graph node is
32          used for Python source modules that cannot be compiled (for example because
33          they contain syntax errors).
34
35          This is primarily useful for being able to create a graph for packages
36          that have python 2.x or python 3.x compatibility in separate modules that
37          contain code that isn't valid in the "other" python version.
38
39        * Added 'modulegraph.modulegraph.InvalidCompiledModule'. This graph node
40          is used for Python bytecode modules that cannot be loaded.
41
42        * Added 'modulegraph.modulegraph.NamespacePackage'.
43
44          Patch by bitbucket user htgoebel.
45
46        * No longer add a MissingModule node to the graph for 'collections.defaultdict'
47          when using 'from collections import defaultdict' ('collections.defaultdict'
48          is an attribute of 'collections', not a submodule).
49
50        * Fixed typo in ModuleGraph.getReferences()
51
52        * Added ModuleGraph.getReferers(tonode). This methods yields the
53          nodes that are referencing *tonode* (the reverse of getReferences)
54
55        * The graph will no longer contain MissingModule nodes when using 'from ... import name' to
56          import a global variable in a python module.
57
58          There will still be MissingModule nodes for global variables in C extentions, and
59          for 'from missing import name' when 'missing' is itself a MissingModule.
60
61        * Issue #18: Don't assume that a PEP 302 loader object has a ``path`` attribute. That
62          attribute is not documented and is not always present.
63
64        0.11.2
65        ------
66
67        *
68
69        0.11.1
70        ------
71
72        * Issue #145: Don't exclude the platform specific 'path' modules (like ntpath)
73
74        0.11
75        ----
76
77        This is a feature release
78
79        Features
80        ........
81
82        * Hardcode knowlegde about the compatibility aliases in the email
83          module (for python 2.5 upto 3.0).
84
85          This makes it possible to remove a heavy-handed recipe from py2app.
86
87        * Added ``modegraph.zipio.getmode`` to fetch the Unix file mode
88          for a file.
89
90        * Added some handy methods to ``modulegraph.modulegraph.ModuleGraph``.
91
92        0.10.5
93        ------
94
95        This is a bugfix release
96
97        * Don't look at the file extension to determine the file type
98          in modulegraph.find_modules.parse_mf_results, but use the
99          class of the item.
100
101        * Issue #13: Improved handing of bad relative imports
102          ("from .foo import bar"), these tended to raise confusing errors and
103          are now handled like any other failed import.
104
105        0.10.4
106        ------
107
108        This is a bugfix release
109
110        * There were no 'classifiers' in the package metadata due to a bug
111          in setup.py.
112
113        0.10.3
114        ------
115
116        This is a bugfix release
117
118        Bugfixes
119        ........
120
121        * ``modulegraph.find.modules.parse_mf_results`` failed when the main script of
122          a py2app module didn't have a file name ending in '.py'.
123
124        0.10.2
125        ------
126
127        This is a bugfix release
128
129        Bugfixes
130        ........
131
132        * Issue #12: modulegraph would sometimes find the wrong package *__init__*
133          module due to using the wrong search method. One easy way to reproduce the
134          problem was to have a toplevel module named *__init__*.
135
136          Reported by Kentzo.
137
138        0.10.1
139        ------
140
141        This is a bugfix release
142
143        Bugfixes
144        ........
145
146        * Issue #11: creating xrefs and dotty graphs from modulegraphs (the --xref
147          and --graph options of py2app) didn't work with python 3 due to use of
148          APIs that aren't available in that version of python.
149
150          Reported by Andrew Barnert.
151
152
153        0.10
154        ----
155
156        This is a minor feature release
157
158        Features
159        ........
160
161        * ``modulegraph.find_modules.find_needed_modules`` claimed to automaticly
162          include subpackages for the "packages" argument as well, but that code
163          didn't work at all.
164
165        * Issue #9: The modulegraph script is deprecated, use
166          "python -mmodulegraph" instead.
167
168        * Issue #10: Ensure that the result of "zipio.open" can be used
169          in a with statement (that is, ``with zipio.open(...) as fp``.
170
171        * No longer use "2to3" to support Python 3.
172
173          Because of this modulegraph now supports Python 2.6
174          and later.
175
176        * Slightly improved HTML output, which makes it easier
177          to manipulate the generated HTML using JavaScript.
178
179          Patch by anatoly techtonik.
180
181        * Ensure modulegraph works with changes introduced after
182          Python 3.3b1.
183
184        * Implement support for PEP 420 ("Implicit namespace packages")
185          in Python 3.3.
186
187        * ``modulegraph.util.imp_walk`` is deprecated and will be
188          removed in the next release of this package.
189
190        Bugfixes
191        ........
192
193        * The module graph was incomplete, and generated incorrect warnings
194          along the way, when a subpackage contained import statements for
195          submodules.
196
197          An example of this is ``sqlalchemy.util``, the ``__init__.py`` file
198          for this package contains imports of modules in that modules using
199          the classic relative import syntax (that is ``import compat`` to
200          import ``sqlalchemy.util.compat``). Until this release modulegraph
201          searched the wrong path to locate these modules (and hence failed
202          to find them).
203
204
205        0.9.2
206        -----
207
208        This is a bugfix release
209
210        Bugfixes
211        ........
212
213        * The 'packages' option to modulegraph.find_modules.find_modules ignored
214          the search path argument but always used the default search path.
215
216        * The 'imp_find_modules' function in modulegraph.util has an argument 'path',
217          this was a string in previous release and can now also be a sequence.
218
219        * Don't crash when a module on the 'includes' list doesn't exist, but warn
220          just like for missing 'packages' (modulegraph.find_modules.find_modules)
221
222        0.9.1
223        -----
224
225        This is a bugfix release
226
227        Bug fixes
228        .........
229
230        - Fixed the name of nodes imports in packages where the first element of
231          a dotted name can be found but the rest cannot. This used to create
232          a MissingModule node for the dotted name in the global namespace instead
233          of relative to the package.
234
235          That is, given a package "pkg" with submodule "sub" if the "__init__.py"
236          of "pkg" contains "import sub.nomod" we now create a MissingModule node
237          for "pkg.sub.nomod" instead of "sub.nomod".
238
239          This fixes an issue with including the crcmod package in application
240          bundles, first reported on the pythonmac-sig mailinglist by
241          Brendan Simon.
242
243        0.9
244        ---
245
246        This is a minor feature release
247
248
249        Features:
250
251        - Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
252          and can be viewed at <http://packages.python.org/modulegraph>.
253
254          The documention is very rough at this moment and in need of reorganisation and
255          language cleanup. I've basiclly writting the current version by reading the code
256          and documenting what it does, the order in which classes and methods are document
257          is therefore not necessarily the most useful.
258
259        - The repository has moved to bitbucket
260
261        - Renamed ``modulegraph.modulegraph.AddPackagePath`` to ``addPackagePath``,
262          likewise ``ReplacePackage`` is now ``replacePackage``. The old name is still
263          available, but is deprecated and will be removed before the 1.0 release.
264
265        - ``modulegraph.modulegraph`` contains two node types that are unused and
266          have unclear semantics: ``FlatPackage`` and ``ArchiveModule``. These node
267          types are deprecated and will be removed before 1.0 is released.
268
269        - Added a simple commandline tool (``modulegraph``) that will print information
270          about the dependency graph of a script.
271
272        - Added a module (``zipio``) for dealing with paths that may refer to entries
273          inside zipfiles (such as source paths referring to modules in zipped eggfiles).
274
275          With this addition ``modulegraph.modulegraph.os_listdir`` is deprecated and
276          it will be removed before the 1.0 release.
277
278        Bug fixes:
279
280        - The ``__cmp__`` method of a Node no longer causes an exception
281          when the compared-to object is not a Node. Patch by Ivan Kozik.
282
283        - Issue #1: The initialiser for ``modulegraph.ModuleGraph`` caused an exception
284          when an entry on the path (``sys.path``) doesn't actually exist.
285
286          Fix by "skurylo", testcase by Ronald.
287
288        - The code no longer worked with python 2.5, this release fixes that.
289
290        - Due to the switch to mercurial setuptools will no longer include
291          all required files. Fixed by adding a MANIFEST.in file
292
293        - The method for printing a ``.dot`` representation of a ``ModuleGraph``
294          works again.
295
296
297        0.8.1
298        -----
299
300        This is a minor feature release
301
302        Features:
303
304        - ``from __future__ import absolute_import`` is now supported
305
306        - Relative imports (``from . import module``) are now supported
307
308        - Add support for namespace packages when those are installed
309          using option ``--single-version-externally-managed`` (part
310          of setuptools/distribute)
311
312        0.8
313        ---
314
315        This is a minor feature release
316
317        Features:
318
319        - Initial support for Python 3.x
320
321        - It is now possible to run the test suite
322          using ``python setup.py test``.
323
324          (The actual test suite is still fairly minimal though)
325
326Keywords: import,,dependencies
327Platform: any
328Classifier: Intended Audience :: Developers
329Classifier: License :: OSI Approved :: MIT License
330Classifier: Programming Language :: Python
331Classifier: Programming Language :: Python :: 2
332Classifier: Programming Language :: Python :: 2.7
333Classifier: Programming Language :: Python :: 3
334Classifier: Programming Language :: Python :: 3.3
335Classifier: Programming Language :: Python :: 3.4
336Classifier: Topic :: Software Development :: Libraries :: Python Modules
337Classifier: Topic :: Software Development :: Build Tools
338