Skip to content

Commit 3516043

Browse files
committed
ADD: Added setter properties to BidAskPair.
1 parent 7455468 commit 3516043

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed

python/python/mbinary/_lib.pyi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,18 @@ class BidAskPair:
203203
def bid_ct(self) -> int: ...
204204
@property
205205
def ask_ct(self) -> int: ...
206+
@bid_px.setter
207+
def bid_px(self, value: int) -> None: ...
208+
@ask_px.setter
209+
def ask_px(self, value: int) -> None: ...
210+
@bid_sz.setter
211+
def bid_sz(self, value: int) -> None: ...
212+
@ask_sz.setter
213+
def ask_sz(self, value: int) -> None: ...
214+
@ask_ct.setter
215+
def ask_ct(self, value: int) -> None: ...
216+
@bid_ct.setter
217+
def bid_ct(self, value: int) -> None: ...
206218

207219
class OhlcvMsg(RecordMsg):
208220
def __init__(

python/tests/test_integration.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,37 @@ def test_symbol_map(self):
900900
mappings = symbol_map.map
901901
self.assertEqual(mappings, mappings)
902902

903+
def test_bid_ask(self):
904+
pair = BidAskPair(1, 2, 3, 4, 5, 6)
905+
906+
# Validate Initial Data
907+
self.assertEqual(pair.bid_px, 1)
908+
self.assertEqual(pair.ask_px, 2)
909+
self.assertEqual(pair.bid_sz, 3)
910+
self.assertEqual(pair.ask_sz, 4)
911+
self.assertEqual(pair.bid_ct, 5)
912+
self.assertEqual(pair.ask_ct, 6)
913+
self.assertEqual(pair.pretty_bid_px, 1 / 1e9)
914+
self.assertEqual(pair.pretty_ask_px, 2 / 1e9)
915+
916+
# Test
917+
pair.ask_px = 900
918+
pair.bid_px = 800
919+
pair.ask_sz = 700
920+
pair.bid_sz = 600
921+
pair.ask_ct = 500
922+
pair.bid_ct = 400
923+
924+
# Validate
925+
self.assertEqual(pair.bid_px, 800)
926+
self.assertEqual(pair.ask_px, 900)
927+
self.assertEqual(pair.bid_sz, 600)
928+
self.assertEqual(pair.ask_sz, 700)
929+
self.assertEqual(pair.bid_ct, 400)
930+
self.assertEqual(pair.ask_ct, 500)
931+
self.assertEqual(pair.pretty_bid_px, 800 / 1e9)
932+
self.assertEqual(pair.pretty_ask_px, 900 / 1e9)
933+
903934
def test_is_record(self):
904935
pair = BidAskPair(1, 2, 3, 4, 5, 6)
905936
ohlcv_msg = OhlcvMsg(1, 123456765432, 0, 1, 2, 3, 4, 100000)

rust/src/python/records.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,36 @@ impl BidAskPair {
4747
}
4848
}
4949

50+
#[setter]
51+
fn set_bid_px(&mut self, price: i64) {
52+
self.bid_px = price;
53+
}
54+
55+
#[setter]
56+
fn set_ask_px(&mut self, price: i64) {
57+
self.ask_px = price;
58+
}
59+
60+
#[setter]
61+
fn set_bid_sz(&mut self, size: u32) {
62+
self.bid_sz = size;
63+
}
64+
65+
#[setter]
66+
fn set_ask_sz(&mut self, size: u32) {
67+
self.ask_sz = size;
68+
}
69+
70+
#[setter]
71+
fn set_bid_ct(&mut self, count: u32) {
72+
self.bid_ct = count;
73+
}
74+
75+
#[setter]
76+
fn set_ask_ct(&mut self, count: u32) {
77+
self.ask_ct = count;
78+
}
79+
5080
#[getter]
5181
fn pretty_bid_px(&self) -> f64 {
5282
self.bid_px as f64 / PRICE_SCALE as f64

0 commit comments

Comments
 (0)