Affichage, déjà plus « user-friendly ».
[minwii.git] / src / minwii / loganalyse.py
index e33dfcf..a5f8be7 100755 (executable)
@@ -6,9 +6,9 @@ $Id$
 $URL$
 """
 
 $URL$
 """
 
-from logfilereader import LogFileReader
+from minwii.logfilereader import LogFileReader
 from pprint import pprint
 from pprint import pprint
-from musicxml import musicXml2Song
+from minwii.musicxml import musicXml2Song
 from statlib import stats
 
 DEFAULT_STATS = ('geometricmean',
 from statlib import stats
 
 DEFAULT_STATS = ('geometricmean',
@@ -62,30 +62,34 @@ class LogFileAnalyser(LogFileReader) :
                         }
     
     def analyse(self) :
                         }
     
     def analyse(self) :
-        self.mode = mode = self.getMode()
-        print 'Mode :', mode
+        results = []
         
         
-        results = {}
-        
-        for name in self.POSSIBLE_ANALYSES[mode] :
-            meth = getattr(self, name)
-            results[name] = meth()
+        try :
+            self.mode = mode = self.getMode()
+            results.append(('Mode de jeu', mode))
+            for name in self.POSSIBLE_ANALYSES[mode] :
+                meth = getattr(self, name)
+                results.append((meth.__doc__, meth()))
+        except :
+            pass
         
         return results
     
     def playingDuration(self) :
         
         return results
     
     def playingDuration(self) :
-        """ retourne la durée écoulée entre le premier et de dernier message
-            de type événement : correspond à la durée d'interprétation.
-        """
+        'Temps de jeu'
+        #retourne la durée écoulée entre le premier et de dernier message
+        #de type événement : correspond à la durée d'interprétation.
+        
         last = self.getLastEventTicks()
         first = self.getFirstEventTicks()
         return last - first
     
     def songDuration(self) :
         last = self.getLastEventTicks()
         first = self.getFirstEventTicks()
         return last - first
     
     def songDuration(self) :
-        """ retourne la durée de référence de la chanson
-            en prenant en compte le tempo présent dans la transcription
-            et en effectuant toutes les répétitions des couplets / refrains.
-        """
+        'Durée de la chanson'
+        #retourne la durée de référence de la chanson
+        #en prenant en compte le tempo présent dans la transcription
+        #et en effectuant toutes les répétitions des couplets / refrains.
+        
         songFile = self.getSongFile()
         song = musicXml2Song(songFile)
         duration = 0
         songFile = self.getSongFile()
         song = musicXml2Song(songFile)
         duration = 0
@@ -95,6 +99,7 @@ class LogFileAnalyser(LogFileReader) :
     
     @statsresults
     def noteEndNoteOnLatency(self) :
     
     @statsresults
     def noteEndNoteOnLatency(self) :
+        'Réactivité'
         eIter = self.getEventsIterator()
         latencies = []
         lastnoteEndT = 0
         eIter = self.getEventsIterator()
         latencies = []
         lastnoteEndT = 0
@@ -120,10 +125,11 @@ class LogFileAnalyser(LogFileReader) :
         return cpt
     
     def realisationRate(self) :
         return cpt
     
     def realisationRate(self) :
-        """ taux de réalisation en nombre de note
-            peut être supérieur à 100 % car la chanson
-            boucle à l'infini.
-        """
+        'Taux de réalisation'
+        #taux de réalisation en nombre de note
+        #peut être supérieur à 100 % car la chanson
+        #boucle à l'infini.
+        
         songFile = self.getSongFile()
         song = musicXml2Song(songFile)
         songNoteCpt = 0
         songFile = self.getSongFile()
         song = musicXml2Song(songFile)
         songNoteCpt = 0
@@ -133,6 +139,7 @@ class LogFileAnalyser(LogFileReader) :
         return int(round(self.noteOnCount() / float(songNoteCpt) * 100, 0))
     
     def missCount(self) :
         return int(round(self.noteOnCount() / float(songNoteCpt) * 100, 0))
     
     def missCount(self) :
+        "Nombre d'erreurs"
         eIter = self.getEventsIterator()
         miss = 0
         if self.mode in ('EASY', 'NORMAL') :
         eIter = self.getEventsIterator()
         miss = 0
         if self.mode in ('EASY', 'NORMAL') :