def _extend_row(row, names, items, precision): from rich.text import Text from dvc.compare import _format_field, with_value if not items: row.extend(FILL_VALUE for keys in names.values() for _ in keys) return for fname, item in items: item = flatten(item) if isinstance(item, dict) else {fname: item} for name in names[fname]: value = with_value(item.get(name), FILL_VALUE) # wrap field data in rich.Text, otherwise rich may # interpret unescaped braces from list/dict types as rich # markup tags row.append(Text(str(_format_field(value, precision))))
def _extend_row(row, names, items, precision, fill_value=FILL_VALUE): from dvc.compare import _format_field, with_value if not items: row.extend(fill_value for keys in names.values() for _ in keys) return for fname, data in items: item = data.get("data", {}) item = flatten(item) if isinstance(item, dict) else {fname: item} for name in names[fname]: value = with_value( item.get(name), FILL_VALUE_ERRORED if data.get("error", None) else fill_value, ) # wrap field data in ui.rich_text, otherwise rich may # interpret unescaped braces from list/dict types as rich # markup tags row.append(ui.rich_text(str(_format_field(value, precision))))
def _extend_row(row, names, headers, items, precision, fill_value=FILL_VALUE): from dvc.compare import _format_field, with_value for fname, data in items: item = data.get("data", {}) item = flatten(item) if isinstance(item, dict) else {fname: item} for name in names[fname]: value = with_value( item.get(name), FILL_VALUE_ERRORED if data.get("error", None) else fill_value, ) # wrap field data in ui.rich_text, otherwise rich may # interpret unescaped braces from list/dict types as rich # markup tags value = ui.rich_text(str(_format_field(value, precision))) if name in headers: row[name] = value else: row[f"{fname}:{name}"] = value