Changeset 367
- Timestamp:
- 11/11/02 17:57:44 (6 years ago)
- Files:
-
- trunk/RBFoundation/RBFoundation/TaskProgress.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBFoundation/RBFoundation/TaskProgress.py
r365 r367 53 53 ProgressStart = 0 54 54 ProgressEnd = 1 55 ProgressUpdate Delta= 055 ProgressUpdateSteps = 0 56 56 ProgressUpdateThreshold = 0 57 57 _Progress = 0 … … 61 61 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 62 63 def __init__(self, *args, **kw): 63 def __init__(self, name, *args, **kw): 64 self.Name = name 64 65 self.OnProgress = self.SubjectFactory() 66 self.OnAddSubtask = self.SubjectFactory() 65 67 if args or kw: 66 68 self.SetProgressRange(*args, **kw) … … 73 75 return self 74 76 75 def NewSubtask(self, *args, **kw): 76 subtask = self.SubtaskFactory(*args, **kw) 77 subtask.OnProgress.Add(self._OnSubtaskUpdate) 77 def NewSubtask(self, Name, Start=0., Stop=1., UpdateSteps=None): 78 subtask = self.SubtaskFactory(Name, Start, Stop, UpdateSteps or self.ProgressUpdateSteps) 79 return self.AddSubtask(subtask) 80 81 def AddSubtask(self, subtask): 78 82 try: 79 83 self.Subtasks.append(subtask) 80 84 except AttributeError: 81 85 self.Subtasks = [subtask] 86 subtask.OnProgress.Add(self._OnSubtaskUpdate) 87 self.OnAddSubtask.Update(self, subtask) 82 88 self._OnSubtaskUpdate(subtask, subtask.Progress) 83 89 return subtask … … 87 93 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 94 89 def SetProgressRange(self, Start, Stop, UpdateSteps=10 0, bSetProgress=1):90 self.ProgressUpdate Delta = (Stop - Start) / max(1, UpdateSteps-1)95 def SetProgressRange(self, Start, Stop, UpdateSteps=10, bSetProgress=1): 96 self.ProgressUpdateSteps = UpdateSteps 91 97 self.ProgressUpdateThreshold = Start 92 98 self.ProgressStart = Start … … 107 113 if Progress >= self.ProgressUpdateThreshold: 108 114 self.OnProgress.Update(self, Progress) 109 self.ProgressUpdateThreshold += self.ProgressUpdateDelta115 self.ProgressUpdateThreshold += float(self.ProgressEnd - self.ProgressStart) / self.ProgressUpdateSteps 110 116 elif Progress >= self.ProgressEnd: 111 117 self.OnProgress.Update(self, Progress) … … 138 144 print "Testing..." 139 145 140 task = TaskProgress( 0, 10000, 15)146 task = TaskProgress('Test task', 0, 10000, 15) 141 147 142 148 task += 10 143 print task.Progress, task.ProgressStart, task.ProgressEnd, task.ProgressUpdate Delta149 print task.Progress, task.ProgressStart, task.ProgressEnd, task.ProgressUpdateSteps 144 150 145 151 def PrintProgress(task, progress): 146 print task.Percentage 152 print '%-20s [%5.1f%%]' % (task.Name, task.Percentage * 100) 153 147 154 task.OnProgress.Add(PrintProgress) 148 155 149 156 print 150 157 print "==", "Task progress", "="*20 151 for p in range(task.ProgressStart, task.ProgressEnd, task.ProgressUpdateDelta * .160):158 for p in range(task.ProgressStart, task.ProgressEnd, (task.ProgressEnd - task.ProgressStart)/task.ProgressUpdateSteps * .4): 152 159 task.Progress = p 153 160 task.Progress = task.ProgressEnd … … 155 162 print 156 163 print "==", "Subtasks", "="*20 157 task.SetProgressRange(0.,1., 12.)164 task.SetProgressRange(0.,1.,5) 158 165 for each in xrange(5): 159 task.NewSubtask(0., 1., 20) 166 subtask = task.NewSubtask(' Subtask %s' % each, 0., 1., 4) 167 subtask.OnProgress.Add(PrintProgress) 160 168 161 169 while task.Percent < 1.:
