From 8299c6581862a14fea380682cd1749f2c9f60471 Mon Sep 17 00:00:00 2001 From: goodboy Date: Thu, 16 Apr 2026 13:27:06 -0400 Subject: [PATCH] Clean up `TooFastEdit` remnants and ws-token flow Drop all commented-out `TooFastEdit` class, `reg_err_types`, and `isinstance()` references. Replace the hard ws-token `assert` in `subscribe()` with a soft mismatch log that updates the local `token` ref; cache the result as `latest_token` for use in sub msgs. Also, - Comment out the `reg_err_types` import. - Switch `pformat` -> `ppfmt` in `openOrders` update log. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code --- piker/brokers/kraken/broker.py | 37 +++++++++++++++------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/piker/brokers/kraken/broker.py b/piker/brokers/kraken/broker.py index 3b13a7f3..521dbdc6 100644 --- a/piker/brokers/kraken/broker.py +++ b/piker/brokers/kraken/broker.py @@ -38,7 +38,7 @@ from bidict import bidict import trio import tractor from tractor.devx.pformat import ppfmt -from tractor._exceptions import reg_err_types +# from tractor._exceptions import reg_err_types from piker.accounting import ( Position, @@ -97,13 +97,6 @@ MsgUnion = Union[ ] -# class TooFastEdit(Exception): -# 'Edit requests faster then api submissions' - - -# reg_err_types([TooFastEdit]) - - # TODO: make this wrap the `api.Client` and `ws` instances # and give it methods to submit cancel vs. add vs. edit # requests? @@ -166,7 +159,6 @@ async def handle_order_requests( # triggered-submitted and then we have inavlid # value in `reqids2txids` sent over ws.send()?? log.error('TOO FAST CANCEL/EDIT') - # reqids2txids[reqid] = TooFastEdit(reqid) toofastedit.add(reqid) reqids2txids[reqid] = reqid await ems_order_stream.send( @@ -206,7 +198,6 @@ async def handle_order_requests( # XXX: not sure if this block ever gets hit now? log.error('TOO FAST EDIT') - # reqids2txids[reqid] = TooFastEdit(reqid) reqids2txids[reqid] = reqid toofastedit.add(reqid) await tractor.pause() @@ -338,11 +329,19 @@ async def subscribe( ''' # more specific logic for this in kraken's sync client: # https://github.com/krakenfx/kraken-wsclient-py/blob/master/kraken_wsclient_py/kraken_wsclient_py.py#L188 - assert ( + latest_token: str = await client.get_ws_token() + if ( token - and - token == await client.get_ws_token() - ) + != + latest_token + ): + log.info( + f'RE-subscribing to WS connection..\n' + f'orig-token: {token!r}\n' + f'latest-token: {latest_token!r}\n' + ) + token = latest_token + subnames: set[str] = set() for name, sub_opts in subs: @@ -350,7 +349,8 @@ async def subscribe( 'event': 'subscribe', 'subscription': { 'name': name, - 'token': await client.get_ws_token(), + # 'token': await client.get_ws_token(), + 'token': latest_token, **sub_opts, } } @@ -868,7 +868,7 @@ async def handle_order_updates( for order_msg in order_msgs: log.info( f'`openOrders` msg update_{seq}:\n' - f'{pformat(order_msg)}' + f'{ppfmt(order_msg)}' ) txid, update_msg = list(order_msg.items())[0] @@ -1040,10 +1040,6 @@ async def handle_order_updates( status == 'open' and reqid in toofastedit - # isinstance( - # reqids2txids.get(reqid), - # TooFastEdit - # ) ): # TODO: don't even allow this case # by not moving the client side line @@ -1207,7 +1203,6 @@ async def handle_order_updates( # we throttle too-fast-requests on the ems side and reqid in toofastedit - # not isinstance(txid, TooFastEdit) ): # client was editting too quickly # so we instead cancel this order