def __init__(
self,
- db: Optional['BricksDb'] = None,
+ db: 'BricksDb',
**kwargs
) -> None:
self.db = db
if not item.ldraw:
return 'no LDRAW file associated'
lines: list[str] = []
- assert item.db is not None
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()
def __str__(
self
) -> str:
- assert self.db
design = self.db.designs[self.design_id]
color = str(self.db.colors[self.color_id]).strip()
comment = f' # {self.comment}' if self.comment else ''
self
) -> str:
def format_line(count, brick_id, comment) -> str:
- assert self.db
brick = self.db.bricks[brick_id]
design_id = brick.design_id
tail_comment = f' # {comment}' if comment else ''
**kwargs
) -> None:
super().__init__(**kwargs)
- assert self.db
self.id_ = id_
self._set = bricks_set
designed_listings: list[tuple[BrickDesign, list[BrickListing]]] = []
def show(
self,
) -> str:
- assert self.db
lines = []
for design, listings in self.designs_to_listings:
lines += [