pref_order = ('device', 'value', 'footprint', 'loadstatus', 'provided', 'mfg',
'mfg_part_number', 'vendor', 'vendor_part_number', 'quantity', 'refdes')
-value_pattern=r'([0-9]+)(\.[0-9]*)?([kmMupng]?)(F|H|Hz)?'
+value_pattern=r'([0-9]+)(\.[0-9]*)?([kmMupng]?)(F|H|Hz|V|screws)?([ _][0-9]+(\.[0-9]*))?'
class Part():
"""
return self.attrs[attr]
return None
+ # Get an attribute value in lower case
+ def get_lower(self, attr):
+ if attr in self.attrs:
+ return self.attrs[attr].lower()
+ return None
+
# Get an attribute value, returning 'unknown' for
# missing attributes
def get_unknown(self, attr):
# Compute the key tuple (device, value, footprint)
def key(self):
- return tuple(map(self.get, key_attrs))
+ return tuple(map(self.get_lower, key_attrs))
# Return a set of all attributes in the part
def attrs_set(self):
return str(self.attrs)
class Parts():
-
"""
- A parts list, indexed by the part key (dice, value, footprint)
+ A parts list, indexed by the part key (device, value, footprint)
"""
- csv_dialect = csv.register_dialect('excel-nl', 'excel', lineterminator='\n')
+ csv.register_dialect('excel-nl', 'excel', lineterminator='\n')
def __init__(self, parts=None, ods=None, csv=None, csv_file=None, tab=None, tab_file=None):
if parts is not None: