key_attrs = ('device', 'value', 'footprint')
# This is the preferred order when writing a CSV file
-pref_order = ('device', 'value', 'footprint', 'loadstatus', 'provided', 'mfg',
+pref_order_csv = ('device', 'value', 'footprint', 'loadstatus', 'provided', 'mfg',
'mfg_part_number', 'vendor', 'vendor_part_number', 'quantity', 'refdes')
+pref_order_tab = ('refdes', 'device', 'value', 'footprint', 'loadstatus', 'provided', 'mfg',
+ 'mfg_part_number', 'vendor', 'vendor_part_number', 'quantity')
+
value_pattern=r'([0-9]+)(\.[0-9]*)?([kmMupng]?)(F|H|Hz|V|screws)?([ _][0-9]+(\.[0-9]*))?'
class Part():
return ret
# Generate a tuple of all attributes in the preferred CSV order
- def attrs_tuple(self):
+ def attrs_tuple(self, pref_order):
s = self.attrs_set()
- t = key_attrs
+ t = ()
for p in pref_order:
if p in s and p not in t:
t = t + (p,)
# Export to a CSV file object
def export_csv_file(self, outfile):
csvwriter = csv.writer(outfile, dialect='excel-nl')
- attrs = self.attrs_tuple()
+ attrs = self.attrs_tuple(pref_order_csv)
csvwriter.writerow(attrs)
keys = sorted(list(self.parts), key=self.cmp_key)
for key in keys:
# Export to a tab-delimited file object
def export_tab_file(self, outfile):
- attrs = self.attrs_tuple()
+ attrs = self.attrs_tuple(pref_order_tab)
print("\t".join(attrs), file=outfile)
keys = sorted(list(self.parts), key=self.cmp_key)
for key in keys: