def print_storage_items()

in pipe-cli/src/utilities/printing/storage.py [0:0]


def print_storage_items(bucket_model, items, show_details, items_table, show_extended, show_versions=False):
    if show_details:
        for item in items:
            name = item.name
            changed = ''
            size = ''
            labels = ''
            if item.type is not None and item.type in WrapperType.cloud_types():
                name = item.path
            item_updated = item.deleted or item.changed
            if item_updated is not None:
                if bucket_model is None and isinstance(item_updated, str):
                    # need to wrap into datetime since bucket listing returns str
                    item_datetime = datetime.datetime.strptime(item_updated, '%Y-%m-%d %H:%M:%S')
                else:
                    item_datetime = item_updated
                changed = item_datetime.strftime('%Y-%m-%d %H:%M:%S')
            if item.size is not None and not item.deleted:
                size = item.size
            if item.labels is not None and len(item.labels) > 0 and not item.deleted:
                labels = STORAGE_DETAILS_SEPARATOR.join(map(lambda i: i.value, item.labels))
            item_type = "-File" if item.delete_marker or item.deleted else item.type
            row = [item_type, labels, changed, size, name]
            if show_versions:
                row.append('')
            if show_extended:
                mount_status = item.mount_status
                mount_limits = STORAGE_DETAILS_SEPARATOR.join(item.tools_to_mount)
                item_metadata = STORAGE_DETAILS_SEPARATOR.join(['='.join(entry) for entry in item.metadata.items()])
                row.extend([mount_status, mount_limits, item_metadata])
            items_table.add_row(row)
            if show_versions and item.type == 'File':
                if item.deleted:
                    # Additional synthetic delete version
                    row = ['-File', '', item.deleted.strftime('%Y-%m-%d %H:%M:%S'), size, name, '- (latest)']
                    items_table.add_row(row)
                for version in item.versions:
                    version_type = "-File" if version.delete_marker else "+File"
                    version_label = "{} (latest)".format(version.version) if version.latest else version.version
                    labels = STORAGE_DETAILS_SEPARATOR.join(map(lambda i: i.value, version.labels))
                    size = '' if version.size is None else version.size
                    row = [version_type, labels, version.changed.strftime('%Y-%m-%d %H:%M:%S'), size, name,
                           version_label]
                    items_table.add_row(row)

        click.echo(items_table)
        items_table.clear_rows()
    else:
        for item in items:
            click.echo('{}\t\t'.format(item.path), nl=False)