2.2.1 — Hotfix
Documentation
- Recommended options in README — added a section with recommended CLI options for common use cases: clean uses-only graphs,
fdplayout for larger projects, and--depth 1for high-level overviews. Re-rendered the example graph with--no-defines --concentrate. --concentrateprecision 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 showsf → wrapperandf → func. (#116) --depthdropped almost all uses edges —filter_by_depthcounted 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