notebooks/constraint_comparison.ipynb
notebooks/_executed/

# tox / compat testing
.tox/
compat-test-phase1.log

# Python build / cache / packaging artifacts
__pycache__/
*.py[cod]
build/
*.egg-info/
# Written by the hatch-vcs build hook from the git tag; regenerated on every build.
src/gliquid/_version.py

# Logs
*.log

# Reagent knowledge-graph database (local only)
.reagent/

# Editor/IDE local config
.vscode/

# Generated data & local config (kept untracked on main)
# tox.ini is deliberately NOT here: the cross-version compat matrix is part of the project,
# and a contributor cannot reproduce it if the file is untracked.
.claude/
# requirements/ is deliberately NOT ignored: tox.ini (tracked) drives the min half of the
# compat matrix from requirements/min-constraints.txt, so ignoring it would leave the
# matrix unreproducible from a clone -- the same reason tox.ini itself is tracked.
CONTEXT.md
# These two patterns are PATH-ANCHORED to the external cache corpus, which was named data/
# until it became cache/ (the package's own reference tables moved to src/gliquid/reference/
# at the same time). A path-anchored pattern stops matching SILENTLY when its directory is
# renamed -- nothing errors, the repo just starts tracking megabytes of fetched cache. Keep
# these in step with the directory name.
cache/fit_results_cache_*
figures/benchmark_*/
# Per-system DFT entry caches fetched on demand from the Materials Project. A hand-picked
# set of these IS tracked (the fixtures the test suite reads); this pattern only stops
# NEWLY fetched ones showing up as untracked noise. Ignoring a path does not untrack
# anything already in the index, so the committed corpus is unaffected.
cache/*_ENTRIES_MP_GGA.json

# Local secrets (API keys) - never commit
.env
.env.*

scripts/build_branch_feature_cache.py
tests_internal/test_branch_feature_cache.py
tests/_figures/