Spaces:
Paused
Paused
frdel commited on
Commit ·
fd3f24c
1
Parent(s): bd6c93a
log output lengths adjustment
Browse files- 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 =
|
|
|
|
| 40 |
KEY_MAX_LEN: int = 60
|
| 41 |
-
VALUE_MAX_LEN: int =
|
| 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) <=
|
| 101 |
return raw
|
| 102 |
|
| 103 |
# Same dynamic replacement logic as value truncation
|
| 104 |
-
removed = len(raw) -
|
| 105 |
while True:
|
| 106 |
replacement = f"\n\n<< {removed} Characters hidden >>\n\n"
|
| 107 |
-
truncated = truncate_text_by_ratio(raw,
|
| 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:
|
| 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,
|
| 201 |
**kwargs,
|
| 202 |
) -> LogItem:
|
| 203 |
|
|
@@ -226,17 +230,30 @@ class Log:
|
|
| 226 |
def _update_item(
|
| 227 |
self,
|
| 228 |
no: int,
|
| 229 |
-
type:
|
| 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,
|
| 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 |
|