Skip to content

Commit 04f4afb

Browse files
committed
Add datasheet field as extra field
Fixes #82
1 parent 554cbb5 commit 04f4afb

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

InteractiveHtmlBom/ecad/kicad.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -372,9 +372,9 @@ def parse(self):
372372
title = os.path.splitext(pcb_file_name)[0]
373373
edges, bbox = self.parse_edges(self.board)
374374
if bbox is None:
375-
self.logger.err('Please draw pcb outline on the edges '
376-
'layer on sheet or any module before '
377-
'generating BOM.')
375+
self.logger.error('Please draw pcb outline on the edges '
376+
'layer on sheet or any module before '
377+
'generating BOM.')
378378
return
379379
bbox = {
380380
"minx": bbox.GetPosition().x * 1e-6,

InteractiveHtmlBom/ecad/kicad_extra/netlistparser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@ def get_extra_field_data(self):
1919
for c in components:
2020
ref = None
2121
fields = None
22+
datasheet = None
2223
for f in c[1:]:
2324
if f[0] == 'ref':
2425
ref = f[1]
2526
if f[0] == 'fields':
2627
fields = f[1:]
28+
if f[0] == 'datasheet':
29+
datasheet = f[1]
2730
if ref is None:
2831
return None
2932
ref_fields = comp_dict.setdefault(ref, {})
33+
if datasheet and datasheet != '~':
34+
field_set.add('datasheet')
35+
ref_fields['datasheet'] = datasheet
3036
if fields is None:
3137
continue
3238
for f in fields:

InteractiveHtmlBom/ecad/kicad_extra/xmlparser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ def get_extra_field_data(self):
1919
comp_dict = {}
2020
for c in components:
2121
ref_fields = comp_dict.setdefault(c.attributes['ref'].value, {})
22+
datasheet = c.getElementsByTagName('datasheet')
23+
if datasheet:
24+
datasheet = self.get_text(datasheet[0].childNodes)
25+
if datasheet != '~':
26+
field_set.add('datasheet')
27+
ref_fields['datasheet'] = datasheet
2228
for f in c.getElementsByTagName('field'):
2329
name = f.attributes['name'].value
2430
if name not in self.DEFAULT_FIELDS:

0 commit comments

Comments
 (0)