VAFT dependency explorer

This page shows how VAFT is organized today, as the source tree says: every node is a Python module or package, and an arrow from A to B means A contains an import statement naming B. It is generated from the documented commit (8bd7ef7) by Grimp 3.17 and nothing in it is drawn by hand.

What the graph deliberately does not say:

  • An import is a source dependency, not a scientific one, and not a call graph. Imports inside functions and TYPE_CHECKING blocks are included, because Grimp reads statements, not execution.
  • No edge is a verdict. A cross-layer import or an import cycle is a fact to inspect, and many are legitimate; which boundaries VAFT intends is the conceptual question of Computational layers and of scientific ownership (#1645). Scientific architecture says how this observed view relates to the normative one and to production lineage.
  • External scientific codes (EFIT, CHEASE, GPEC, …) are executables VAFT invokes, not Python imports, so they never appear here. How the production pipelines run them, and what flows between their stages, is the pipeline lineage explorer. External packages are third-party top-level import names; the standard library is left out.
  • Scientific meaning is a third, separate graph: the scientific ontology explorer.

Layers are the package hierarchy and nothing more: vaft.<layer>.* belongs to <layer>, and the private packages and modules directly under vaft are other. Public objects, their summaries and their API, scientific-reference and source links come from the API reference catalog, so the two can never disagree.

How to use it. The default view aggregates modules into packages; arrow width grows with the number of import statements between them. Switch Level to Modules for single modules, search for a module or a public object (for example vaft.process.equilibrium or vaft.formula.geometry), then restrict the view to its dependencies, its dependents, or both, one hop, two hops or transitively. The detail panel links every import to its line at the documented commit.

This interactive graph needs JavaScript.

646 modules, 50 packages, 52 external packages, 3276 import relations, 5868 public objects and 14 import cycles in this snapshot.

Regenerate the snapshot locally with:

pip install -e ".[architecture]"
python -m vaft._dependency_graph --output docs/_data/dependency_graph.yml

results matching ""

    No results matching ""