(data, format=Qt.PlainText)
return details
A function that forms the entire descriptive part of the input/output
    summary.

    :param data: A dataset
    :type data: Orange.data.Table
    :return: A formatted string
A function that forms the entire descriptive part of the input/output
    summary.
A function that forms the entire descriptive part of the input / output summary .
def format_summary_details(data, format=Qt.PlainText):
    """
    A function that forms the entire descriptive part of the input/output
    summary.

    :param data: A dataset
    :type data: Orange.data.Table
    :return: A formatted string
    """
    if data is None:
        return ""

    if format == Qt.PlainText:
        def b(s):
            return s
    else:
        def b(s):
            return f"<b>{s}</b>"

    features = format_variables_string(data.domain.attributes)
    targets = format_variables_string(data.domain.class_vars)
    metas = format_variables_string(data.domain.metas)

    features_missing = missing_values(data.has_missing_attribute()
                                      and data.get_nan_frequency_attribute())
    n_features = len(data.domain.variables) + len(data.domain.metas)
    name = getattr(data, "name", None)
    if name == "untitled":
        name = None
    basic = f'{len(data):n} instance{_plural(len(data))}, ' \
            f'{n_features} variable{_plural(n_features)}'

    if format == Qt.PlainText:
        details = \
            (f"{name}: " if name else "") + basic \
            + f'\nFeatures: {features} {features_missing}' \
            + f'\nTarget: {targets}'
        if data.domain.metas:
            details += f'\nMetas: {metas}'
    else:
        descs = []
        if name:
            descs.append(_nobr(f"<b><u>{escape(name)}</u></b>: {basic}"))
        else:
            descs.append(_nobr(f'{basic}'))

        if data.domain.variables:
            descs.append(_nobr(f'Features: {features} {features_missing}'))
        if data.domain.class_vars:
            descs.append(_nobr(f"Target: {targets}"))
        if data.domain.metas:
            descs.append(_nobr(f"Metas: {metas}"))

        details = '<br/>'.join(descs)

    return details
def format_summary_details ( data , format = Qt . PlainText ) : if data is None : return "" if format == Qt . PlainText : def b ( s ) : return s else : def b ( s ) : return f"<b>{s}</b>" features = format_variables_string ( data . domain . attributes ) targets = format_variables_string ( data . domain . class_vars ) metas = format_variables_string ( data . domain . metas ) features_missing = missing_values ( data . has_missing_attribute ( ) and data . get_nan_frequency_attribute ( ) ) n_features = len ( data . domain . variables ) + len ( data . domain . metas ) name = getattr ( data , "name" , None ) if name == "untitled" : name = None basic = f'{len(data):n} instance{_plural(len(data))}, ' f'{n_features} variable{_plural(n_features)}' if format == Qt . PlainText : details = ( f"{name}: " if name else "" ) + basic + f'\nFeatures: {features} {features_missing}' + f'\nTarget: {targets}' if data . domain . metas : details += f'\nMetas: {metas}' else : descs = [ ] if name : descs . append ( _nobr ( f"<b><u>{escape(name)}</u></b>: {basic}" ) ) else : descs . append ( _nobr ( f'{basic}' ) ) if data . domain . variables : descs . append ( _nobr ( f'Features: {features} {features_missing}' ) ) if data . domain . class_vars : descs . append ( _nobr ( f"Target: {targets}" ) ) if data . domain . metas : descs . append ( _nobr ( f"Metas: {metas}" ) ) details = '<br/>' . join ( descs ) return details