From 6eced8ca67053662d9cfd0863858768f7d3b9e80 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Mon, 29 Sep 2025 15:00:14 -0400 Subject: [PATCH] `data._symcache`, impl a summary `.__repr__()`, avoids `Asset` causality issues --- piker/data/_symcache.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/piker/data/_symcache.py b/piker/data/_symcache.py index 6a28b492..aef810ee 100644 --- a/piker/data/_symcache.py +++ b/piker/data/_symcache.py @@ -76,7 +76,7 @@ class SymbologyCache(Struct): # all asset-money-systems descriptions as minimally defined by # in `.accounting.Asset` - assets: dict[str, 'Asset'] = field(default_factory=dict) + assets: dict[str, Asset] = field(default_factory=dict) # backend-system pairs loaded in provider (schema) specific # structs. @@ -90,6 +90,18 @@ class SymbologyCache(Struct): # provided by the backend pkg. mktmaps: dict[str, MktPair] = field(default_factory=dict) + def pformat(self) -> str: + return ( + f'<{type(self).__name__}(\n' + f' .mod: {self.mod!r}\n' + f' .assets: {len(self.assets)!r}\n' + f' .pairs: {len(self.pairs)!r}\n' + f' .mktmaps: {len(self.mktmaps)!r}\n' + f')>' + ) + + __repr__ = pformat + def write_config(self) -> None: # put the backend's pair-struct type ref at the top