home · contact · privacy
Fail on, and warn against, combination of -r/--raw with boxes table.
authorPlom Heller <plom@plomlompom.com>
Mon, 27 Jul 2026 22:09:18 +0000 (00:09 +0200)
committerPlom Heller <plom@plomlompom.com>
Mon, 27 Jul 2026 22:09:18 +0000 (00:09 +0200)
bricksplom.py

index 669c3f7d2ab13276bd612da4c9a764931ad99af1..0b77517e0a0d87fe519d05ebe09b0698f40672aa 100755 (executable)
@@ -789,6 +789,7 @@ class BricksDb:
             sort_by: str
             ) -> str:
         'Return result of inquiry on table of table_name.'
+        assert (not show_raw) or table_name != 'boxes'
         assert hasattr(self, table_name) and table_name in self.lookupable
         table = getattr(self, table_name)
         if item_id:
@@ -836,17 +837,26 @@ def main(
                    choices=choices, type=complete, metavar='TABLE', help=msg)
         parser = ArgumentParser()
         add_abbreviable_table_arg()
-        parser.add_argument('item_id',
-                            nargs='?', metavar='ITEM_ID')
-        parser.add_argument('-r', '--raw',
-                            action='store_true')
-        parser.add_argument('-m', '--match-by',
-                            action='store')
-        parser.add_argument('-s', '--sort-by',
-                            action='store', default=TOK_SORT_ID)
-        parser.add_argument('-l', '--ldraw',
-                            action='store', default='')
-        return parser.parse_args()
+        parser.add_argument(
+                'item_id',
+                nargs='?', metavar='ITEM_ID')
+        parser.add_argument(
+                '-m', '--match-by',
+                action='store')
+        parser.add_argument(
+                '-s', '--sort-by',
+                action='store', default=TOK_SORT_ID)
+        parser.add_argument(
+                '-l', '--ldraw',
+                action='store', default='')
+        hint_raw = 'not available for boxes table'
+        action_raw = parser.add_argument(
+                '-r', '--raw',
+                action='store_true', help=f'NB: {hint_raw}')
+        args = parser.parse_args()
+        if args.table == 'boxes' and args.raw:
+            parser.error(str(ArgumentError(action_raw, hint_raw)))
+        return args
 
     args = parse_args()
     db = BricksDb(environ.get(NAME_ENV_DIRNAME, '.'),