Skip to content

Commit c49d0ff

Browse files
committed
Update logger to truncate trader data and logs to fit log limit
1 parent 71c1f94 commit c49d0ff

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

src/pages/home/HomePage.tsx

+28-7
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,37 @@ from typing import Any
1515
class Logger:
1616
def __init__(self) -> None:
1717
self.logs = ""
18+
self.max_log_length = 3750
1819
1920
def print(self, *objects: Any, sep: str = " ", end: str = "\\n") -> None:
2021
self.logs += sep.join(map(str, objects)) + end
2122
2223
def flush(self, state: TradingState, orders: dict[Symbol, list[Order]], conversions: int, trader_data: str) -> None:
23-
print(json.dumps([
24-
self.compress_state(state),
24+
base_length = len(self.to_json([
25+
self.compress_state(state, ""),
2526
self.compress_orders(orders),
2627
conversions,
27-
trader_data,
28-
self.logs,
29-
], cls=ProsperityEncoder, separators=(",", ":")))
28+
"",
29+
"",
30+
]))
31+
32+
# We truncate state.traderData, trader_data, and self.logs to the same max. length to fit the log limit
33+
max_item_length = (self.max_log_length - base_length) // 3
34+
35+
print(self.to_json([
36+
self.compress_state(state, self.truncate(state.traderData, max_item_length)),
37+
self.compress_orders(orders),
38+
conversions,
39+
self.truncate(trader_data, max_item_length),
40+
self.truncate(self.logs, max_item_length),
41+
]))
3042
3143
self.logs = ""
3244
33-
def compress_state(self, state: TradingState) -> list[Any]:
45+
def compress_state(self, state: TradingState, trader_data: str) -> list[Any]:
3446
return [
3547
state.timestamp,
36-
state.traderData,
48+
trader_data,
3749
self.compress_listings(state.listings),
3850
self.compress_order_depths(state.order_depths),
3951
self.compress_trades(state.own_trades),
@@ -94,6 +106,15 @@ class Logger:
94106
95107
return compressed
96108
109+
def to_json(self, value: Any) -> str:
110+
return json.dumps(value, cls=ProsperityEncoder, separators=(",", ":"))
111+
112+
def truncate(self, value: str, max_length: int) -> str:
113+
if len(value) <= max_length:
114+
return value
115+
116+
return value[:max_length - 3] + "..."
117+
97118
logger = Logger()
98119
99120
class Trader:

0 commit comments

Comments
 (0)