From bff729ceac342924e3a2222cc1357925613d7b81 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 11 Feb 2025 22:39:11 -0800 Subject: [PATCH] Switch field order of tab-separated partslist files Make refdes first, like it was in the good old days Signed-off-by: Keith Packard --- bin/diff-pref | 4 ++-- bin/parts.py | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) 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: -- 2.47.2