frdel commited on
Commit
fd3f24c
·
1 Parent(s): bd6c93a

log output lengths adjustment

Browse files
Files changed (1) hide show
  1. python/helpers/log.py +28 -23
python/helpers/log.py CHANGED
@@ -36,9 +36,10 @@ ProgressUpdate = Literal["persistent", "temporary", "none"]
36
 
37
 
38
  HEADING_MAX_LEN: int = 120
39
- CONTENT_MAX_LEN: int = 10000
 
40
  KEY_MAX_LEN: int = 60
41
- VALUE_MAX_LEN: int = 3000
42
  PROGRESS_MAX_LEN: int = 120
43
 
44
 
@@ -93,18 +94,21 @@ def _truncate_value(val: T) -> T:
93
  return truncated
94
 
95
 
96
- def _truncate_content(text: str | None) -> str:
 
 
 
97
  if text is None:
98
  return ""
99
  raw = str(text)
100
- if len(raw) <= CONTENT_MAX_LEN:
101
  return raw
102
 
103
  # Same dynamic replacement logic as value truncation
104
- removed = len(raw) - CONTENT_MAX_LEN
105
  while True:
106
  replacement = f"\n\n<< {removed} Characters hidden >>\n\n"
107
- truncated = truncate_text_by_ratio(raw, CONTENT_MAX_LEN, replacement, ratio=0.3)
108
  new_removed = len(raw) - (len(truncated) - len(replacement))
109
  if new_removed == removed:
110
  break
@@ -119,7 +123,7 @@ def _truncate_content(text: str | None) -> str:
119
  class LogItem:
120
  log: "Log"
121
  no: int
122
- type: str
123
  heading: str = ""
124
  content: str = ""
125
  temp: bool = False
@@ -197,7 +201,7 @@ class Log:
197
  kvps: dict | None = None,
198
  temp: bool | None = None,
199
  update_progress: ProgressUpdate | None = None,
200
- id: Optional[str] = None, # Add id parameter
201
  **kwargs,
202
  ) -> LogItem:
203
 
@@ -226,17 +230,30 @@ class Log:
226
  def _update_item(
227
  self,
228
  no: int,
229
- type: str | None = None,
230
  heading: str | None = None,
231
  content: str | None = None,
232
  kvps: dict | None = None,
233
  temp: bool | None = None,
234
  update_progress: ProgressUpdate | None = None,
235
- id: Optional[str] = None, # Add id parameter
236
  **kwargs,
237
  ):
238
  item = self.logs[no]
239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  # adjust all content before processing
241
  if heading is not None:
242
  heading = self._mask_recursive(heading)
@@ -244,7 +261,7 @@ class Log:
244
  item.heading = heading
245
  if content is not None:
246
  content = self._mask_recursive(content)
247
- content = _truncate_content(content)
248
  item.content = content
249
  if kvps is not None:
250
  kvps = OrderedDict(copy.deepcopy(kvps))
@@ -258,18 +275,6 @@ class Log:
258
  kwargs = self._mask_recursive(kwargs)
259
  item.kvps.update(kwargs)
260
 
261
- if type is not None:
262
- item.type = type
263
-
264
- if update_progress is not None:
265
- item.update_progress = update_progress
266
-
267
- if temp is not None:
268
- item.temp = temp
269
-
270
- if id is not None:
271
- item.id = id
272
-
273
  self.updates += [item.no]
274
  self._update_progress_from_item(item)
275
 
 
36
 
37
 
38
  HEADING_MAX_LEN: int = 120
39
+ CONTENT_MAX_LEN: int = 15_000
40
+ RESPONSE_CONTENT_MAX_LEN: int = 250_000
41
  KEY_MAX_LEN: int = 60
42
+ VALUE_MAX_LEN: int = 5000
43
  PROGRESS_MAX_LEN: int = 120
44
 
45
 
 
94
  return truncated
95
 
96
 
97
+ def _truncate_content(text: str | None, type: Type) -> str:
98
+
99
+ max_len = CONTENT_MAX_LEN if type != "response" else RESPONSE_CONTENT_MAX_LEN
100
+
101
  if text is None:
102
  return ""
103
  raw = str(text)
104
+ if len(raw) <= max_len:
105
  return raw
106
 
107
  # Same dynamic replacement logic as value truncation
108
+ removed = len(raw) - max_len
109
  while True:
110
  replacement = f"\n\n<< {removed} Characters hidden >>\n\n"
111
+ truncated = truncate_text_by_ratio(raw, max_len, replacement, ratio=0.3)
112
  new_removed = len(raw) - (len(truncated) - len(replacement))
113
  if new_removed == removed:
114
  break
 
123
  class LogItem:
124
  log: "Log"
125
  no: int
126
+ type: Type
127
  heading: str = ""
128
  content: str = ""
129
  temp: bool = False
 
201
  kvps: dict | None = None,
202
  temp: bool | None = None,
203
  update_progress: ProgressUpdate | None = None,
204
+ id: Optional[str] = None,
205
  **kwargs,
206
  ) -> LogItem:
207
 
 
230
  def _update_item(
231
  self,
232
  no: int,
233
+ type: Type | None = None,
234
  heading: str | None = None,
235
  content: str | None = None,
236
  kvps: dict | None = None,
237
  temp: bool | None = None,
238
  update_progress: ProgressUpdate | None = None,
239
+ id: Optional[str] = None,
240
  **kwargs,
241
  ):
242
  item = self.logs[no]
243
 
244
+ if id is not None:
245
+ item.id = id
246
+
247
+ if type is not None:
248
+ item.type = type
249
+
250
+ if temp is not None:
251
+ item.temp = temp
252
+
253
+ if update_progress is not None:
254
+ item.update_progress = update_progress
255
+
256
+
257
  # adjust all content before processing
258
  if heading is not None:
259
  heading = self._mask_recursive(heading)
 
261
  item.heading = heading
262
  if content is not None:
263
  content = self._mask_recursive(content)
264
+ content = _truncate_content(content, item.type)
265
  item.content = content
266
  if kvps is not None:
267
  kvps = OrderedDict(copy.deepcopy(kvps))
 
275
  kwargs = self._mask_recursive(kwargs)
276
  item.kvps.update(kwargs)
277
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  self.updates += [item.no]
279
  self._update_progress_from_item(item)
280