]> git.gag.com Git - hw/altusmetrum/commitdiff
Switch field order of tab-separated partslist files
authorKeith Packard <keithp@keithp.com>
Wed, 12 Feb 2025 06:39:11 +0000 (22:39 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 12 Feb 2025 06:39:11 +0000 (22:39 -0800)
Make refdes first, like it was in the good old days

Signed-off-by: Keith Packard <keithp@keithp.com>
bin/diff-pref
bin/parts.py

index 394175a621892010a9eef06d33141598a968f05b..0b9d4ec503440c3ff1400abda959b6b38d21fab2 100755 (executable)
@@ -4,8 +4,8 @@ AM=`dirname "$0"`/..
 
 case $# in
     0)
-       echo "Usage: $0 <ref-a> {ref-b}" 1>&2
-       exit 1
+       ref_a="HEAD"
+       ref_b="preferred-parts.ods"
        ;;
     1)
        ref_a="$1"
index 31d732af1fa373a29cbba1f6b85a85890949342c..84d83c1920145ffda72bb89de4524e5963ac87fe 100644 (file)
@@ -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: