__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Environment / secrets
.env
.env.*
!.env.example

# Virtual environments
.venv
env/
venv/
testenv/
ENV/
env.bak/
venv.bak/
.pytest_cache/
.coverage
htmlcov/
.tox/
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.DS_Store
*.swp
*.swo
*~

# IDE
.idea/
*.iml
.cursor/
.vscode/

# Build artifacts produced by `python -m build`
*.whl
*.tar.gz

# setuptools_scm writes the resolved version here at build time; it must
# never be committed (would re-introduce dual-source-of-truth for the
# version string).
drg/_version.py

# Runtime / generated artifacts (demo outputs under outputs/output* are tracked)
outputs/*
!outputs/.gitkeep
!outputs/output*_kg.json
!outputs/output*_schema.json

# Tooling caches
.ruff_cache/
.mypy_cache/
