# Keep the build context lean and never ship secrets into an image layer. # Secrets / local env .env .env.* !.env.example # VCS & CI .git .gitignore .github # Python caches & build artefacts __pycache__/ *.py[cod] *.egg-info/ .eggs/ build/ dist/ .venv/ venv/ .mypy_cache/ .ruff_cache/ .pytest_cache/ .coverage htmlcov/ coverage.xml # Tests & docs are not needed in the runtime image tests/ docs/ scope-docs/ # Editor / OS cruft .idea/ .vscode/ *.swp .DS_Store # Compose / ops files don't belong in the image docker-compose*.yml ops/ # NOTE: README.md and LICENSE are intentionally NOT ignored — the build backend # (hatchling) reads `readme`/`license` from pyproject.toml at build time.