Decimal
This commit is contained in:
+16
-12
@@ -1,11 +1,12 @@
|
||||
import struct
|
||||
from decimal import Decimal
|
||||
|
||||
def pwp_number(fmt):
|
||||
def pwp_number(fmt, value_type):
|
||||
size = struct.calcsize(fmt)
|
||||
|
||||
def decorator(cls):
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
self.value = value_type(value)
|
||||
|
||||
def to_com(self):
|
||||
return struct.pack(fmt, self.value)
|
||||
@@ -24,34 +25,37 @@ def pwp_number(fmt):
|
||||
return decorator
|
||||
|
||||
# Unsigned integers
|
||||
@pwp_number("<B")
|
||||
@pwp_number("<B", int)
|
||||
class u8: pass
|
||||
|
||||
@pwp_number("<H")
|
||||
@pwp_number("<H", int)
|
||||
class u16: pass
|
||||
|
||||
@pwp_number("<I")
|
||||
@pwp_number("<I", int)
|
||||
class u32: pass
|
||||
|
||||
@pwp_number("<Q")
|
||||
@pwp_number("<Q", int)
|
||||
class u64: pass
|
||||
|
||||
# Signed integers
|
||||
@pwp_number("<b")
|
||||
@pwp_number("<b", int)
|
||||
class i8: pass
|
||||
|
||||
@pwp_number("<h")
|
||||
@pwp_number("<h", int)
|
||||
class i16: pass
|
||||
|
||||
@pwp_number("<i")
|
||||
@pwp_number("<i", int)
|
||||
class i32: pass
|
||||
|
||||
@pwp_number("<q")
|
||||
@pwp_number("<q", int)
|
||||
class i64: pass
|
||||
|
||||
# Floating point
|
||||
@pwp_number("<f")
|
||||
@pwp_number("<f", float)
|
||||
class f32: pass
|
||||
|
||||
@pwp_number("<d")
|
||||
@pwp_number("<d", float)
|
||||
class f64: pass
|
||||
|
||||
@pwp_number("<BiI", Decimal)
|
||||
class decimal: pass
|
||||
|
||||
+5
-5
@@ -68,9 +68,9 @@ class Candle:
|
||||
close_time: u64
|
||||
coin: str
|
||||
interval: str
|
||||
open: f64
|
||||
high: f64
|
||||
low: f64
|
||||
close: f64
|
||||
volume: f64
|
||||
open: decimal
|
||||
high: decimal
|
||||
low: decimal
|
||||
close: decimal
|
||||
volume: decimal
|
||||
num_trades: u64
|
||||
|
||||
Reference in New Issue
Block a user