From: Keith Packard Date: Wed, 12 Feb 2025 06:39:11 +0000 (-0800) Subject: Switch field order of tab-separated partslist files X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=bff729ceac342924e3a2222cc1357925613d7b81;p=hw%2Faltusmetrum Switch field order of tab-separated partslist files Make refdes first, like it was in the good old days Signed-off-by: Keith Packard --- diff --git a/bin/diff-pref b/bin/diff-pref index 394175a..0b9d4ec 100755 --- a/bin/diff-pref +++ b/bin/diff-pref @@ -4,8 +4,8 @@ AM=`dirname "$0"`/.. case $# in 0) - echo "Usage: $0 {ref-b}" 1>&2 - exit 1 + ref_a="HEAD" + ref_b="preferred-parts.ods" ;; 1) ref_a="$1" diff --git a/bin/parts.py b/bin/parts.py index 31d732a..84d83c1 100644 --- a/bin/parts.py +++ b/bin/parts.py @@ -33,9 +33,12 @@ import re 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(): @@ -225,9 +228,9 @@ class Parts(): 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,) @@ -266,7 +269,7 @@ class Parts(): # 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: @@ -280,7 +283,7 @@ class Parts(): # 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: