begin generating spec files consistently: codes a bit of a mess
[pinmux.git] / src / spec / gen.py
1 import os
2 import os.path
3 from spec.interfaces import Pinouts
4
5 def specgen(pth, pinouts, bankspec, fixedpins):
6 """ generates a specification of pinouts (tsv files)
7 for reading in by pinmux
8 """
9 pth = pth or ''
10 print bankspec.keys()
11 print pinouts.keys()
12 print fixedpins.keys()
13 if not os.path.exists(pth):
14 os.makedirs(pth)
15 with open(os.path.join(pth, 'interfaces.txt'), 'w') as f:
16 for k in pinouts.fnspec.keys():
17 s = pinouts.fnspec[k]
18 f.write("%s\t%d\n" % (k.lower(), len(s)))
19 s0 = s[s.keys()[0]] # hack, take first
20 with open(os.path.join(pth, '%s.txt' % k.lower()), 'w') as g:
21 if len(s0.pingroup) == 1: # only one function, grouped higher up
22 for ks in s.keys(): # grouped by interface
23 k = "%s_%s" % (s[ks].fname, s[ks].suffix)
24 k_ = k.lower()
25 g.write("%s\t%s\n" % (k_, fntype))
26 else:
27 for pinname in s0.pingroup:
28 fntype = 'inout'
29 k_ = k.lower()
30 pn = pinname.lower()
31 g.write("%s_%s\t%s\n" % (k_, pn, fntype))