From: Plom Heller Date: Thu, 6 Aug 2026 21:24:59 +0000 (+0200) Subject: For designs, add -f to_boxes. X-Git-Url: https://plomlompom.com/repos/?a=commitdiff_plain;ds=inline;p=bricksplom For designs, add -f to_boxes. --- diff --git a/src/bricksplom/misc.py b/src/bricksplom/misc.py index 90aa8ec..0a4c4a2 100644 --- a/src/bricksplom/misc.py +++ b/src/bricksplom/misc.py @@ -330,8 +330,24 @@ class BrickDesign(Textfiled, WithDb, Lookupable): walk(lines, item.ldraw, item.db.ldraw.tree(item.ldraw)) return CHAR_NEWLINE.join(lines) + def to_boxes( + item: Self + ) -> str: + assert item.db is not None + brick_ids = tuple(b.id_ for b in item.db.bricks.values() + if b.design_id in item.all_ids) + boxes = set() + for box in item.db.boxes.values(): + for _ in [t[1] for t in box.brick_listings_flat() + if t[1] in brick_ids]: + boxes.add(box.id_) + break + return f'{item.id_indented()}: {",".join(list(boxes))}' + return super().formatters() | { - 'ldraw_tree': ('tree of LDRAW references', ldraw_tree)} + 'ldraw_tree': ('tree of LDRAW references', ldraw_tree), + 'to_boxes': ('to containing boxes', to_boxes) + } @classmethod def matchers(