Initial scaffold + canonical Activity model
Context ------- New connector suite that syncs UK brokerage activity (Trading212, InvestEngine, Schwab email-parsed, CSV drop-folder) into Wealthfolio. Lives outside finance/ intentionally — finance/ is untouched per the plan at ~/.claude/plans/let-s-work-on-linking-temporal-valiant.md. This change ----------- - Poetry project with httpx, typer, bs4, dev tools (pytest, mypy strict, ruff, yapf). - Canonical Activity + Account models with the 6 UK tax wrappers (ISA/SIPP/GIA/LISA/JISA/WORKPLACE_PENSION) and the 12 Wealthfolio activity types from docs/activities/activity-types.md on the upstream. - Validation invariants: BUY/SELL need qty+price, DIVIDEND/DEPOSIT/etc need amount — raises early so providers can't silently emit broken rows. - to_wealthfolio_csv_row() shape matches Wealthfolio's CSV import; primary sink path per the plan. Test plan --------- ## Automated - poetry run pytest -q → 7 passed in 0.03s - poetry run mypy broker_sync tests → Success: no issues found in 4 source files - poetry run ruff check . → All checks passed! - poetry run yapf --diff --recursive broker_sync tests → no diff ## Manual Verification Not applicable — pure data model, no runtime behaviour. Closes: code-thw.1
This commit is contained in:
commit
a2aa7ec486
7 changed files with 958 additions and 0 deletions
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
__pycache__/
|
||||
*.py[cod]
|
||||
*.egg-info/
|
||||
.pytest_cache/
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
.coverage
|
||||
.venv/
|
||||
venv/
|
||||
dist/
|
||||
build/
|
||||
*.db
|
||||
*.db-journal
|
||||
.DS_Store
|
||||
.env
|
||||
.envrc
|
||||
Loading…
Add table
Add a link
Reference in a new issue