home · contact · privacy
Simplify newlines handling in Collection printing.
authorPlom Heller <plom@plomlompom.com>
Mon, 4 May 2026 03:43:40 +0000 (05:43 +0200)
committerPlom Heller <plom@plomlompom.com>
Mon, 4 May 2026 03:43:40 +0000 (05:43 +0200)
bricksplom.py

index e3379eb2b21c807b269bbc09484ad041d310ac28..3532a61d05b79712ccb162477bbab143c7981657 100755 (executable)
@@ -279,7 +279,7 @@ class Collection(Textfiled, WithDb):
             ) -> str:
         is_in_str = (CHAR_COLL_INACTIVE if self.is_in is None
                      else (CHAR_COLL_IN if self.is_in else CHAR_COLL_OUT))
-        return (f'\n{self.id_} {is_in_str}{self.description}\n'
+        return (f'{self.id_} {is_in_str}{self.description}\n'
                 + self._format_paginated(lambda count, p_id, comment:
                                          f' {count:2} {p_id:>7} {comment}'))
 
@@ -287,16 +287,16 @@ class Collection(Textfiled, WithDb):
             self,
             format_line: Callable[[int, str, str], str]
             ) -> str:
-        pages = []
-        for page in self.piece_listings:
-            columns = []
-            for column in page:
-                lines = []
+        lines = []
+        for idx_pages, page in enumerate(self.piece_listings):
+            if idx_pages != 0:
+                lines += [' =']
+            for idx_columns, column in enumerate(page):
+                if idx_columns != 0:
+                    lines += [' -']
                 for count, piece_id, comment in column:
                     lines += [format_line(count, piece_id, comment)]
-                columns += ['\n'.join(lines)]
-            pages += ['\n -\n'.join(columns)]
-        return '\n =\n'.join(pages)
+        return '\n'.join(lines) + '\n'
 
     def piece_listings_flat(self) -> tuple[PieceListing, ...]:
         'Flattened variant of .piece_listings, no division into pages/cols.'