X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=functions.py;h=2d72b4c8bca717a1bb5119535c97e271d87e919f;hp=62f669ce24d0ee52a58780313a183b7d0c1aff53;hb=287f9e72c3e3d666b016dff0fa3dc39419adfcc2;hpb=aae91ab48172a83c49bb502ac737bcc1b3a6685c diff --git a/functions.py b/functions.py index 62f669c..2d72b4c 100644 --- a/functions.py +++ b/functions.py @@ -21,6 +21,7 @@ import datetime from copy import copy from shutil import copyfile import shelve +import json #from dialog import BugDialog import logging @@ -118,7 +119,7 @@ class History : d['history'] = self.history d['matrix'] = self.matrix d.close() - + def add(self, analyse) : log.info('add to history %s' % analyse.get('corpus_name', 'pas un corpus')) tosave = {'uuid' : analyse['uuid'], 'ira': analyse['ira'], 'type' : analyse['type']} @@ -161,7 +162,7 @@ class History : self.matrix[self.ordermatrix[tosave['matrix']]]['analyses'].append(tosave) self.write() self.read() - + def addmultiple(self, analyses) : log.info('add multiple') for analyse in analyses : @@ -197,7 +198,7 @@ class History : def rmtab(self, analyse) : del self.opened[analyse['uuid']] - + def update(self, analyse) : if 'matrix_name' in analyse : self.matrixanalyse[analyse['uuid']].update(analyse) @@ -221,7 +222,7 @@ class History : for analyse in anatodel : print 'cleaning :', analyse['name'] self.delete(analyse) - + def __str__(self) : return str(self.history) @@ -229,7 +230,7 @@ class DoConf : def __init__(self, configfile=None, diff = None, parametres = None) : self.configfile = configfile self.conf = ConfigParser() - + if configfile is not None : configfile = normpath_win32(configfile) self.conf.readfp(codecs.open(configfile, 'r', 'utf8')) @@ -263,7 +264,7 @@ class DoConf : if 'type' not in parametres : parametres['type'] = section return parametres - + def makeoptions(self, sections, parametres, outfile = None) : txt = '' for i, section in enumerate(sections) : @@ -330,7 +331,7 @@ class BugDialog(wx.Dialog): # begin wxGlade: MyDialog.__set_properties self.SetMinSize(wx.Size(500, 200)) self.text_ctrl_1.SetMinSize(wx.Size(500, 200)) - + # end wxGlade def __do_layout(self): @@ -688,19 +689,20 @@ def check_Rresult(parent, pid) : else : return True + +def launchcommand(mycommand): + Popen(mycommand) + def print_liste(filename,liste): with open(filename,'w') as f : for graph in liste : - f.write(';'.join(graph)+'\n') + f.write(';'.join(graph).encode(sys.getdefaultencoding())+'\n') def read_list_file(filename, encoding = sys.getdefaultencoding()): with codecs.open(filename,'rU', encoding) as f : content=f.readlines() ncontent=[line.replace('\n','').split(';') for line in content if line.strip() != ''] return ncontent - - - def progressbar(self, maxi) : ira = wx.GetApp().GetTopWindow() @@ -716,7 +718,7 @@ def progressbar(self, maxi) : style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT ) prog.SetSize((400,150)) - prog.SetIcon(ira._icon) + #prog.SetIcon(ira._icon) return prog def treat_var_mod(variables) : @@ -727,7 +729,7 @@ def treat_var_mod(variables) : for var in vars : mods = ['_'.join(v) for v in varmod if v[0] == var] var_mod[var] = mods - + # for variable in variables : # if u'_' in variable : # forme = variable.split(u'_') @@ -761,9 +763,34 @@ def doconcorde(corpus, uces, mots, uci = False) : ucis_txt.append('

' + ' '.join(corpus.ucis[uce].etoiles) + '

') ucestxt.append(ucetxt) return ucis_txt, ucestxt - + def getallstcarac(corpus, analyse) : pathout = PathOut(analyse['ira']) profils = ReadProfileAsDico(pathout['PROFILE_OUT'], Alceste, self.encoding) print profils + +def read_chd(filein, fileout): + with open(filein, 'r') as f : + content = f.read() + #content = [line[3:].replace('"',"").replace(' ','') for line in content.splitlines()] + content = [line.split('\t') for line in content.splitlines()] + chd = {'name':1, 'children':[]} + mere={} + for i, line in enumerate(content) : + if i == 0 : + chd['children'] = [{'name': line[1],'size' : content[i+1][0]}, {'name':line[2], 'size': content[i+1][1]}] + mere[line[1]] = chd['children'][0] + mere[line[2]] = chd['children'][1] + elif not i % 2 : + if 'children' in mere[line[0]]: + mere[line[0]]['children'].append({'name': line[1],'size' : content[i+1][0]}) + mere[line[1]] = mere[line[0]]['children'][-1] + mere[line[0]]['children'].append({'name': line[2],'size' : content[i+1][1]}) + mere[line[2]] = mere[line[0]]['children'][-1] + else : + mere[line[0]]['children'] = [{'name': line[1],'size' : content[i+1][0]}, {'name':line[2], 'size': content[i+1][1]}] + mere[line[1]] = mere[line[0]]['children'][-2] + mere[line[2]] = mere[line[0]]['children'][-1] + with open(fileout, 'w') as f : + f.write(json.dumps(chd))