Skip to content

Commit 2a99f7a

Browse files
committed
Drop remaining BaseModel api usage from rest of codebase
1 parent b44e2d9 commit 2a99f7a

File tree

6 files changed

+54
-62
lines changed

6 files changed

+54
-62
lines changed

piker/brokers/ib/broker.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ async def handle_order_requests(
148148
oid=request_msg['oid'],
149149
symbol=request_msg['symbol'],
150150
reason=f'No account found: `{account}` ?',
151-
).dict())
151+
))
152152
continue
153153

154154
client = _accounts2clients.get(account)
@@ -161,7 +161,7 @@ async def handle_order_requests(
161161
oid=request_msg['oid'],
162162
symbol=request_msg['symbol'],
163163
reason=f'No api client loaded for account: `{account}` ?',
164-
).dict())
164+
))
165165
continue
166166

167167
if action in {'buy', 'sell'}:
@@ -188,7 +188,7 @@ async def handle_order_requests(
188188
oid=request_msg['oid'],
189189
symbol=request_msg['symbol'],
190190
reason='Order already active?',
191-
).dict())
191+
))
192192

193193
# deliver ack that order has been submitted to broker routing
194194
await ems_order_stream.send(
@@ -197,9 +197,8 @@ async def handle_order_requests(
197197
oid=order.oid,
198198
# broker specific request id
199199
reqid=reqid,
200-
time_ns=time.time_ns(),
201200
account=account,
202-
).dict()
201+
)
203202
)
204203

205204
elif action == 'cancel':
@@ -559,7 +558,7 @@ async def open_stream(
559558
cids2pps,
560559
validate=True,
561560
)
562-
all_positions.extend(msg.dict() for msg in msgs)
561+
all_positions.extend(msg for msg in msgs)
563562

564563
if not all_positions and cids2pps:
565564
raise RuntimeError(
@@ -665,7 +664,7 @@ async def emit_pp_update(
665664
msg = msgs[0]
666665
break
667666

668-
await ems_stream.send(msg.dict())
667+
await ems_stream.send(msg)
669668

670669

671670
async def deliver_trade_events(
@@ -743,7 +742,7 @@ async def deliver_trade_events(
743742

744743
broker_details={'name': 'ib'},
745744
)
746-
await ems_stream.send(msg.dict())
745+
await ems_stream.send(msg)
747746

748747
case 'fill':
749748

@@ -803,7 +802,7 @@ async def deliver_trade_events(
803802
broker_time=trade_entry['broker_time'],
804803

805804
)
806-
await ems_stream.send(msg.dict())
805+
await ems_stream.send(msg)
807806

808807
# 2 cases:
809808
# - fill comes first or
@@ -879,7 +878,7 @@ async def deliver_trade_events(
879878
cid, msg = pack_position(item)
880879
# acctid = msg.account = accounts_def.inverse[msg.account]
881880
# cuck ib and it's shitty fifo sys for pps!
882-
# await ems_stream.send(msg.dict())
881+
# await ems_stream.send(msg)
883882

884883
case 'event':
885884

@@ -891,7 +890,7 @@ async def deliver_trade_events(
891890
# level...
892891
# reqid = item.get('reqid', 0)
893892
# if getattr(msg, 'reqid', 0) < -1:
894-
# log.info(f"TWS triggered trade\n{pformat(msg.dict())}")
893+
# log.info(f"TWS triggered trade\n{pformat(msg)}")
895894

896895
# msg.reqid = 'tws-' + str(-1 * reqid)
897896

piker/brokers/kraken/broker.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
BrokerdPosition,
4747
BrokerdStatus,
4848
)
49-
from pikerd.data.types import Struct
49+
from piker.data.types import Struct
5050
from . import log
5151
from .api import (
5252
Client,
@@ -110,7 +110,7 @@ async def handle_order_requests(
110110
'https://github.com/pikers/piker/issues/299'
111111
),
112112

113-
).dict())
113+
))
114114
continue
115115

116116
# validate
@@ -136,7 +136,7 @@ async def handle_order_requests(
136136
symbol=order.symbol,
137137
reason="Failed order submission",
138138
broker_details=resp
139-
).dict()
139+
)
140140
)
141141
else:
142142
# TODO: handle multiple orders (cancels?)
@@ -161,7 +161,7 @@ async def handle_order_requests(
161161
# account the made the order
162162
account=order.account
163163

164-
).dict()
164+
)
165165
)
166166

