def _report_variables(variables, orig_variables): from Orange.widgets.report import colored_square as square def was(n, o): return n if n == o else "{} (was: {})".format(n, o) # definition of td element for continuous gradient # with support for pre-standard css (needed at least for Qt 4.8) max_values = max( (len(var.values) for var in variables if var.is_discrete), default=1) defs = ("-webkit-", "-o-", "-moz-", "") cont_tpl = ( '<td colspan="{}">' '<span class="legend-square" style="width: 100px; '.format( max_values) + " ".join( map( "background: {}linear-gradient(" "left, rgb({{}}, {{}}, {{}}), {{}}rgb({{}}, {{}}, {{}}));" .format, defs, )) + '"></span></td>') rows = "" for var, ovar in zip(variables, orig_variables): if var.is_discrete: values = " \n".join( "<td>{} {}</td>".format(square( *var.colors[i]), was(value, ovalue)) for i, ( value, ovalue) in enumerate(zip(var.values, ovar.values))) elif var.is_continuous: col = var.colors colors = col[0][:3] + ("black, " * col[2], ) + col[1][:3] values = cont_tpl.format(*colors * len(defs)) else: continue name = was(var.name, ovar.name) rows += ('<tr style="height: 2em">\n' ' <th style="text-align: right">{}</th>{}\n</tr>\n'. format(name, values)) return rows
def _report_variables(variables): from Orange.widgets.report import colored_square as square def was(n, o): return n if n == o else f"{n} (was: {o})" # definition of td element for continuous gradient # with support for pre-standard css (needed at least for Qt 4.8) max_values = max( (len(var.values) for var in variables if var.is_discrete), default=1) defs = ("-webkit-", "-o-", "-moz-", "") cont_tpl = '<td colspan="{}">' \ '<span class="legend-square" style="width: 100px; '.\ format(max_values) + \ " ".join(map( "background: {}linear-gradient(" "left, rgb({{}}, {{}}, {{}}), {{}}rgb({{}}, {{}}, {{}}));" .format, defs)) + \ '"></span></td>' rows = "" for var in variables: if var.is_discrete: desc = self.disc_dict[var.name] values = " \n".join( "<td>{} {}</td>". format(square(*color), was(value, old_value)) for color, value, old_value in zip(desc.get_colors(), desc.get_values(), var.values)) elif var.is_continuous: desc = self.cont_dict[var.name] col = desc.get_colors() colors = col[0][:3] + ("black, " * col[2], ) + col[1][:3] values = cont_tpl.format(*colors * len(defs)) else: continue names = was(desc.get_name(), desc.var.name) rows += '<tr style="height: 2em">\n' \ ' <th style="text-align: right">{}</th>{}\n</tr>\n'. \ format(names, values) return rows
def _report_variables(variables, orig_variables): from Orange.widgets.report import colored_square as square def was(n, o): return n if n == o else "{} (was: {})".format(n, o) # definition of td element for continuous gradient # with support for pre-standard css (needed at least for Qt 4.8) max_values = max( (len(var.values) for var in variables if var.is_discrete), default=1) defs = ("-webkit-", "-o-", "-moz-", "") cont_tpl = '<td colspan="{}">' \ '<span class="legend-square" style="width: 100px; '.\ format(max_values) + \ " ".join(map( "background: {}linear-gradient(" "left, rgb({{}}, {{}}, {{}}), {{}}rgb({{}}, {{}}, {{}}));" .format, defs)) + \ '"></span></td>' rows = "" for var, ovar in zip(variables, orig_variables): if var.is_discrete: values = " \n".join( "<td>{} {}</td>". format(square(*var.colors[i]), was(value, ovalue)) for i, (value, ovalue) in enumerate(zip(var.values, ovar.values))) elif var.is_continuous: col = var.colors colors = col[0][:3] + ("black, " * col[2], ) + col[1][:3] values = cont_tpl.format(*colors * len(defs)) else: continue name = was(var.name, ovar.name) rows += '<tr style="height: 2em">\n' \ ' <th style="text-align: right">{}</th>{}\n</tr>\n'. \ format(name, values) return rows