Codex
019b620ab9
malkhut: asset bridge — directory ↔ classification integration
asset_bridge.py: connects Fable's AssetDirectory (operational layer,
runtime-mutable, JSON-backed listing status) with our AssetProfile
(taxonomic layer, frozen, invariant classification).
Functions:
- sync_asset_to_profile(directory, symbol): sync one asset's TRADING
exchanges from directory to AssetProfile.exchanges
- sync_exchanges_from_directory(directory): sync all matching assets
- get_universe_stats(directory): matched/unmatched counts
49 tests covering:
- normalize_symbol (7 edge cases)
- ExchangeListing validation (4 tests)
- AssetRecord listing queries (5 tests)
- AssetDirectory CRUD + persistence (14 tests)
- symbols_for_exchange filtering by status (4 tests)
- venue_symbol mapping (3 tests)
- Bridge sync (8 tests with state save/restore)
- Integration with ScenarioFactory + get_assets_on_exchange (4 tests)
Total: 1246 tests across 49 files, all green, zero regressions.
Fable's assets/ package preserved intact, interfaces retained.
2026-07-12 10:45:37 +02:00
..
2026-07-11 10:33:56 +02:00
2026-07-12 00:40:14 +02:00
2026-07-11 06:37:17 +02:00
2026-07-12 10:45:37 +02:00
2026-07-12 00:40:14 +02:00
2026-07-11 06:37:17 +02:00
2026-07-11 20:19:32 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 20:19:32 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:33:56 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:33:56 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:33:56 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00
2026-07-11 10:28:38 +02:00