# Python
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.venv/
venv/

# uv
# (keep pyproject.toml + uv.lock tracked; ignore caches only)

# Node / JS build
node_modules/
npm-debug.log*
yarn-error.log*

# TypeScript monorepo build output (packages/*). The golden test fixtures under
# packages/core/test/fixtures/ are deliberately COMMITTED (the Polars oracle output);
# only the compiled dist / dist-test and tsbuildinfo are ignored.
packages/*/dist/
packages/*/dist-test/
*.tsbuildinfo

# Sphinx docs build output
docs/_build/

# NOTE: the built JS bundle + dash-generated files (dash_tensor_grid/*.js,
# metadata.json, package-info.json) are deliberately COMMITTED, not ignored.
# Reason: the package must be installable and publishable with Python tooling
# ALONE (pip / uv build) on machines without npm. Rebuild them with
# `npm run build` whenever the React source under src/ changes, then commit.

# IDE
.idea/
.vscode/
*.iml

# Claude Code (local/ephemeral; un-ignore specific shared files later if wanted)
.claude/

# OS
.DS_Store
Thumbs.db

# Local planning doc — not tracked
TODO.md
