def main(): txtDir = 'tables/' varFiles = os.listdir(txtDir) picFile = 'licomvar.pkl' for var in varFiles: if ok.fileType(var) in ['txt','const']: varFile = txtDir+var if os.path.isfile(picFile): licom = importVar(varFile,picFile) else: licom = importVar(varFile) f = open(picFile,'wb') pickle.dump(licom,f) f.close() exportTex(picFile)
def importVar(varFile,picFile=''): ftype = ok.fileType(varFile) # determine varibale type by file suffix licom = Licom() oldtable = {} if picFile != '': f = open(picFile,'rb') licom = pickle.load(f) f.close() f = open(varFile) texts = f.readlines() f.close() m = title.match(texts[0]) if m: mname = m.group(3) if mname in licom.module.keys(): module = licom.module[mname] else: module = Module() module.name = m.group(3) filetable = m.group(1) oldtable['name'] = filetable module.table= filetable oldtable['title'] = m.group(2) if ftype == 'txt': module.paramtitle= m.group(2) elif ftype == 'const': module.consttitle= m.group(2) if ftype == 'txt': licom.paramClass[module.paramtitle] = module.name elif ftype == 'const': licom.constClass[module.consttitle] = module.name if ftype == 'txt': i = 4 k = 3 elif ftype == 'const': i = 5 k = 4 else: pass while True: m = varpat.match(texts[i].rstrip()) if m: v = Variable() v.table = filetable if ftype == 'txt': v.vtype= 'param' v.paramClass = module.paramtitle v.name = m.group(1) v.dim = m.group(2) v.doc = docFilter(texts[i+1].strip()) v.unit = unitFilter(texts[i+2].strip().replace(' ','')) elif ftype == 'const': v.vtype= 'const' v.constClass = module.consttitle v.name = m.group(1) v.dim = m.group(2) v.form = texts[i+1].strip() v.doc = docFilter(texts[i+2].strip()) v.unit = unitFilter(texts[i+3].strip().replace(' ','')) else: pass v.module = module.name # in case of same name in different module # licom.var[v.name+'_'+module.name] = v licom.var[v.name] = v i += k else: break if ftype == 'txt': module.doc.append(texts[i]) oldtable['doc'] = texts[i] licom.module[module.name] = module licom.table[filetable] = oldtable return licom