def raw(
self
) -> str:
- return (
- f'{self.id_indented()} '
- + (f'{CHAR_DESIGN_ALT}{self.alternate_to.id_}' if self.alternate_to
- else ('|'.join(
- [f'{k}{CHAR_ATTR_EQ}{getattr(self, k)}'
- for k in BrickDesignData.__annotations__
- if k != 'description'])
- + f'{SEP_DESIGN_DESC}{self.description}')))
+ raw = f'{self.id_indented()} '
+ if self.alternate_to:
+ return f'{raw}{CHAR_DESIGN_ALT}{self.alternate_to.id_}'
+ attrs = []
+ for attr_key in [k for k in BrickDesignData.__annotations__
+ if k != 'description']:
+ attr_val = getattr(self, attr_key)
+ if attr_val != getattr(BrickDesignData, attr_key):
+ attrs += [f'{attr_key}{CHAR_ATTR_EQ}{attr_val}']
+ return f'{raw}{"|".join(attrs)}{SEP_DESIGN_DESC}{self.description}'
class Brick(Textfiled, WithDb, Lookupable):