# Python
__pycache__/
*.py[cod]
*$py.class

# Environment — local secret overrides only.
# Commit .env, .env.development, and .env.production (shared, non-secret config);
# keep machine-local secrets in .env.local / .env.*.local, which stay ignored.
.env.local
.env.*.local

# Virtual environments
.venv
venv/
ENV/

# Node
node_modules/
.pnp/
.pnp.js

# Lockfiles are NOT ignored. This is an application, not a library: committing
# the lockfile is what makes an install reproducible, and it is what `npm ci`
# requires. Ignoring it broke the Dockerfile in our own deployment guide —
# a cloned repo had no lockfile, so `npm ci` exited with EUSAGE. See P1-29.

# Pyxle build artifacts
.pyxle-build/
dist/

# IDEs
.idea/
.vscode/
.DS_Store
