Skip to content

Extending codeanalyzer-python

Work in progress Help wanted

After the symbol table and base call graph are built, codeanalyzer runs a pipeline of analysis passes — whole-application steps that contribute framework-dispatched entrypoints and synthetic call edges the static graph can’t observe. Out-of-tree packages register their own through the codeanalyzer.analysis_passes entry-point group, so you can teach codeanalyzer a new framework or a new dispatch mechanism without forking it.

This is the youngest part of codeanalyzer-python: the mechanism exists, but no concrete framework finder ships yet. BUILTIN_PASS_FACTORIES is empty, so until a finder is written, PyApplication.entrypoints comes back empty. The frameworks named on this page (Flask, FastAPI, Celery, Click, gRPC, …) are the roadmap — the shapes finders will target — not detection that runs today. Writing the first finder for a framework is itself the contribution.