fix: migrate legacy usage column prefs
This commit is contained in:
@@ -257,12 +257,20 @@ def request_table_column_key(value: Any) -> str:
|
||||
return REQUEST_TABLE_COLUMN_TOKEN_MAP.get(token, "")
|
||||
|
||||
|
||||
def request_table_column_keys(value: Any) -> list[str]:
|
||||
token = request_table_column_token(value)
|
||||
if token == "usage":
|
||||
return ["in", "out", "cache"]
|
||||
column_key = REQUEST_TABLE_COLUMN_TOKEN_MAP.get(token, "")
|
||||
return [column_key] if column_key else []
|
||||
|
||||
|
||||
def request_table_column_order(value: Any) -> list[str]:
|
||||
requested = value if isinstance(value, (list, tuple, set)) else []
|
||||
columns = []
|
||||
seen: set[str] = set()
|
||||
for item in requested:
|
||||
column_key = request_table_column_key(item)
|
||||
for column_key in request_table_column_keys(item):
|
||||
if not column_key or column_key in seen:
|
||||
continue
|
||||
columns.append(column_key)
|
||||
@@ -279,7 +287,7 @@ def request_table_hidden_columns(value: Any, columns: list[str]) -> list[str]:
|
||||
hidden = []
|
||||
seen: set[str] = set()
|
||||
for item in requested:
|
||||
column_key = request_table_column_key(item)
|
||||
for column_key in request_table_column_keys(item):
|
||||
if not column_key or column_key not in allowed or column_key in seen:
|
||||
continue
|
||||
hidden.append(column_key)
|
||||
@@ -300,7 +308,7 @@ def normalize_request_table_preferences(data: Any) -> dict[str, Any]:
|
||||
legacy_visible = []
|
||||
seen: set[str] = set()
|
||||
for item in source.get("visible_columns") or []:
|
||||
column_key = request_table_column_key(item)
|
||||
for column_key in request_table_column_keys(item):
|
||||
if not column_key or column_key in seen:
|
||||
continue
|
||||
legacy_visible.append(column_key)
|
||||
@@ -342,11 +350,12 @@ def request_table_preferences_from_text(text: str) -> dict[str, Any]:
|
||||
token = token[1:].strip()
|
||||
if not token:
|
||||
continue
|
||||
column_key = request_table_column_key(token)
|
||||
if not column_key:
|
||||
column_keys = request_table_column_keys(token)
|
||||
if not column_keys:
|
||||
if hidden:
|
||||
continue
|
||||
raise ValueError(f"line {line_number}: unknown request column {token!r}")
|
||||
for column_key in column_keys:
|
||||
if column_key in seen:
|
||||
continue
|
||||
seen.add(column_key)
|
||||
|
||||
@@ -298,6 +298,12 @@ class CodexRetryGatewayTUITests(unittest.TestCase):
|
||||
self.assertEqual(prefs["columns"][:6], ["thread", "seq", "cache", "in", "out", "req_id"])
|
||||
self.assertIn("cache", prefs["hidden_columns"])
|
||||
|
||||
def test_request_table_preferences_expand_legacy_usage_column(self) -> None:
|
||||
mod = load_module()
|
||||
prefs = mod.normalize_request_table_preferences({"visible_columns": ["seq", "usage", "status"]})
|
||||
self.assertEqual(prefs["columns"][:5], ["seq", "in", "out", "cache", "status"])
|
||||
self.assertEqual(prefs["hidden_columns"][:3], ["req_id", "resp_id", "thread"])
|
||||
|
||||
def test_sort_request_rows_supports_custom_column_and_missing_values(self) -> None:
|
||||
mod = load_module()
|
||||
rows = [
|
||||
|
||||
Reference in New Issue
Block a user