__pycache__/
build/
dist/
*.egg-info/
.pytest_cache/
.cursor/
.cursorignore
.cursor
.cursorindexingignore
xnotes/*

# pyenv
.python-version

# Environments
.env
.envrc
.venv
.vscode/settings.json

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# ruff
.ruff_cache/

# JetBrains
.idea/

/coverage.xml
/.coverage
coverage_output.log
**/.DS_Store
.local_coverage_data

# Captures taken from a real panel. These carry the panel's serial (which is also
# its MQTT username), the household's circuit names, and real consumption — none
# of which belongs in a repository. The differential that reads them commits its
# *verdict* only, never the capture, and skips when the file is absent.
tests/fixtures/live_*.json
