@log_calls<EOL><INDENT>def pretty_print(self, objlist):<DEDENT>
def normalize_time(timestamp):<EOL><INDENT>'''<STR_LIT>'''<EOL>if timestamp is None:<EOL><INDENT>return '<STR_LIT:U+0020>' * <NUM_LIT:16><EOL><DEDENT>return TIMESTAMP_FORMAT % (timestamp.year, timestamp.month, timestamp.day, timestamp.hour, timestamp.minute)<EOL><DEDENT>cwidth = [<NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>]<EOL>format = '<STR_LIT>'<EOL>result = []<EOL>for obj in objlist:<EOL><INDENT>last_modified = normalize_time(obj['<STR_LIT>'])<EOL>size = str(obj['<STR_LIT:size>']) if not obj['<STR_LIT>'] else '<STR_LIT>'<EOL>name = obj['<STR_LIT:name>']<EOL>item = (last_modified, size, name)<EOL>for i, value in enumerate(item):<EOL><INDENT>if cwidth[i] < len(value):<EOL><INDENT>cwidth[i] = len(value)<EOL><DEDENT><DEDENT>result.append(item)<EOL><DEDENT>for item in result:<EOL><INDENT>text = (format % tuple(cwidth)) % item<EOL>message('<STR_LIT:%s>', text.rstrip())<EOL><DEDENT>
Pretty print the result of s3walk. Here we calculate the maximum width
           of each column and align them.