Exemple #1
0
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)
Exemple #2
0
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