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 21:57:04 +02:00
2026-07-11 10:36:30 +02:00
2026-07-11 10:23:44 +02:00
2026-07-11 10:31:31 +02:00
2026-07-11 10:31:31 +02:00
2026-07-11 10:26:01 +02:00
2026-07-11 10:31:31 +02:00
2026-07-11 10:31:31 +02:00
2026-07-12 10:45:37 +02:00
2026-07-12 10:45:37 +02:00
2026-07-11 10:31:31 +02:00
2026-07-11 10:21:27 +02:00
2026-07-11 10:21:27 +02:00
2026-07-11 10:23:44 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:39:03 +02:00
2026-07-11 10:26:01 +02:00
2026-07-11 10:26:01 +02:00
2026-07-11 10:21:27 +02:00
2026-07-11 10:21:27 +02:00
2026-07-11 10:41:31 +02:00
2026-07-11 10:41:31 +02:00
2026-07-11 10:21:27 +02:00