Phase 0: project skeleton

- pyproject.toml with uv, deps for runtime + gui + backtest + dev
- ruff/mypy strict config, pre-commit hooks for ruff/mypy/pytest
- src/cerbero_bite/ layout with empty modules ready for Phase 1+
- structlog JSONL logger with daily rotation
- click CLI with placeholder subcommands (status, start, kill-switch,
  gui, replay, config hash, audit verify)
- 6 smoke tests passing, mypy --strict clean, ruff clean

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-26 23:10:30 +02:00
commit 881bc8a1bf
40 changed files with 6018 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
"""Shared pytest fixtures for Cerbero Bite tests."""
from __future__ import annotations
from collections.abc import Iterator
from pathlib import Path
import pytest
@pytest.fixture
def tmp_data_dir(tmp_path: Path) -> Iterator[Path]:
"""Isolated data directory with the standard subfolder layout."""
data = tmp_path / "data"
(data / "log").mkdir(parents=True)
(data / "backups").mkdir()
yield data
@pytest.fixture
def project_root() -> Path:
"""Path to the project root (parent of ``src/``)."""
return Path(__file__).resolve().parent.parent