finance.position (171 rows, 2020-06-07 to 2025-12-19) is the only source of InvestEngine + Schwab trade history pre-dating the broker-sync project. This provider reads it once and pushes every row into the correct WF account (.L tickers → IE ISA, others → Schwab). Dedup: external_id = 'finance-mysql:position:<PK>' — idempotent on re-run. Auth: aiomysql as MySQL root (user-authorized) against the standalone mysql:8.4 in-cluster service. New CLI: broker-sync finance-mysql-import New tests: 5 unit tests covering route, symbol normalise, BUY/SELL detection. poetry run pytest -q → 114 passed, 1 skipped poetry run mypy → clean (aiomysql shielded with type: ignore) poetry run ruff check → clean |
||
|---|---|---|
| .. | ||
| fixtures | ||
| providers | ||
| sinks | ||
| __init__.py | ||
| test_cli.py | ||
| test_dedup.py | ||
| test_fx.py | ||
| test_fx_ecb.py | ||
| test_models.py | ||
| test_normaliser.py | ||
| test_pipeline.py | ||