X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=profile_segment.py;h=b0ca4c4cb36e16bf4fdd7d150b7b35f0148f3c9e;hp=d3b3f46711c3bf70d95f4059ed723747fdc90b3f;hb=238f42801fed31007932d28e2d8e517081c9542d;hpb=22cd27b2bbe9ab1ffa7ef06fa764b5147ae17dad diff --git a/profile_segment.py b/profile_segment.py index d3b3f46..b0ca4c4 100644 --- a/profile_segment.py +++ b/profile_segment.py @@ -1,59 +1,62 @@ #!/bin/env python # -*- coding: utf-8 -*- -#Author: Pierre Ratinaud -#Copyright (c) 2010, Pierre Ratinaud -#Lisense: GNU/GPL +# Author: Pierre Ratinaud +# Copyright (c) 2010, Pierre Ratinaud +# License: GNU/GPL import tempfile from ProfList import * -import agw.aui as aui +import wx +import wx.lib.agw.aui as aui from functions import exec_rcode, check_Rresult, ReadProfileAsDico, ReadList from listlex import * from dialog import PrefSegProf, PrefProfTypes from time import sleep class ProfileSegment() : - def __init__(self, parent, corpus) : + def __init__(self, parent, pathout, parametres, corpus) : self.parent = parent self.corpus = corpus + self.dictpathout = pathout + self.parametres = parametres dial = PrefSegProf(self.parent) dial.CenterOnParent() if dial.ShowModal() == wx.ID_OK : - if dial.box_lem.GetSelection() == 0 : - self.lem = True - else : - self.lem = False - self.mini = dial.spin_min.GetValue() - self.maxi = dial.spin_max.GetValue() - self.eff = dial.spin_eff.GetValue() - dial.Destroy() - self.dlg = progressbar(self, maxi = 4) - self.dlg.Update(1, u'Recherche des segments') - self.make_table() - self.make_prof() - self.dlg.Update(3, u'ouverture des profils') - self.do_layout() - self.dlg.Update(4, 'fini') - self.dlg.Destroy() + if dial.box_lem.GetSelection() == 0 : # @IndentOk + self.lem = True + else : + self.lem = False + self.mini = dial.spin_min.GetValue() + self.maxi = dial.spin_max.GetValue() + self.eff = dial.spin_eff.GetValue() + dial.Destroy() + self.dlg = progressbar(self, maxi=4) + self.dlg.Update(1, u'Recherche des segments') + self.make_table() + self.make_prof() + self.dlg.Update(3, u'ouverture des profils') + self.do_layout() + self.dlg.Update(4, 'fini') + self.dlg.Destroy() def make_table(self) : - self.corpus.make_segments_profile(self.corpus.dictpathout['segments_classes'], lenmin = self.mini, lenmax = self.maxi, effmin = self.eff, lem = self.lem) + self.corpus.make_segments_profile(self.dictpathout['segments_classes'], lenmin=self.mini, lenmax=self.maxi, effmin=self.eff, lem=self.lem) def make_prof(self) : txt = """ load("%s") source("%s") - """ % (self.corpus.dictpathout['RData'], self.parent.RscriptsPath['chdfunct']) + """ % (self.dictpathout['RData'], self.parent.RscriptsPath['chdfunct']) txt += """ dt <- read.csv2("%s", row.names = 1) to <- build.pond.prof(dt) PrintProfile(n1,to[4],NULL,to[5],NULL,clnb,"%s","%s") - """ % (self.corpus.dictpathout['segments_classes'], self.corpus.dictpathout['prof_seg'], self.corpus.dictpathout['antiprof_seg']) + """ % (self.corpus.dictpathout['segments_classes'], self.dictpathout['prof_seg'], self.dictpathout['antiprof_seg']) fo = tempfile.mktemp(dir=self.parent.TEMPDIR) with open(fo, 'w') as f : f.write(txt) - pid = exec_rcode(self.parent.RPath, fo, wait = False) + pid = exec_rcode(self.parent.RPath, fo, wait=False) while pid.poll() == None : self.dlg.Pulse(u'Construction des profils...') sleep(0.2) @@ -62,19 +65,19 @@ class ProfileSegment() : def do_layout(self) : SelectTab = self.parent.nb.GetSelection() page = self.parent.nb.GetPage(SelectTab).TabChdSim - print page - prof_seg = ReadProfileAsDico(self, self.corpus.dictpathout['prof_seg'], True, self.corpus.parametre['syscoding']) + prof_seg = ReadProfileAsDico(self.dictpathout['prof_seg'], True, self.parent.syscoding) prof_seg_nb = aui.AuiNotebook(self.parent, -1, wx.DefaultPosition) - for i in range(0,len(self.corpus.lc)) : + for i in range(0, len(self.corpus.lc)) : ntab = ProfListctrlPanel(self.parent, self, prof_seg[str(i + 1)], False, i + 1) prof_seg_nb.AddPage(ntab, 'classe %i' % (i + 1)) page.AddPage(prof_seg_nb, u'Profils des segements répétés') page.SetSelection(page.GetPageCount() - 1) class ProfilType() : - def __init__(self, parent, corpus) : + def __init__(self, parent, corpus, parametres) : self.parent = parent self.corpus = corpus + self.parametres = parametres self.outprof = self.corpus.dictpathout['prof_type'] dial = PrefProfTypes(self.parent) dial.fbb.SetValue(self.outprof) @@ -85,24 +88,24 @@ class ProfilType() : alceste = True else : alceste = False - if 'outprof' in self.corpus.parametre : - self.corpus.parametre['outprof'][self.outprof] = alceste - else : - self.corpus.parametre['outprof'] = {self.outprof: alceste} - self.dlg = progressbar(self, maxi = 4) + # if 'outprof' in self.corpus.parametre : + # self.corpus.parametre['outprof'][self.outprof] = alceste + # else : + # self.corpus.parametre['outprof'] = {self.outprof: alceste} + self.dlg = progressbar(self, maxi=4) self.dlg.Update(1, u'Recherche des types') self.make_table() self.dlg.Update(1, u'Construction des profils') - self.make_prof(alceste = alceste) + self.make_prof(alceste=alceste) self.dlg.Update(3, u'Ouverture des profils') - self.do_layout(alceste = alceste) + self.do_layout(alceste=alceste) self.dlg.Update(4, 'fini') self.dlg.Destroy() def make_table(self) : - self.corpus.prof_type() + self.corpus.make_proftype(self.corpus.dictpathout['type_cl']) - def make_prof(self, alceste = True) : + def make_prof(self, alceste=True) : txt = """ load("%s") source("%s") @@ -121,29 +124,29 @@ class ProfilType() : to <- AsLexico2(dt) write.csv2(to[[1]], file = "%s") """ % (self.outprof) - #write.csv2(to[[3]], file = "%s") + # write.csv2(to[[3]], file = "%s") # % (self.outprof) fo = tempfile.mktemp(dir=self.parent.TEMPDIR) with open(fo, 'w') as f : f.write(txt) - pid = exec_rcode(self.parent.RPath, fo, wait = False) + pid = exec_rcode(self.parent.RPath, fo, wait=False) while pid.poll() == None : self.dlg.Pulse(u'Construction des profils...') sleep(0.2) check_Rresult(self.parent, pid) - def do_layout(self, alceste = True) : + def do_layout(self, alceste=True) : SelectTab = self.parent.nb.GetSelection() page = self.parent.nb.GetPage(SelectTab).TabChdSim prof_seg_nb = aui.AuiNotebook(self.parent, -1, wx.DefaultPosition) if alceste : - prof_seg = ReadProfileAsDico(self, self.outprof, True) - for i in range(0,len(self.corpus.lc)) : + prof_seg = ReadProfileAsDico(self.outprof, True) + for i in range(0, len(self.corpus.lc)) : ntab = ProfListctrlPanel(self.parent, self, prof_seg[str(i + 1)], False, i + 1) prof_seg_nb.AddPage(ntab, 'classe %i' % (i + 1)) else : self.DictSpec, first = ReadList(self.outprof) - self.ListPan = ListForSpec(self.parent, self, self.DictSpec, first) + self.ListPan = ListForSpec(self.parent, self, self.DictSpec, first[1:]) prof_seg_nb.AddPage(self.ListPan, u'Spécificités') page.AddPage(prof_seg_nb, u'Profils des types')