Skip to content

2.2.1 — Hotfix

Choose a tag to compare

@Technologicat Technologicat released this 22 Mar 00:45
· 164 commits to master since this release

Documentation

  • Recommended options in README — added a section with recommended CLI options for common use cases: clean uses-only graphs, fdp layout for larger projects, and --depth 1 for high-level overviews. Re-rendered the example graph with --no-defines --concentrate.
  • --concentrate precision caveat — noted that GraphViz's edge concentration can produce small gaps at split/merge points.

Bug fixes

  • Missing uses edges for names in default argument values — the #61 fix (2.2.0) correctly moved default-value visiting to the enclosing scope, but lost uses edges from the function to names referenced in its defaults. def f(cb=wrapper(func)) now correctly shows f → wrapper and f → func. (#116)
  • --depth dropped almost all uses edgesfilter_by_depth counted raw dots in the fully qualified name, so modules with dotted names (e.g. pkg.sub.mod) inflated the depth of every node inside them. Ancestor lookup then created phantom nodes with the wrong namespace/name split, which were silently discarded. Depth is now computed relative to each node's containing module, giving consistent behaviour regardless of package depth. The depth scale is: 0 = modules, 1 = classes/top-level functions, 2 = methods, etc.

Full changelog: https://github.com/Technologicat/pyan/blob/master/CHANGELOG.md