Show
Ignore:
Timestamp:
03/04/06 15:51:12 (18 years ago)
Author:
jerome
Message:

Code cleaning.
Topped to 10000 the number of times the percent will be displayed by not displaying it if there's no change.
This is very useful when adding 25000 users on 300 printers through an ssh connection...

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/pkprinters

    r2770 r2782  
    2929import pwd 
    3030 
    31 from pykota.tool import PyKotaTool, PyKotaToolError, PyKotaCommandLineError, crashed, N_ 
     31from pykota.tool import Percent, PyKotaTool, PyKotaToolError, PyKotaCommandLineError, crashed, N_ 
    3232from pykota.storage import StoragePrinter 
    3333 
     
    171171                print     
    172172        elif options["delete"] :     
    173             self.display("\n%s..." % _("Deletion")) 
     173            percent = Percent(self, "\n%s..." % _("Deletion"), len(printers)) 
    174174            self.storage.deleteManyPrinters(printers) 
    175             self.display("\n") 
     175            percent.display("\n") 
    176176        else : 
    177177            if options["groups"] :         
     
    217217            try : 
    218218                if options["add"] :     
    219                     self.display("%s...\n" % _("Creation")) 
    220                     nbtotal = len(names) 
    221                     for i in range(nbtotal) : 
    222                         pname = names[i] 
     219                    percent = Percent(self, "%s...\n" % _("Creation"), len(names)) 
     220                    for pname in names : 
    223221                        if self.isValidName(pname) : 
    224222                            printer = StoragePrinter(self.storage, pname) 
     
    244242                        else :     
    245243                            raise PyKotaCommandLineError, _("Invalid printer name %s") % pname 
    246                         percent = 100.0 * float(i) / float(nbtotal) 
    247                         self.display("\r%.02f%%" % percent) 
     244                        percent.oneMore() 
    248245                else :         
    249                     self.display("\n%s...\n" % _("Modification")) 
    250                     nbtotal = len(printers) 
    251                     for i in range(nbtotal) :         
    252                         printer = printers[i] 
     246                    percent = Percent(self, "\n%s...\n" % _("Modification"), len(printers)) 
     247                    for printer in printers :         
    253248                        self.modifyPrinter(printer, charges, perpage, perjob, \ 
    254249                                           description, passthrough, \ 
     
    256251                        printer.save()     
    257252                        self.managePrintersGroups(printersgroups, printer, remove) 
    258                         percent = 100.0 * float(i) / float(nbtotal) 
    259                         self.display("\r%.02f%%" % percent) 
     253                        percent.oneMore() 
    260254            except :                     
    261255                self.storage.rollbackTransaction() 
     
    263257            else :     
    264258                self.storage.commitTransaction() 
    265         if not options["list"] :                 
    266             self.done() 
     259                 
     260        try : 
     261            percent.done() 
     262        except NameError :     
     263            pass 
    267264                      
    268265if __name__ == "__main__" :