167167
elif action == 'cancel':
@@ -189,7 +189,7 @@ async def handle_order_requests(
189189
symbol=msg.symbol,
190190
reason="Failed order cancel",
191191
broker_details=resp
192-
).dict()
192+
)
193193
)
194194

195195
if not error:
@@ -217,7 +217,7 @@ async def handle_order_requests(
217217
# cancels will eventually get cancelled
218218
reason="Order cancel is still pending?",
219219
broker_details=resp
220-
).dict()
220+
)
221221
)
222222

223223
else: # order cancel success case.
@@ -230,7 +230,7 @@ async def handle_order_requests(
230230
status='cancelled',
231231
reason='Order cancelled',
232232
broker_details={'name': 'kraken'}
233-
).dict()
233+
)
234234
)
235235
else:
236236
log.error(f'Unknown order command: {request_msg}')
@@ -330,7 +330,7 @@ async def trades_dialogue(
330330
avg_price=p.be_price,
331331
currency='',
332332
)
333-
position_msgs.append(msg.dict())
333+
position_msgs.append(msg)
334334

335335
await ctx.started(
336336
(position_msgs, [acc_name])
@@ -408,7 +408,7 @@ async def trades_dialogue(
408408
broker_details={'name': 'kraken'},
409409
broker_time=broker_time
410410
)
411-
await ems_stream.send(fill_msg.dict())
411+
await ems_stream.send(fill_msg)
412412

413413
filled_msg = BrokerdStatus(
414414
reqid=reqid,
@@ -432,7 +432,7 @@ async def trades_dialogue(
432432
# https://github.com/pikers/piker/issues/296
433433
remaining=0,
434434
)
435-
await ems_stream.send(filled_msg.dict())
435+
await ems_stream.send(filled_msg)
436436

437437
# update ledger and position tracking
438438
trans = await update_ledger(acctid, trades)
@@ -469,7 +469,7 @@ async def trades_dialogue(
469469
# TODO
470470
# currency=''
471471
)
472-
await ems_stream.send(pp_msg.dict())
472+
await ems_stream.send(pp_msg)
473473

474474
case [
475475
trades_msgs,

piker/clearing/_client.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ class OrderBook:
5858

5959
def send(
6060
self,
61-
msg: Order,
61+
msg: Order | dict,
6262

6363
) -> dict:
6464
self._sent_orders[msg.oid] = msg
65-
self._to_ems.send_nowait(msg.dict())
65+
self._to_ems.send_nowait(msg)
6666
return msg
6767

6868
def update(
@@ -73,9 +73,8 @@ def update(
7373

7474
) -> dict:
7575
cmd = self._sent_orders[uuid]
76-
msg = cmd.dict()
77-
msg.update(data)
78-
self._sent_orders[uuid] = Order(**msg)
76+
msg = cmd.copy(update=data)
77+
self._sent_orders[uuid] = msg
7978
self._to_ems.send_nowait(msg)
8079
return cmd
8180

@@ -88,7 +87,7 @@ def cancel(self, uuid: str) -> bool:
8887
oid=uuid,
8988
symbol=cmd.symbol,
9089
)
91-
self._to_ems.send_nowait(msg.dict())
90+
self._to_ems.send_nowait(msg)
9291

9392

9493
_orders: OrderBook = None
@@ -149,7 +148,7 @@ async def relay_order_cmds_from_sync_code(
149148
book = get_orders()
150149
async with book._from_order_book.subscribe() as orders_stream:
151150
async for cmd in orders_stream:
152-
if cmd['symbol'] == symbol_key:
151+
if cmd.symbol == symbol_key:
153152
log.info(f'Send order cmd:\n{pformat(cmd)}')
154153
# send msg over IPC / wire
155154
await to_ems_stream.send(cmd)

piker/clearing/_ems.py

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ async def clear_dark_triggers(
231231
price=submit_price,
232232
size=cmd['size'],
233233
)
234-
await brokerd_orders_stream.send(msg.dict())
234+
await brokerd_orders_stream.send(msg)
235235

236236
# mark this entry as having sent an order
237237
# request. the entry will be replaced once the
@@ -247,14 +247,11 @@ async def clear_dark_triggers(
247247

248248
msg = Status(
249249
oid=oid, # ems order id
250-
resp=resp,
251250
time_ns=time.time_ns(),
252-
symbol=fqsn,
251+
resp=resp,
253252
trigger_price=price,
254-
broker_details={'name': broker},
255-
cmd=cmd, # original request message
256-
257-
).dict()
253+
brokerd_msg=cmd,
254+
)
258255

259256
# remove exec-condition from set
260257
log.info(f'removing pred for {oid}')
@@ -577,11 +574,11 @@ async def translate_and_relay_brokerd_events(
577574

578575
if name == 'position':
579576

580-
pos_msg = BrokerdPosition(**brokerd_msg).dict()
577+
pos_msg = BrokerdPosition(**brokerd_msg)
581578

582579
# XXX: this will be useful for automatic strats yah?
583580
# keep pps per account up to date locally in ``emsd`` mem
584-
sym, broker = pos_msg['symbol'], pos_msg['broker']
581+
sym, broker = pos_msg.symbol, pos_msg.broker
585582

586583
relay.positions.setdefault(
587584
# NOTE: translate to a FQSN!
@@ -672,7 +669,7 @@ async def translate_and_relay_brokerd_events(
672669
entry.reqid = reqid
673670

674671
# tell broker to cancel immediately
675-
await brokerd_trades_stream.send(entry.dict())
672+
await brokerd_trades_stream.send(entry)
676673

677674
# - the order is now active and will be mirrored in
678675
# our book -> registered as live flow
@@ -712,7 +709,7 @@ async def translate_and_relay_brokerd_events(
712709
# if 10147 in message: cancel
713710

714711
resp = 'broker_errored'
715-
broker_details = msg.dict()
712+
broker_details = msg
716713

717714
# don't relay message to order requester client
718715
# continue
@@ -747,7 +744,7 @@ async def translate_and_relay_brokerd_events(
747744
resp = 'broker_' + msg.status
748745

749746
# pass the BrokerdStatus msg inside the broker details field
750-
broker_details = msg.dict()
747+
broker_details = msg
751748

752749
elif name in (
753750
'fill',
@@ -756,7 +753,7 @@ async def translate_and_relay_brokerd_events(
756753

757754
# proxy through the "fill" result(s)
758755
resp = 'broker_filled'
759-
broker_details = msg.dict()
756+
broker_details = msg
760757

761758
log.info(f'\nFill for {oid} cleared with:\n{pformat(resp)}')
762759

@@ -774,7 +771,7 @@ async def translate_and_relay_brokerd_events(
774771
time_ns=time.time_ns(),
775772
broker_reqid=reqid,
776773
brokerd_msg=broker_details,
777-
).dict()
774+
)
778775
)
779776
except KeyError:
780777
log.error(
@@ -846,7 +843,7 @@ async def process_client_order_cmds(
846843
f'Submitting cancel for live order {reqid}'
847844
)
848845

849-
await brokerd_order_stream.send(msg.dict())
846+
await brokerd_order_stream.send(msg)
850847

851848
else:
852849
# this might be a cancel for an order that hasn't been
@@ -868,7 +865,7 @@ async def process_client_order_cmds(
868865
resp='dark_cancelled',
869866
oid=oid,
870867
time_ns=time.time_ns(),
871-
).dict()
868+
)
872869
)
873870
# de-register this client dialogue
874871
router.dialogues.pop(oid)
@@ -923,7 +920,7 @@ async def process_client_order_cmds(
923920
# handle relaying the ems side responses back to
924921
# the client/cmd sender from this request
925922
log.info(f'Sending live order to {broker}:\n{pformat(msg)}')
926-
await brokerd_order_stream.send(msg.dict())
923+
await brokerd_order_stream.send(msg)
927924

928925
# an immediate response should be ``BrokerdOrderAck``
929926
# with ems order id from the ``trades_dialogue()``
@@ -1003,7 +1000,7 @@ async def process_client_order_cmds(
10031000
resp=resp,
10041001
oid=oid,
10051002
time_ns=time.time_ns(),
1006-
).dict()
1003+
)
10071004
)
10081005

10091006

0 commit comments

Comments
 (0)