Skip to content

Commit 034cde1

Browse files
committed
Add Description field parsing'
1 parent 0195f14 commit 034cde1

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

InteractiveHtmlBom/ecad/kicad_extra/netlistparser.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,27 @@ def get_extra_field_data(self):
2020
ref = None
2121
fields = None
2222
datasheet = None
23+
libsource = None
2324
for f in c[1:]:
2425
if f[0] == 'ref':
2526
ref = f[1]
2627
if f[0] == 'fields':
2728
fields = f[1:]
2829
if f[0] == 'datasheet':
2930
datasheet = f[1]
31+
if f[0] == 'libsource':
32+
libsource = f[1:]
3033
if ref is None:
3134
return None
3235
ref_fields = comp_dict.setdefault(ref, {})
3336
if datasheet and datasheet != '~':
34-
field_set.add('datasheet')
35-
ref_fields['datasheet'] = datasheet
37+
field_set.add('Datasheet')
38+
ref_fields['Datasheet'] = datasheet
39+
if libsource is not None:
40+
for lib_field in libsource:
41+
if lib_field[0] == 'description':
42+
field_set.add('Description')
43+
ref_fields['Description'] = lib_field[1]
3644
if fields is None:
3745
continue
3846
for f in fields:

InteractiveHtmlBom/ecad/kicad_extra/parser_base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
class ParserBase:
2-
DEFAULT_FIELDS = []
32

43
def __init__(self, file_name):
54
"""
@@ -29,7 +28,7 @@ def parse(self, normalize_case):
2928
def get_extra_field_data(self):
3029
# type: () -> tuple
3130
"""
32-
Parses the file and returns a extra field data.
31+
Parses the file and returns extra field data.
3332
:return: tuple of the format
3433
(
3534
[field_name1, field_name2,... ],

InteractiveHtmlBom/ecad/kicad_extra/xmlparser.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,16 @@ def get_extra_field_data(self):
2323
if datasheet:
2424
datasheet = self.get_text(datasheet[0].childNodes)
2525
if datasheet != '~':
26-
field_set.add('datasheet')
27-
ref_fields['datasheet'] = datasheet
26+
field_set.add('Datasheet')
27+
ref_fields['Datasheet'] = datasheet
28+
libsource = c.getElementsByTagName('libsource')
29+
if libsource and libsource[0].hasAttribute('description'):
30+
field_set.add('Description')
31+
attr = libsource[0].attributes['description']
32+
ref_fields['Description'] = attr.value
2833
for f in c.getElementsByTagName('field'):
2934
name = f.attributes['name'].value
30-
if name not in self.DEFAULT_FIELDS:
31-
field_set.add(name)
32-
ref_fields[name] = self.get_text(f.childNodes)
35+
field_set.add(name)
36+
ref_fields[name] = self.get_text(f.childNodes)
3337

3438
return list(field_set), comp_dict

0 commit comments

Comments
 (0)