Yield lines to recreate the manifest file (sans comments/newlines)
(self)
| 90 | yield item |
| 91 | |
| 92 | def dump(self): |
| 93 | """Yield lines to recreate the manifest file (sans comments/newlines)""" |
| 94 | for item in self.contents.values(): |
| 95 | fields = dataclasses.fields(item) |
| 96 | yield f"[{item.kind}.{item.name}]" |
| 97 | for field in fields: |
| 98 | if field.name in {'name', 'value', 'kind'}: |
| 99 | continue |
| 100 | value = getattr(item, field.name) |
| 101 | if value == field.default: |
| 102 | pass |
| 103 | elif value is True: |
| 104 | yield f" {field.name} = true" |
| 105 | elif value: |
| 106 | yield f" {field.name} = {value!r}" |
| 107 | |
| 108 | |
| 109 | itemclasses = {} |