POTE/docs/05_dev_setup.md
ilia 204cd0e75b Initial commit: POTE Phase 1 complete
- PR1: Project scaffold, DB models, price loader
- PR2: Congressional trade ingestion (House Stock Watcher)
- PR3: Security enrichment + deployment infrastructure
- 37 passing tests, 87%+ coverage
- Docker + Proxmox deployment ready
- Complete documentation
- Works 100% offline with fixtures
2025-12-14 20:45:34 -05:00

1.2 KiB
Raw Blame History

Dev setup (conventions; code scaffolding comes next)

This doc sets the conventions well implement in the first “code PRs”.

Python + layout

  • Use Python 3.x
  • Source layout: src/ + tests/
  • Prefer type hints and docstrings

Configuration

  • Store secrets in .env (not committed).
  • Commit a .env.example documenting required variables.

Expected variables (initial):

  • POTE_DB_URL (e.g., sqlite:///./pote.db or Postgres URL)
  • QUIVER_API_KEY (optional, if using QuiverQuant)
  • FMP_API_KEY (optional, if using Financial Modeling Prep)

Database

  • Default dev: SQLite for fast local iteration.
  • Support Postgres for “real” runs and larger datasets.
  • Migrations: Alembic (once models are in place).

Testing

  • pytest for unit/integration tests
  • Prefer:
    • HTTP clients tested with mocked responses
    • DB tests using SQLite in a temp file or in-memory where possible

Logging

  • Use standard logging with consistent, parseable messages.
  • ETL jobs should log counts: fetched/inserted/updated/skipped.

PR sizing guideline

Each PR should:

  • implement one coherent piece (schema, one client, one ETL, one metric module)
  • include tests
  • include minimal docs updates (if it changes behavior)