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