Package medite :: Package Controleurs :: Module cMedite
[hide private]
[frames] | no frames]

Source Code for Module medite.Controleurs.cMedite

  1  # -*- coding: iso-8859-1 -*- 
  2  # Copyright 20003 - 2008: Julien Bourdaillet (julien.bourdaillet@lip6.fr), Jean-Gabriel Ganascia (jean-gabriel.ganascia@lip6.fr) 
  3  # This file is part of MEDITE. 
  4  # 
  5  #    MEDITE is free software; you can redistribute it and/or modify 
  6  #    it under the terms of the GNU General Public License as published by 
  7  #    the Free Software Foundation; either version 2 of the License, or 
  8  #    (at your option) any later version. 
  9  # 
 10  #    MEDITE is distributed in the hope that it will be useful, 
 11  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13  #    GNU General Public License for more details. 
 14  # 
 15  #    You should have received a copy of the GNU General Public License 
 16  #    along with Foobar; if not, write to the Free Software 
 17  #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
 18  #---------------------------------------------------------------------------- 
 19  # Nom:          cMedite.py 
 20  # Objet:        Classe qui interface entre l'application Medite du client 
 21  #               et l'interface graphique 
 22  #---------------------------------------------------------------------------- 
 23  import profile,traceback,pstats 
 24  import os,time 
 25  from MediteAppli.MediteAppli import * 
 26  from Utile.constantesDonnees import * 
 27  from Utile.exceptionsDonnees import * 
 28  from Donnees.resultatAppli import * 
 29  from Donnees.arbre import Arbre 
 30  import Donnees.planTravail 
 31  import DGManager 
 32  import Utile.decodage 
 33   
 34   
 35  from MediteAppli.mediteFeng import * 
 36   
 37  #appli = ecartTextes 
 38  # Classe de type 'concepteur' qui fait le lien entre l'interface graphique 
 39  # et l'application du client 
40 -class CMedite(object):
41 42 # Methode qui lance l'application MEDITE qui compare deux états
43 - def comparerEtats(self, planTravail):
44 """pre: isinstance(planTravail,Donnees.planTravail.PlanTravail) """ 45 dgm = DGManager.DGManager() 46 nomDG = dgm.getDG(planTravail.getAuteur(), planTravail.getOeuvre()) 47 48 pathSource=dgm.getEtatPath(planTravail.getAuteur(), planTravail.getOeuvre(),planTravail.getVersionSource(),planTravail.getEtatSource()) 49 pathCible =dgm.getEtatPath(planTravail.getAuteur(), planTravail.getOeuvre(),planTravail.getVersionCible(),planTravail.getEtatCible()) 50 fs = open(pathSource) 51 fc = open(pathCible) 52 pParametres = planTravail.getParam() 53 p1 = pParametres.getp1() 54 p2 = float(100)/pParametres.getp2() 55 p3 = float(pParametres.getp3()) /100 56 pcarOuMot = 1 #not pParametres.getp4() #1 mode car / 0 mode mot 57 pcaseSensitive = pParametres.getp5() 58 pseparatorSensivitive = pParametres.getp6() 59 pdiacriticSensitive = pParametres.getp7() 60 #print p1 ; print p2 ; print p3 ; print pcarOuMot 61 #print pcaseSensitive ; print pseparatorSensivitive ; print pdiacriticSensitive 62 try: 63 texte1 = fs.read() 64 texte2 = fc.read() 65 #texte1 = Utile.decodage.loadFile(pathSource) 66 #texte2 = Utile.decodage.loadFile(pathCible) 67 #texte1 = texte1[1:] 68 #texte2 = texte2[1:] 69 logging.debug('len(texte1)='+str(len(texte1))+' / len(texte2)='+str(len(texte2))) 70 if isinstance(texte1, unicode): 71 texte1 = texte1.encode('utf-8') 72 logging.debug('transfo texte1 uni 2 utf') 73 if isinstance(texte2, unicode): 74 texte2 = texte2.encode('utf-8') 75 logging.debug('transfo texte2 uni 2 utf') 76 fs.close() 77 fc.close() 78 logging.debug('len(texte1)='+str(len(texte1))+' / len(texte2)='+str(len(texte2))) 79 #for x in texte1: 80 # logging.debug(x+str(ord(x))) 81 82 appli = ecartTextesRecur2(texte1, texte2, p1, p2, p3, pcarOuMot, 83 pcaseSensitive, pseparatorSensivitive, pdiacriticSensitive, 84 planTravail,algoAligneur='HIS') 85 resultat = appli.run()#;print appli.bbl.evaluation() 86 logging.debug('len(texte1)='+str(len(texte1))+' / len(texte2)='+str(len(texte2))) 87 logging.debug(resultat) 88 89 if isinstance(texte1, unicode) and isinstance(texte2, unicode): 90 mapper = Utile.decodage.mapperUnicodeUtf(texte1+texte2, 'utf-8') 91 res = mapper.uniToUtfResultat(backup) 92 logging.debug(resultat) 93 # lancement de medite avec feng 94 #appli = fengAlgoMedite(texte1,texte2,p2,pcaseSensitive, pseparatorSensivitive, pdiacriticSensitive,planTravail,calculDep=True) 95 #resultat = appli.run() 96 97 98 99 except Exception,e1: 100 sys.stderr.write( str(e1)) 101 traceback.print_exc() 102 sys.stderr.flush() 103 104 if False: 105 logging.debug(str(appli.insertions)) 106 logging.debug("\n------------------------------------------------\n") 107 logging.debug(str(appli.suppressions)) 108 logging.debug("\n------------------------------------------------\n") 109 logging.debug(str(appli.occs_deplaces)) 110 logging.debug("\n------------------------------------------------\n") 111 logging.debug(str(appli.tous_remplacements)) 112 logging.debug("\n------------------------------------------------\n") 113 logging.debug(str(appli.lg_texte1)) 114 logging.debug("\n------------------------------------------------\n") 115 #logging.debug(str(appli.texte_original)) 116 logging.debug("\n------------------------------------------------\n") 117 logging.debug(str(appli.blocsCommuns)) 118 logging.debug("\n------------------------------------------------ begin appli.lDepl\n") 119 logging.debug(str(appli.lDepl)) 120 logging.debug("\n------------------------------------------------ end appli.lDepl\n") 121 logging.debug( resultat) 122 123 return resultat
124