def prepare_exp_id(kwargs) -> "RichText": exp_name = kwargs["Experiment"] rev = kwargs["rev"] typ = kwargs.get("typ", "baseline") if typ == "baseline" or not exp_name: text = ui.rich_text(exp_name or rev) else: text = ui.rich_text.assemble(rev, " [", (exp_name, "bold"), "]") parent = kwargs.get("parent") suff = f" ({parent})" if parent else "" text.append(suff) tree = experiment_types[typ] pref = f"{tree} " if tree else "" return ui.rich_text(pref) + text
def test_drop_duplicates_rich_text(): from dvc.ui import ui td = TabularData(["col-1", "col-2", "col-3"], fill_value="-") td.extend([ ["foo", None, ui.rich_text("-")], ["foo", "foo"], ["foo", "foo"], ["foo", "bar", "foobar"], ]) assert list(td) == [ ["foo", "-", ui.rich_text("-")], ["foo", "foo", "-"], ["foo", "foo", "-"], ["foo", "bar", "foobar"], ] td.drop_duplicates("cols") assert list(td) == [["-"], ["foo"], ["foo"], ["bar"]]
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
def _prepare_cause(cause: str) -> "RichText": return ui.rich_text(cause, style="bold")
def _prepare_message(message: str) -> "RichText": return ui.rich_text(message, style="red")