def generate_backtrace(self, styles):
backtrace = []<EOL>for entry in self.entries:<EOL><INDENT>backtrace.append(self.rebuild_entry(entry, styles))<EOL><DEDENT>lengths = self.align_all(backtrace) if self.align else [<NUM_LIT:1>, <NUM_LIT:1>, <NUM_LIT:1>, <NUM_LIT:1>]<EOL>aligned_backtrace = []<EOL>for entry in backtrace:<EOL><INDENT>aligned_backtrace.append(self.align_entry(entry, lengths))<EOL><DEDENT>return aligned_backtrace<EOL>
Return the (potentially) aligned, rebuit traceback

        Yes, we iterate over the entries thrice. We sacrifice
        performance for code readability. I mean.. come on, how long can
        your traceback be that it matters?