Original pyan.py for Python 2 by Edmund Horner, 2012. Original blog post with explanation.
Coloring and grouping for GraphViz output by Juha Jeronen.
Git repository cleanup and maintenance by David Fraser.
yEd GraphML output, and framework for easily adding new output formats by Patrick Massot.
A bugfix [2] and the option --dot-rankdir [3] contributed by GitHub user ch41rmn.
A bug in .tgf output [4] pointed out and fix suggested by Adam Eijdenberg.
This Python 3 port, analyzer expansion, and additional refactoring by Juha Jeronen.
HTML and SVG export by Jan Beitner.
Support for relative imports by Jan Beitner and Rakan Alanazi.
Relative path fix by Joenio Marques da Costa.
Migration to uv build system by A M (BackBenchDevs).
Deterministic edge ordering fix by Aurélien Grosdidier.
--dot-ranksep and --graphviz-layout options by Maciej A. Czyzewski.
get_module_name bug report (.py in directory names) and resolve_imports KeyError fix by CannedFish.
Directional graph filtering idea (--direction up/down) by anetczuk.
Sphinx extension integration test by BlocksecPHD.
Further contributions by Ioannis Filippidis, Jan Malek, José Eduardo Montenegro Cavalcanti de Oliveira, Mantas Zimnickas, Sam Basak, Brady Deetz, and GitHub user dmfreemon.
2026 revival, modernization for Python 3.10–3.14, module-level dependency analysis, and comprehensive test suite by Juha Jeronen, with Claude (Anthropic) as AI pair programmer.
Subsequent build system migration to PDM, with fleet-wide alignment of pyproject.toml, lint, and CI conventions, by Juha Jeronen, with Claude (Anthropic) as AI pair programmer.