Lines Matching refs:self

101     def __init__(self, maxval=None, widgets=None, term_width=None, poll=1,  argument
107 widgets = list(self._DEFAULT_WIDGETS)
109 self.maxval = maxval
110 self.widgets = widgets
111 self.fd = fd
112 self.left_justify = left_justify
114 self.signal_set = False
116 self.term_width = term_width
119 self._handle_resize(None, None)
120 signal.signal(signal.SIGWINCH, self._handle_resize)
121 self.signal_set = True
125 self.term_width = self._env_size()
127 self.__iterable = None
128 self._update_widgets()
129 self.currval = 0
130 self.finished = False
131 self.last_update_time = None
132 self.poll = poll
133 self.seconds_elapsed = 0
134 self.start_time = None
135 self.update_interval = 1
136 self.next_update = 0
139 def __call__(self, iterable): argument
143 self.maxval = len(iterable)
145 if self.maxval is None:
146 self.maxval = UnknownLength
148 self.__iterable = iter(iterable)
149 return self
152 def __iter__(self): argument
153 return self
156 def __next__(self): argument
158 value = next(self.__iterable)
159 if self.start_time is None:
160 self.start()
162 self.update(self.currval + 1)
165 if self.start_time is None:
166 self.start()
167 self.finish()
176 def _env_size(self): argument
179 return int(os.environ.get('COLUMNS', self._DEFAULT_TERMSIZE)) - 1
182 def _handle_resize(self, signum=None, frame=None): argument
185 h, w = array('h', ioctl(self.fd, termios.TIOCGWINSZ, '\0' * 8))[:2]
186 self.term_width = w
189 def percentage(self): argument
191 if self.currval >= self.maxval:
193 return (self.currval * 100.0 / self.maxval) if self.maxval else 100.00
198 def _format_widgets(self): argument
201 width = self.term_width
203 for index, widget in enumerate(self.widgets):
208 widget = widgets.format_updatable(widget, self)
218 widget = result[index].update(self, portion)
225 def _format_line(self): argument
228 widgets = ''.join(self._format_widgets())
230 if self.left_justify: return widgets.ljust(self.term_width)
231 else: return widgets.rjust(self.term_width)
234 def _need_update(self): argument
236 if self.currval >= self.next_update or self.finished: return True
238 delta = time.time() - self.last_update_time
239 return self._time_sensitive and delta > self.poll
242 def _update_widgets(self): argument
245 self._time_sensitive = any(getattr(w, 'TIME_SENSITIVE', False)
246 for w in self.widgets)
249 def update(self, value=None): argument
253 if (self.maxval is not UnknownLength
254 and not 0 <= value <= self.maxval):
258 self.currval = value
261 if not self._need_update(): return
262 if self.start_time is None:
266 self.seconds_elapsed = now - self.start_time
267 self.next_update = self.currval + self.update_interval
268 output = self._format_line()
269 self.fd.write(output + '\r')
270 self.fd.flush()
271 self.last_update_time = now
275 def start(self, update=True): argument
287 if self.maxval is None:
288 self.maxval = self._DEFAULT_MAXVAL
290 self.num_intervals = max(100, self.term_width)
291 self.next_update = 0
293 if self.maxval is not UnknownLength:
294 if self.maxval < 0: raise ValueError('Value out of range')
295 self.update_interval = self.maxval / self.num_intervals
298 self.start_time = time.time()
300 self.last_update_time = self.start_time
301 self.update(0)
303 self.last_update_time = 0
305 return self
308 def finish(self): argument
311 if self.finished:
313 self.finished = True
314 self.update(self.maxval)
315 self.fd.write('\n')
316 if self.signal_set: