Summary
_SKIP_DIRS in graphify/detect.py includes .tox but not .nox. Repos using nox (the tox successor) get their virtualenvs fully indexed, flooding the graph with dependency noise.
Real-world impact
Windows 11, graphifyy 0.9.11, graphify extract on a Python repo containing a .nox/ env:
- Graph came out with 7,365 nodes — 6,720 of them (91%) sourced from
.nox/ (Jupyter nbextensions, pydeck, and other site-packages content inside the nox venv).
- The useful graph was only ~645 nodes, drowned in vendored dependencies.
- Semantic extraction also burned LLM tokens reading venv docs.
Checked master (graphify/detect.py, around the _SKIP_DIRS literal): .tox, .venv, node_modules, .next, .terraform are all there — .nox is not. Since nox is the direct successor of tox and creates .nox/ by convention (same shape of directory tree), this looks like an oversight rather than a decision.
Suggested fix
One line in _SKIP_DIRS:
".tox", ".nox", ".eggs", "*.egg-info",
Workaround (for anyone hitting this)
.graphifyignore at the repo root with:
then rebuild (GRAPHIFY_FORCE=1 graphify update . or delete graphify-out/ and re-extract). In my case this took the graph from 7,365 inflated nodes to 628 real ones.
Summary
_SKIP_DIRSingraphify/detect.pyincludes.toxbut not.nox. Repos using nox (the tox successor) get their virtualenvs fully indexed, flooding the graph with dependency noise.Real-world impact
Windows 11, graphifyy 0.9.11,
graphify extracton a Python repo containing a.nox/env:.nox/(Jupyter nbextensions, pydeck, and other site-packages content inside the nox venv).Checked
master(graphify/detect.py, around the_SKIP_DIRSliteral):.tox,.venv,node_modules,.next,.terraformare all there —.noxis not. Since nox is the direct successor of tox and creates.nox/by convention (same shape of directory tree), this looks like an oversight rather than a decision.Suggested fix
One line in
_SKIP_DIRS:Workaround (for anyone hitting this)
.graphifyignoreat the repo root with:then rebuild (
GRAPHIFY_FORCE=1 graphify update .or deletegraphify-out/and re-extract). In my case this took the graph from 7,365 inflated nodes to 628 real ones.