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

# ── редактори ────────────────────────────────────────────────────────────────
.idea/
.vscode/
*.swp
.DS_Store

# ── 🔒 дані користувача НІКОЛИ не в репозиторії ──────────────────────────────
# Робочий простір (скани, канон, звіти) живе поза кодом — це і є сенс поділу
# «код / дані». Правила нижче стоять на випадок, якщо хтось розгорне простір
# усередині клону: вміст чужого дослідження не має шансу поїхати в git.
#
# 🔴 Шаблони ПРИВ'ЯЗАНІ ДО КОРЕНЯ (`/data/`, не `data/`). Без слеша спереду git
# застосовує їх на будь-якій глибині — і `data/` мовчки з'їдав власні дані
# ПАКЕТА (`src/nyshporka/archives/data/archives.yaml`). Спіймано на коміті, який
# вийшов на три файли замість чотирьох: пак поїхав би в реліз без свого ж
# YAML, а локально все працювало б, бо файл лежить на диску.
/data/
/reports/
/workspace/
/nyshporka.toml
*.sqlite
*.sqlite3

# ── ваги моделей ─────────────────────────────────────────────────────────────
# Роздаються GitHub-релізами зі sha256, а не через git: історія не забуває, і
# 97 МБ на версію лишались би в кожному клоні назавжди. LFS теж не варіант —
# безкоштовна квота 1 ГБ менша за один набір версій.
*.pt
*.pth
*.onnx
*.engine
*.mlmodel
# 🔴 ПРИВ'ЯЗАНО ДО КОРЕНЯ. Неприв'язане `models/` збігається з БУДЬ-ЯКОЮ текою
# такого імені на будь-якій глибині — і з'їдало `src/nyshporka/models/`, тобто
# одинадцять файлів моделей даних, ядро пакета. Помітно це не було нічим: збірка
# колеса йде з робочого дерева, тести теж, і локально все зелене. Виявилось аж
# на CI після першого push — «Cannot find implementation for nyshporka.models».
# Другий раз той самий шаблон: перед цим так само зникав `archives/data/`.
/models/

# ── секрети ──────────────────────────────────────────────────────────────────
.env
.env.*
!.env.example
*.pem
*.key
