import sys
import xlrd
import ooolib
+import os
import tempfile
import re
import htmlentitydefs
-from numpy import *
import shelve
+from uuid import uuid4
+import logging
+log = logging.getLogger('iramuteq.tableau')
##
# Removes HTML or XML character references and entities from a text string.
self.parametre = {'filename' : filename}
self.parametre['filetype'] = filetype
self.parametre['encodage'] = encodage
+ self.parametre['pathout'] = os.path.dirname(os.path.abspath(filename))
self.parametre['mineff'] = 3
self.parametre['syscoding'] = sys.getdefaultencoding()
+ self.parametre['type'] = 'matrix'
+ self.parametre['name'] = 'unNOm'
self.sups = {}
self.actives = {}
self.listactives = None
self.colnb = 0
self.rownb = 0
self.classes = []
+ self.parametres = self.parametre
def read_tableau(self, fileout) :
d=shelve.open(fileout)
doc = ooolib.Calc(opendoc=self.parametre['filename'])
doc.set_sheet_index(0)
(cols, rows) = doc.get_sheet_dimensions()
- print cols, rows
for row in range(1, rows + 1):
ligne = []
for col in range(1, cols + 1):
return dico
def select_col(self, listcol) :
- ArTable = array(self.linecontent)
- selcol = ArTable[:, listcol]
- selcol = selcol.tolist()
+ dc = dict(zip(listcol, listcol))
+ selcol = [[val for i, val in enumerate(row) if i in dc] for row in self.linecontent]
return selcol
+
+ 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]
+
+ def make_listactives(self) :
+ self.listactives = [val for val in self.actives if val != 'NA' and self.actives[val] >= self.parametre['mineff']]
def write01(self, fileout, dico, linecontent) :
- self.listactives = [val for val in dico if val != 'NA' and dico[val] >= self.parametre['mineff']]
+ if self.listactives is None :
+ self.listactives = [val for val in dico if val != 'NA' and dico[val] >= self.parametre['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] :
def make_01_from_selection(self, listact, listsup = None, dowrite = True) :
selcol = self.select_col(listact)
self.actives = self.make_dico(selcol)
- if 'Act01' in self.dictpathout and dowrite:
- self.write01(self.dictpathout['Act01'], self.actives, selcol)
- elif 'mat01' in self.dictpathout and dowrite:
- self.write01(self.dictpathout['mat01'], self.actives, selcol)
+ self.write01(self.dictpathout['mat01'], self.actives, selcol)
if listsup is not None :
selcol = self.select_col(listsup)
self.sups = self.make_dico(selcol)
def make_table_from_classe(self, cl, la) :
ln = [line[0] for line in self.classes if line[1] == cl]
out = [['0' for col in la] for line in ln]
- print self.actives
for i, act in enumerate(la) :
for j, line in enumerate(ln) :
if line in self.actives[act][1] :