speed up attribute collection a lot
This commit is contained in:
		| @@ -34,27 +34,15 @@ class Terminal: | ||||
|         self.screen.cursor.y = min(self.screen.cursor.y, self.screen.lines - 1)             | ||||
|     def dump(self): | ||||
|         cursor = self.screen.cursor | ||||
|         allAttributes = [] | ||||
|         text = '\n'.join(self.screen.display) | ||||
|         start = time.time()    | ||||
|         buffer = self.screen.buffer | ||||
|         #buffer = [[[1,1],[1,2]], [[2,1],[2,2]], [[3,1],[3,2]]] | ||||
|         #[buffer[x][y] for x in xrange(0,2) for y in xrange(0,1)] | ||||
|         #columns = 2 | ||||
|         #rows = 3 | ||||
|         #[buffer[x][0] + [False, 'default', 'default'] for line in (buffer[x] for x in range(columns))]         | ||||
|         #allAttributes = [[attribute[1:] + [False, 'default', 'default'] for attribute in line] for line in buffer] | ||||
|         for y in range(self.screen.lines): | ||||
|             line = self.screen.buffer[y]     | ||||
|             attributes = [list(char[1:])  + [False, 'default', 'default'] for char in (line[x] for x in range(self.screen.columns))] | ||||
|             allAttributes.append(attributes) | ||||
|         print(time.time() -start) | ||||
|         attributes = [[list(attribute[1:]) + [False, 'default', 'default'] for attribute in line.values()] for line in buffer.values()] | ||||
|         self.screen.dirty.clear() | ||||
|         return {"cursor": (cursor.x, cursor.y), | ||||
|             'lines': self.screen.lines, | ||||
|             'columns': self.screen.columns, | ||||
|             "text": text,  | ||||
|             'attributes': allAttributes, | ||||
|             'attributes': attributes, | ||||
|             'screen': 'pty'             | ||||
|         }.copy() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user