Esempio n. 1
0
	def _pre_processing(self, output_iter):
		cur_time = time.time()
		old_lines = dict(self._old_lines)
		for line_idx, cur_line in enumerate(output_iter):
			(old_line_raw, old_line_age) = old_lines.pop(line_idx, (None, None))
			cur_line_raw = ANSI.strip_fmt(cur_line)
			if old_line_raw and not cur_line_raw:
				yield self._format_old_line(cur_time, line_idx, old_line_raw, old_line_age)
			else:
				yield cur_line
				self._old_lines[line_idx] = (cur_line_raw, cur_time)
		for old_line_idx in sorted(old_lines):
			yield self._format_old_line(cur_time, old_line_idx, *old_lines.pop(old_line_idx))
Esempio n. 2
0
	def _trim_width(self, output_iter):
		for line in output_iter:
			line = line.rstrip()[:self._layout_width + len(line) - len(ANSI.strip_fmt(line))]
			yield line.rstrip(ANSI.esc) + ANSI.reset + ANSI.erase_line