+import json
import os.path
try:
except ImportError:
from collections import UserDict
+def _decode_list(data):
+ rv = []
+ for item in data:
+ if isinstance(item, unicode):
+ item = item.encode('utf-8')
+ elif isinstance(item, list):
+ item = _decode_list(item)
+ elif isinstance(item, dict):
+ item = _decode_dict(item)
+ rv.append(item)
+ return rv
+
+def _decode_dict(data):
+ rv = {}
+ for key, value in data.iteritems():
+ if isinstance(key, unicode):
+ key = key.encode('utf-8')
+ if isinstance(value, unicode):
+ value = value.encode('utf-8')
+ elif isinstance(value, list):
+ value = _decode_list(value)
+ elif isinstance(value, dict):
+ value = _decode_dict(value)
+ rv[key] = value
+ return rv
class InterfacesBase(UserDict):
""" contains a list of interface definitions
self.pth = pth
self.fastbus = []
self.ifacecount = []
+ self.fastbus = []
if ifaceklsdict is None:
ifaceklsdict = {}
UserDict.__init__(self, {})
if not pth:
return
ift = 'interfaces.txt'
+ cfg = 'configs.txt'
if pth:
ift = os.path.join(pth, ift)
+ cfg = os.path.join(pth, cfg)
+
+ with open(cfg, 'r') as ifile:
+ self.configs = json.loads(ifile.read(), object_hook=_decode_dict)
+
+ print self.configs
+
+ exit(0)
with open(ift, 'r') as ifile:
for ln in ifile.readlines():
ln = ln.strip()
ln = ln.split("\t")
name = ln[0] # will have uart
count = int(ln[1]) # will have count of uart
- self.fastbus += ln[2:]
# spec looks like this:
"""
[{'name': 'sda', 'outen': True},
import os
+import json
import os.path
from spec.interfaces import Pinouts
if not os.path.exists(pth):
os.makedirs(pth)
with open(os.path.join(pth, 'configs.txt'), 'w') as f:
- for (name, d) in configs.items():
- d = d.items()
- d.sort()
- vals = []
- for (k, v) in d:
- vals.append("%s=%s" % (k, repr(v)))
- line = [name.lower(), '\t'.join(vals)]
- line = '\t'.join(line)
- f.write("%s\n" % line)
+ f.write("%s\n" % json.dumps(configs))
with open(os.path.join(pth, 'interfaces.txt'), 'w') as f:
for k in pinouts.fnspec.keys():