refactor(download): remove ProviderCore/download.py, move sanitize_filename to SYS.utils, replace callers to use API.HTTP.HTTPClient
This commit is contained in:
@@ -9,7 +9,7 @@ from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict, Iterable, Optional
|
||||
|
||||
from SYS.result_table_api import ColumnSpec, ResultModel, Renderer
|
||||
from SYS.result_table_api import ColumnSpec, ResultModel, ResultTable, Renderer
|
||||
|
||||
|
||||
class RichRenderer(Renderer):
|
||||
@@ -65,3 +65,22 @@ def render_to_console(rows: Iterable[ResultModel], columns: Iterable[ColumnSpec]
|
||||
|
||||
table = RichRenderer().render(rows, columns, meta)
|
||||
Console().print(table)
|
||||
|
||||
|
||||
def render_result_table(table: ResultTable, renderer: Optional[Renderer] = None) -> Any:
|
||||
"""Render a ResultTable with the provided renderer (RichRenderer by default)."""
|
||||
|
||||
rend = renderer or RichRenderer()
|
||||
return rend.render(table.rows, table.columns, table.meta)
|
||||
|
||||
|
||||
def render_result_table_to_console(table: ResultTable, renderer: Optional[Renderer] = None) -> None:
|
||||
try:
|
||||
from rich.console import Console
|
||||
except Exception:
|
||||
for r in table.rows:
|
||||
print(" ".join(str((col.extractor(r) or "")) for col in table.columns))
|
||||
return
|
||||
|
||||
console = Console()
|
||||
console.print(render_result_table(table, renderer))
|
||||
|
||||
Reference in New Issue
Block a user