v2.1.0
New features
- Plain-text output format (
--text/format="text") for both call-graph and module-level modes. Sorted adjacency list with[D]/[U]edge tags. delstatement protocol tracking —del obj.attrnow generates a uses edge to__delattr__, anddel obj[key]to__delitem__.- Iterator protocol tracking —
forloops,async forloops, and comprehensions now generate uses edges to__iter__/__next__(or__aiter__/__anext__for async). - Local variable noise suppression —
visit_Nameno longer creates wildcardUNKNOWN-flavored nodes for local variables with no resolved value. - Positional matching for starred tuple unpacking —
a, b, *c = x, y, z, wnow bindsa→x,b→y,*c→{z, w}instead of the previous Cartesian product. --versionCLI flag.
Bug fixes
- Fix
--definesbeing off by default due to an argparse quirk.
Documentation
- Reorganized README with table of contents.
- Python API example for call-graph mode.
- Updated Features section with all v2.0+ additions.
- Consolidated inline TODO items into
TODO_DEFERRED.md. - New synthetic showcase graph (orbital mechanics theme) demonstrating uses edges, self-recursion, mutual recursion, HSL coloring, and namespace grouping.
Housekeeping
- Bumped
actions/checkoutto v6,actions/setup-pythonto v6.
See CHANGELOG.md for full details.