Compare commits

..

20 Commits

Author SHA1 Message Date
Tyler Goodlet e4a68bdec9 TOCHERRY service_mng_to_tractor: type fix to `.hilevel.ServicecMngr` 2025-02-13 20:02:17 -05:00
Tyler Goodlet 8efbfb7038 Enable `greenback` for `.pause_from_sync()` by default? 2025-02-13 20:02:17 -05:00
Tyler Goodlet 98c068d757 `.brokers.cli`: module type and todo for `--pdb` flag to NOT src from sub-cmd 2025-02-13 20:02:17 -05:00
Tyler Goodlet 363a7cf4e0 Catch using `Sampler.bcast_errors` where possible
In all other possible IPC disconnect handling blocks. Also more
comprehensive typing throughout `uniform_rate_send()`.
2025-02-13 20:02:17 -05:00
Tyler Goodlet f524912882 Group bcast errors as `Sampler.bcast_errors`
A new class var `tuple[Exception]` such that the err set can be reffed
externally as needed for catching other similar pub-sub/IPC failures in
other (related) real-time sub-systems.

Also added some now-masked logging for debugging live-feed stream reading
issues that should ONLY be used for debugging since they'll greatly
degrade HFT perf. Used the new `log.mk_repr()` stuff (that one day we
should prolly pull from `modden` as a dep) for pretty console emissions.
2025-02-13 20:02:17 -05:00
Tyler Goodlet 2f2b87b3d3 Suppress `trio.EndOfChannel`s raised by remote peer
Since now `tractor` will raise this native `trio`-exc translated from
a `Stop` msg when the peer gracefully terminates a `tractor.MsgStream`.
Just `info()` log in such cases versus continuing to warn for the
others.
2025-02-13 20:02:17 -05:00
Tyler Goodlet 513544f5f7 `.tsp._anal`: add (unused) `detect_vlm_gaps()` 2025-02-13 20:02:17 -05:00
Tyler Goodlet 9dc8006f10 `.storage.cli`: collect gap-markup-aids into `tf2aids: dict` prior to pause for introspection 2025-02-13 20:02:17 -05:00
Tyler Goodlet 6f17ef0c34 Delegate to `tractor.msg.pretty_struct` since it was factored from here! 2025-02-13 20:02:17 -05:00
Tyler Goodlet 877f334b85 Teensie `piker.data` styling tweaks
- use more compact optional value style with `|`-union
- fix `.flows` typing-only import since we need `MktPair` to be
  immediately defined for use on a `msgspec.Struct` field.
- more "tree-like" warning msg in `.validate()` reporting.
2025-02-13 20:02:17 -05:00
Tyler Goodlet 0508d08c49 Invert `getattr()` check for `get_mkt_pairs()` ep
Such that we `return` early when not defined by the provider backend to
reduce an indent level in `SymbologyCache.load()`.
2025-02-13 20:02:17 -05:00
Tyler Goodlet 9c14b08b81 Various `.clearing` todos/notes on potential issues with loglevel settings.. 2025-02-13 20:02:17 -05:00
Tyler Goodlet 5ad8863e32 Type loaded backend modules 2025-02-13 20:02:17 -05:00
Tyler Goodlet 5fad27c30d Bump various `.brokers.core` doc string content/style 2025-02-13 20:02:17 -05:00
Tyler Goodlet eb1a0a685d Ignore any non-`.parquet` files under `.config/piker/nativedb/` subdir 2025-02-13 20:02:17 -05:00
Tyler Goodlet 5c3f2750c9 Doc-n-clean `.data._web_bs.open_jsonrpc_session()`
Add a doc-string reflecting recent refinements, drop all the old hook
params, rename `n: trio.Nursery` -> `tn` for "task nursery" fitting with
code base's naming style.
2025-02-13 20:02:17 -05:00
Tyler Goodlet 9b7b062dfd Allow ledger passes to ignore (symcache) unknown fqmes
For example in the paper-eng, if you have a backend that doesn't fully
support a symcache (yet) it's handy to be able to ignore processing
other paper-eng txns when all you care about at the moment is the
simulated symbol.

NOTE, that currently this will still result in a key-error when you load
more then one mkt with the paper engine (for which the backend does not
have the symcache implemented) since no fqme ad-hoc query was made for
the 2nd symbol (and i'm not sure we should support that kinda hackery
over just encouraging the sym-cache being added?). Def needs a little
more thought depending on how many backends are never going to be able
to (easily) support caching..
2025-02-13 20:02:17 -05:00
Tyler Goodlet 0538e420cb .clearing._ems: Don't require `first_quote['last']`
Instead just check for the field (which i'm not huge on the key-name for
anyway) and if not found get the "last price" from the real-time shm
buffer's latest 'close' sample.

Unrelatedly, use a `subs.copy()` in the `Router.client_broadcast()` loop
such that if a `client_stream` is popped on connection failure, we don't
RTE for the "size changed on iteration".
2025-02-13 20:02:17 -05:00
Tyler Goodlet 4848dc40cc data._web_bs: try to raise jsonrpc errors in parent task 2025-02-13 20:02:17 -05:00
Tyler Goodlet 407efe3b10 Mask no-data pause, add perps to no-`/src`-in-fqme asset set
Was orig for debugging an issue with `kucoin` i think but definitely
shouldn't be left in XD

Also add `'perpetual_future'` to the `.start_backfill()` input literal
set since we don't expect the 'btc/usd.perp.binance' for now.
2025-02-13 20:02:17 -05:00

Diff Content Not Available