home · contact · privacy
On designs parsing, allow non-int values for fields other than .description.
authorPlom Heller <plom@plomlompom.com>
Sat, 13 Jun 2026 18:46:06 +0000 (20:46 +0200)
committerPlom Heller <plom@plomlompom.com>
Sat, 13 Jun 2026 18:46:06 +0000 (20:46 +0200)
bricksplom.py

index 7f4942d32ae69ebb3cb77c4e1ae566bb0f371648..28116fa33f65da0e9491075b5e6dc4825563df06 100755 (executable)
@@ -19,7 +19,7 @@ CHAR_COMMENT = '#'
 CHAR_DESIGN_ALT = '='
 CHAR_ATTR_EQ = '='
 SEP_DESIGN_DESC = ' #'
-SEP_DESIGN_ATTR = ' |'
+SEP_DESIGN_ATTR = '|'
 CHAR_COLL_INDENT = ' '
 CHAR_COLL_IN = '+'
 CHAR_COLL_OUT = '-'
@@ -327,9 +327,12 @@ class BrickDesign(Textfiled, Lookupable):
                 for attr in metadata.split(SEP_DESIGN_ATTR):
                     assert CHAR_ATTR_EQ in attr
                     a_key, a_val_str = attr.split(CHAR_ATTR_EQ, maxsplit=1)
-                    assert a_key in annos and annos[a_key] is int
-                    assert a_val_str.isdigit()
-                    setattr(attrs, a_key, int(a_val_str))
+                    assert a_key in annos
+                    if annos[a_key] is int:
+                        assert a_val_str.isdigit()
+                        setattr(attrs, a_key, int(a_val_str))
+                    else:
+                        setattr(attrs, a_key, a_val_str)
                 collected[design_id] = cls(design_id, attrs)
         for id_, alternate_ids in alts.items():
             collected[id_].alternate_ids = alternate_ids