from copy import copy
import re
import html.entities
-import shelve
+#import shelve
+import json
from uuid import uuid4
import logging
Dico[word][1].append(line)
else:
Dico[word] = [1, [line]]
-
+
def copymatrix(tableau):
log.info('copy matrix')
copymat = Tableau(tableau.parent, parametres = tableau.parametres)
self.parametres['type'] = 'matrix'
self.parametres['matrix_name'] = os.path.basename(filename)
self.parametres['uuid'] = str(uuid4())
- self.parametres['shelves'] = os.path.join(self.parametres['pathout'], 'shelve.db')
+ self.parametres['shelves'] = os.path.join(self.parametres['pathout'], 'shelve')
self.parametres['ira'] = os.path.join(self.parametres['pathout'], 'Matrix.ira')
else :
self.parametres = parametres
#self.parametres = self.parametre
def read_tableau(self, fileout) :
- d=shelve.open(fileout)
- #self.parametres = d['parametres']
- #if 'syscoding' not in self.parametres :
- # self.parametres['syscoding'] = sys.getdefaultencoding()
+ with open(fileout, 'r', encoding='utf8') as f :
+ d = json.load(f)
self.actives = d['actives']
self.sups = d['sups']
self.classes = d['classes']
self.lchi = d['lchi']
if 'content' in d :
self.content = d['content']
- d.close()
def open(self):
print('open matrix')
self.colnb = len(self.linecontent[0])
def save_tableau(self, fileout) :
- d=shelve.open(fileout)
+ d = {}
d['parametres'] = self.parametres
d['actives'] = self.actives
d['sups'] = self.sups
if 'lchi' in dir(self) :
d['lchi'] = self.lchi
d['content'] = self.content
- d.close()
+ with open(fileout, 'w', encoding='utf8') as f :
+ json.dump(d, f)
def make_content(self) :
self.pathout.createdir(self.parametres['pathout'])
self.read_ods()
self.parametres['csvfile'] = os.path.join(self.parametres['pathout'], 'csvfile.csv')
self.make_tmpfile()
- print(self.parametres)
DoConf().makeoptions(['matrix'],[self.parametres], self.parametres['ira'])
self.parent.history.addMatrix(self.parametres)
self.parametres['csvfile'] = os.path.join(self.parametres['pathout'], 'csvfile.csv')
self.make_tmpfile()
DoConf().makeoptions(['matrix'],[self.parametres], self.parametres['ira'])
- self.parent.history.addMatrix(self.parametres)
+ self.parent.history.addMatrix(self.parametres)
def read_xls(self) :
#FIXME : encodage
def read_csv(self) :
with codecs.open(self.parametres['originalpath'], 'r', self.parametres['encodage']) as f :
- content = f.read()
+ content = f.read()
self.linecontent = [line.split(self.parametres['colsep']) for line in content.splitlines()]
self.linecontent = [[val.replace('"','').replace(';',' ').replace('\t', ' ').strip() for val in line] for line in self.linecontent]
def write_csvfile(self) :
- with open(self.parametres['csvfile'], 'w') as f :
+ with open(self.parametres['csvfile'], 'w', encoding='utf8') as f :
f.write('\n'.join(['\t'.join(line) for line in self.csvtable]))
def make_tmpfile(self) :
else :
self.rownames = [repr(i) for i in range(self.rownb)]
self.idname = 'identifiant'
- self.csvtable = [[self.idname] + self.colnames] + [[self.rownames[i]] + self.linecontent[i] for i in range(len(self.rownames))]
+ self.csvtable = [[self.idname] + self.colnames] + [[self.rownames[i]] + self.linecontent[i] for i in range(len(self.rownames))]
self.write_csvfile()
def read_csvfile(self):
- with codecs.open(self.parametres['csvfile'], 'r', self.parametres['syscoding']) as f:
+ with open(self.parametres['csvfile'], 'r', encoding='utf8') as f:
self.csvtable = [line.split('\t') for line in f.read().splitlines()]
self.linecontent = [line[1:] for line in self.csvtable]
self.linecontent.pop(0)
def getactlistfromselection(self, listact) :
selcol = self.select_col(listact)
self.actives = self.make_dico(selcol)
- return [[val, self.actives[val][0]] for val in self.actives]
+ return [[val, self.actives[val][0]] for val in self.actives]
def make_listactives(self) :
- self.listactives = [val for val in self.actives if val != 'NA' and self.actives[val] >= self.parametres['mineff']]
+ self.listactives = [val for val in self.actives if val != 'NA' and self.actives[val][0] >= self.parametres['mineff']]
def write01(self, fileout, dico, linecontent) :
if self.listactives is None :
- self.listactives = [val for val in dico if val != 'NA' and dico[val] >= self.parametres['mineff']]
+ self.listactives = [val for val in dico if val != 'NA' and dico[val][0] >= self.parametres['mineff']]
out = [['0' for forme in self.listactives] for line in linecontent]
for i, forme in enumerate(self.listactives) :
for line in dico[forme][1] :
out[line][i] = '1'
- #out = [[self.rownames[i]] + out[i] for i in range(len(linecontent))]
+ #out = [[self.rownames[i]] + out[i] for i in range(len(linecontent))]
#out.insert(0,[self.idname] + self.listactives)
out.insert(0, self.listactives)
- with open(fileout, 'w') as f :
+ with open(fileout, 'w', encoding='utf8') as f :
f.write('\n'.join([';'.join(line) for line in out]))
def make_01_from_selection(self, listact, listsup = None, dowrite = True) :
if forme[0] == '*':
UpdateDico(self.sups, forme, i)
else:
- UpdateDico(self.actives, forme, i)
+ UpdateDico(self.actives, forme, i)
self.listactives = [val for val in self.actives if self.actives[val][0] >= self.parametres['mineff']]
table = [['0' for i in range(len(self.listactives))] for j in range(self.rownb)]
for i, val in enumerate(self.listactives) :
#table = [[self.rownames[i]] + table[i] for i in range(len(self.rownames))]
#table.insert(0, [self.idname] + self.listactives)
table.insert(0, self.listactives)
- with open(fileout, 'w') as f:
+ with open(fileout, 'w', encoding='utf8') as f:
f.write('\n'.join([';'.join(line) for line in table]))
def printtable(self, filename, Table, sep = ';'):
- with open(filename, 'w') as f :
+ with open(filename, 'w', encoding='utf8') as f :
f.write('\n'.join([sep.join(line) for line in Table]))
def buildprofil(self) :
- with open(self.pathout['uce'], 'r') as filein :
+ with open(self.pathout['uce'], 'r', encoding='utf8') as filein :
content = filein.readlines()
content.pop(0)
lsucecl = []
if sup in self.linecontent[uce]:
line[i + 1] += 1
tablecontet.append([line[0]] + [repr(don) for don in line if type(don) == type(1)])
-
+
self.printtable(self.pathout['ContEtOut'], tablecontet)
- self.printtable(self.pathout['Contout'], tablecont)
+ self.printtable(self.pathout['Contout'], tablecont)
def get_colnames(self) :
return self.colnames[:]