commit 91cff237a45cb9aa7d1aae53017627dc6e267083 Author: Damian Johnson atagar@torproject.org Date: Mon Jun 8 09:22:23 2015 -0700
Errors when rendering connection panel entry
Stacktraces related to how we handle curses attributes on the connection panel. This arose if you tried to view the panel when there was... well, anything on it (usually if you disable DisableDebuggerAttachment).
Traceback (most recent call last): File "./run_nyx", line 8, in <module> nyx.main() File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 30, in main nyx.starter.main() File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 288, in wrapped return func(*args, config = config, **kwargs) File "/home/atagar/Desktop/nyx/nyx/starter.py", line 91, in main curses.wrapper(nyx.controller.start_nyx) File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper return func(stdscr, *args, **kwds) File "/home/atagar/Desktop/nyx/nyx/controller.py", line 576, in start_nyx control.redraw(False) File "/home/atagar/Desktop/nyx/nyx/controller.py", line 402, in redraw panel_impl.redraw(force) File "/home/atagar/Desktop/nyx/nyx/util/panel.py", line 433, in redraw self.draw(self.max_x, self.max_y) File "/home/atagar/Desktop/nyx/nyx/connections/conn_panel.py", line 464, in draw attr |= extra_format TypeError: unsupported operand type(s) for |=: 'str' and 'int'
Traceback (most recent call last): File "./run_nyx", line 8, in <module> nyx.main() File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 30, in main nyx.starter.main() File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 288, in wrapped return func(*args, config = config, **kwargs) File "/home/atagar/Desktop/nyx/nyx/starter.py", line 91, in main curses.wrapper(nyx.controller.start_nyx) File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper return func(stdscr, *args, **kwds) File "/home/atagar/Desktop/nyx/nyx/controller.py", line 576, in start_nyx control.redraw(False) File "/home/atagar/Desktop/nyx/nyx/controller.py", line 402, in redraw panel_impl.redraw(force) File "/home/atagar/Desktop/nyx/nyx/util/panel.py", line 433, in redraw self.draw(self.max_x, self.max_y) File "/home/atagar/Desktop/nyx/nyx/connections/conn_panel.py", line 463, in draw for msg, attr in draw_entry: ValueError: too many values to unpack --- nyx/connections/circ_entry.py | 4 +++- nyx/connections/conn_entry.py | 6 ++++-- nyx/connections/conn_panel.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/nyx/connections/circ_entry.py b/nyx/connections/circ_entry.py index b3738c1..b3dc113 100644 --- a/nyx/connections/circ_entry.py +++ b/nyx/connections/circ_entry.py @@ -10,6 +10,8 @@ followed by an entry for each hop in the circuit. For instance:
import curses
+import nyx.util.ui_tools + from nyx.connections import entries, conn_entry from nyx.util import tor_controller
@@ -172,7 +174,7 @@ class CircLine(conn_entry.ConnectionLine): return entries.ConnectionPanelLine.get_listing_entry(self, width, current_time, listing_type)
def _get_listing_entry(self, width, current_time, listing_type): - line_format = conn_entry.CATEGORY_COLOR[self.get_type()] + line_format = nyx.util.ui_tools.get_color(conn_entry.CATEGORY_COLOR[self.get_type()])
# The required widths are the sum of the following: # initial space (1 character) diff --git a/nyx/connections/conn_entry.py b/nyx/connections/conn_entry.py index cfd4fa3..714661e 100644 --- a/nyx/connections/conn_entry.py +++ b/nyx/connections/conn_entry.py @@ -6,6 +6,8 @@ Connection panel entries related to actual connections to or from the system import time import curses
+import nyx.util.ui_tools + from nyx.util import tor_controller from nyx.connections import entries
@@ -374,14 +376,14 @@ class ConnectionLine(entries.ConnectionPanelLine): # category - "<type>" # postType - ") "
- line_format = CATEGORY_COLOR[entry_type] + line_format = nyx.util.ui_tools.get_color(CATEGORY_COLOR[entry_type]) time_width = 6 if CONFIG['features.connection.markInitialConnections'] else 5
draw_entry = [(' ', line_format), (self._get_listing_content(width - (12 + time_width) - 1, listing_type), line_format), (' ' * time_width, line_format), (' (', line_format), - (entry_type.upper(), line_format, curses.A_BOLD), + (entry_type.upper(), line_format | curses.A_BOLD), (')' + ' ' * (9 - len(entry_type)), line_format)]
return draw_entry diff --git a/nyx/connections/conn_panel.py b/nyx/connections/conn_panel.py index 290cc84..46c4a7c 100644 --- a/nyx/connections/conn_panel.py +++ b/nyx/connections/conn_panel.py @@ -462,7 +462,7 @@ class ConnectionPanel(panel.Panel, threading.Thread):
for msg, attr in draw_entry: attr |= extra_format - self.addstr(draw_line, x_offset, msg, *attr) + self.addstr(draw_line, x_offset, msg, attr) x_offset += len(msg)
if draw_line >= height:
tor-commits@lists.torproject.org