Show
Ignore:
Timestamp:
03/05/06 09:36:47 (18 years ago)
Author:
jerome
Message:

Now outputs the average speed, so no need to do this in filldb anymore.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/tool.py

    r2782 r2783  
    3535import tempfile 
    3636import md5 
     37import time 
    3738import ConfigParser 
    3839import popen2 
     
    8081class Percent : 
    8182    """A class to display progress.""" 
    82     def __init__(self, app, title, size) : 
     83    def __init__(self, app, size=None) : 
    8384        """Initializes the engine.""" 
    8485        self.app = app 
     86        self.size = None 
     87        if size : 
     88            self.setSize(size) 
     89        self.previous = None 
     90        self.before = time.time() 
     91         
     92    def setSize(self, size) :      
     93        """Sets the total size.""" 
     94        self.number = 0 
    8595        self.size = size 
    86         self.number = 0 
    8796        self.factor = 100.0 / float(size) 
    88         self.previous = None 
    89         self.display(title) 
    9097         
    9198    def display(self, msg) :     
     
    95102    def oneMore(self) :     
    96103        """Increments internal counter.""" 
    97         self.number += 1 
    98         percent = "%.02f" % (float(self.number) * self.factor) 
    99         if percent != self.previous : # optimize for large number of items 
    100             self.display("\r%s%%" % percent) 
    101             self.previous = percent 
     104        if self.size : 
     105            self.number += 1 
     106            percent = "%.02f" % (float(self.number) * self.factor) 
     107            if percent != self.previous : # optimize for large number of items 
     108                self.display("\r%s%%" % percent) 
     109                self.previous = percent 
    102110             
    103111    def done(self) :          
    104112        """Displays the 'done' message.""" 
    105         self.display("\r100.00%%\r        \r%s\n" % _("Done.")) 
     113        after = time.time() 
     114        if self.size : 
     115            speed = int(self.size / (after - self.before)) 
     116            self.display("\r100.00%%\r        \r%s. %s : %i %s.\n" \ 
     117                     % (_("Done"), _("Average speed"), speed, _("entries per second"))) 
     118        else :              
     119            self.display("\r100.00%%\r        \r%s.\n" % _("Done")) 
    106120         
    107121class Tool :