This commit is contained in:
2026-07-28 06:46:59 +02:00
parent ab4826dcca
commit 0d5a8c2f6e
2 changed files with 22 additions and 18 deletions
+17 -13
View File
@@ -1,11 +1,12 @@
import struct import struct
from decimal import Decimal
def pwp_number(fmt): def pwp_number(fmt, value_type):
size = struct.calcsize(fmt) size = struct.calcsize(fmt)
def decorator(cls): def decorator(cls):
def __init__(self, value): def __init__(self, value):
self.value = value self.value = value_type(value)
def to_com(self): def to_com(self):
return struct.pack(fmt, self.value) return struct.pack(fmt, self.value)
@@ -24,34 +25,37 @@ def pwp_number(fmt):
return decorator return decorator
# Unsigned integers # Unsigned integers
@pwp_number("<B") @pwp_number("<B", int)
class u8: pass class u8: pass
@pwp_number("<H") @pwp_number("<H", int)
class u16: pass class u16: pass
@pwp_number("<I") @pwp_number("<I", int)
class u32: pass class u32: pass
@pwp_number("<Q") @pwp_number("<Q", int)
class u64: pass class u64: pass
# Signed integers # Signed integers
@pwp_number("<b") @pwp_number("<b", int)
class i8: pass class i8: pass
@pwp_number("<h") @pwp_number("<h", int)
class i16: pass class i16: pass
@pwp_number("<i") @pwp_number("<i", int)
class i32: pass class i32: pass
@pwp_number("<q") @pwp_number("<q", int)
class i64: pass class i64: pass
# Floating point # Floating point
@pwp_number("<f") @pwp_number("<f", float)
class f32: pass class f32: pass
@pwp_number("<d") @pwp_number("<d", float)
class f64: pass class f64: pass
@pwp_number("<BiI", Decimal)
class decimal: pass
+5 -5
View File
@@ -68,9 +68,9 @@ class Candle:
close_time: u64 close_time: u64
coin: str coin: str
interval: str interval: str
open: f64 open: decimal
high: f64 high: decimal
low: f64 low: decimal
close: f64 close: decimal
volume: f64 volume: decimal
num_trades: u64 num_trades: u64