Skip to content

Commit 3fe22d9

Browse files
committed
Fix handling empty string for board variant
Fixes #419
1 parent 630301b commit 3fe22d9

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

InteractiveHtmlBom/core/config.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def load_from_ini(self):
163163
if self.highlight_pin1 == '0':
164164
self.highlight_pin1 = 'none'
165165
if self.highlight_pin1 == '1':
166-
self.highlight_pin1 == 'all'
166+
self.highlight_pin1 = 'all'
167167

168168
def save(self, locally):
169169
file = self.local_config_file if locally else self.global_config_file
@@ -421,10 +421,12 @@ def add_options(cls, parser, version):
421421
'variant for component.')
422422
parser.add_argument('--variants-whitelist', default='',
423423
help='List of board variants to '
424-
'include in the BOM.')
424+
'include in the BOM. Use "<empty>" to denote '
425+
'not set or empty value.')
425426
parser.add_argument('--variants-blacklist', default='',
426427
help='List of board variants to '
427-
'exclude from the BOM.')
428+
'exclude from the BOM. Use "<empty>" to denote '
429+
'not set or empty value.')
428430
parser.add_argument('--dnp-field', default=cls.dnp_field,
429431
help='Name of the extra field that indicates '
430432
'do not populate status. Components with '

InteractiveHtmlBom/core/ibom.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,19 @@ def skip_component(m, config):
7373
return True
7474

7575
# skip components with wrong variant field
76+
empty_str = '<empty>'
7677
if config.board_variant_field and config.board_variant_whitelist:
7778
ref_variant = m.extra_fields.get(config.board_variant_field, '')
79+
if ref_variant == '':
80+
ref_variant = empty_str
7881
if ref_variant not in config.board_variant_whitelist:
7982
return True
8083

8184
if config.board_variant_field and config.board_variant_blacklist:
8285
ref_variant = m.extra_fields.get(config.board_variant_field, '')
83-
if ref_variant and ref_variant in config.board_variant_blacklist:
86+
if ref_variant == '':
87+
ref_variant = empty_str
88+
if ref_variant != empty_str and ref_variant in config.board_variant_blacklist:
8489
return True
8590

8691
return False

InteractiveHtmlBom/dialog/settings_dialog.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ def OnSize(self, event):
218218
# Implementing FieldsPanelBase
219219
class FieldsPanel(dialog_base.FieldsPanelBase):
220220
NONE_STRING = '<none>'
221+
EMPTY_STRING = '<empty>'
221222
FIELDS_GRID_COLUMNS = 3
222223

223224
def __init__(self, parent, extra_data_func, extra_data_wildcard):
@@ -359,7 +360,10 @@ def OnBoardVariantFieldChange(self, event):
359360
variant_set = set()
360361
for _, field_dict in self.extra_field_data.fields_by_ref.items():
361362
if selection in field_dict:
362-
variant_set.add(field_dict[selection])
363+
v = field_dict[selection]
364+
if v == "":
365+
v = self.EMPTY_STRING
366+
variant_set.add(v)
363367
self.boardVariantWhitelist.SetItems(list(variant_set))
364368
self.boardVariantBlacklist.SetItems(list(variant_set))
365369

0 commit comments

Comments
 (0)