convert to python3
[pinmux.git] / src / spec / base.py
index bdb50ea69d9a01ec172e27fc3defc445854fc0d1..dc2cf0c8b23ab1578fcabead77db6b608c49fed6 100644 (file)
@@ -1,23 +1,24 @@
 from spec.interfaces import Pinouts
 
 from spec.ifaceprint import display, display_fns, check_functions
-from spec.ifaceprint import display_fixed
+from spec.ifaceprint import display_fixed, python_dict_fns
+from collections import OrderedDict
 
 
 class PinSpec(Pinouts):
     def __init__(self, pinbanks, fixedpins, function_names, fast=None):
-        self.fastbus = fast or []
-        self.pinbanks = {}
+        self.fastbus = fast or {}
+        self.pinbanks = OrderedDict()
         self.muxwidths = {}
         for bank, (sz, muxwidth) in pinbanks.items():
             self.pinbanks[bank] = sz
             self.muxwidths[bank] = muxwidth
         self.fixedpins = fixedpins
         self.function_names = function_names
-        bankspec = {}
+        bankspec = OrderedDict()
         self.offs = 0
-        pkeys = sorted(self.pinbanks.keys())
-        print self.pinbanks
+        pkeys = self.pinbanks.keys()
+        print (self.pinbanks)
         for kn in pkeys:
             bankspec[kn] = self.offs
             self.offs += self.pinbanks[kn]
@@ -36,14 +37,18 @@ class PinSpec(Pinouts):
 
         self.scenarios.append((name, needed, eint, pwm, descriptions))
 
+    def pywrite(self, pyf, pinmap):
+        return python_dict_fns(pyf, pinmap, self, self.function_names)
+
     def write(self, of):
+
         of.write("""# Pinouts (PinMux)
 auto-generated by [[pinouts.py]]
 
 [[!toc  ]]
 
 """)
-        bk = sorted(self.pinbanks.keys())
+        bk = self.pinbanks.keys()
         for bank in bk:
             of.write(
                 "\n## Bank %s (%d pins, width %d)\n\n" %
@@ -71,6 +76,7 @@ auto-generated by [[pinouts.py]]
         of.write("""# Reference Datasheets
 
 datasheets and pinout links
+
 * <http://datasheets.chipdb.org/AMD/8018x/80186/amd-80186.pdf>
 * <http://hands.com/~lkcl/eoma/shenzen/frida/FRD144A2701.pdf>
 * <http://pinouts.ru/Memory/sdcard_pinout.shtml>