[tor-commits] [nyx/master] Replace get_panels() with iterator
atagar at torproject.org
atagar at torproject.org
Fri Sep 16 06:18:14 UTC 2016
commit 320baf839270e1e4c4d2d777fdc4f403272dd3d4
Author: Damian Johnson <atagar at torproject.org>
Date: Thu Sep 15 12:30:28 2016 -0700
Replace get_panels() with iterator
This is only used internally, and makes sense that iterating over the interface
would give you the panels.
---
nyx/__init__.py | 40 ++++++++++++++++------------------------
nyx/controller.py | 12 ++++++------
2 files changed, 22 insertions(+), 30 deletions(-)
diff --git a/nyx/__init__.py b/nyx/__init__.py
index 91225b8..dc4d3e5 100644
--- a/nyx/__init__.py
+++ b/nyx/__init__.py
@@ -19,7 +19,6 @@ Tor curses monitoring application.
|- set_page - sets the page we're showing
|- page_count - pages within our interface
|
- |- get_panels - provides all panels
|- get_page_panels - provides panels on a page
|- get_daemon_panels - provides daemon panels
|
@@ -269,20 +268,6 @@ class Interface(object):
return len(self._page_panels)
- def get_panels(self):
- """
- Provides all panels in the interface.
-
- :returns: **list** with panels in the interface
- """
-
- all_panels = [self._header_panel]
-
- for page in self._page_panels:
- all_panels += list(page)
-
- return all_panels
-
def get_page_panels(self, page_number = None):
"""
Provides panels belonging to a page, ordered top to bottom.
@@ -302,7 +287,7 @@ class Interface(object):
:returns: **list** of DaemonPanel in the interface
"""
- return [panel for panel in self.get_panels() if isinstance(panel, nyx.panel.DaemonPanel)]
+ return [panel for panel in self if isinstance(panel, nyx.panel.DaemonPanel)]
def is_paused(self):
"""
@@ -324,11 +309,11 @@ class Interface(object):
if is_pause != self._paused:
self._paused = is_pause
- for panel_impl in self.get_panels():
- panel_impl.set_paused(is_pause)
+ for panel in self:
+ panel.set_paused(is_pause)
- for panel_impl in self.get_page_panels():
- panel_impl.redraw()
+ for panel in self.get_page_panels():
+ panel.redraw()
def redraw(self, force = True):
"""
@@ -365,15 +350,22 @@ class Interface(object):
"""
def halt_panels():
- for panel_impl in self.get_daemon_panels():
- panel_impl.stop()
+ for panel in self.get_daemon_panels():
+ panel.stop()
- for panel_impl in self.get_daemon_panels():
- panel_impl.join()
+ for panel in self.get_daemon_panels():
+ panel.join()
halt_thread = threading.Thread(target = halt_panels)
halt_thread.start()
return halt_thread
+ def __iter__(self):
+ yield self._header_panel
+
+ for page in self._page_panels:
+ for panel in page:
+ yield panel
+
import nyx.panel
diff --git a/nyx/controller.py b/nyx/controller.py
index 6dd1b09..201dec4 100644
--- a/nyx/controller.py
+++ b/nyx/controller.py
@@ -151,8 +151,8 @@ def start_nyx():
# tells daemon panels to start
- for panel_impl in interface.get_daemon_panels():
- panel_impl.start()
+ for panel in interface.get_daemon_panels():
+ panel.start()
# logs the initialization time
@@ -167,8 +167,8 @@ def start_nyx():
# sets panel visability
- for panel_impl in interface.get_panels():
- panel_impl.set_visible(panel_impl in display_panels)
+ for panel in interface:
+ panel.set_visible(panel in display_panels)
interface.redraw()
@@ -216,6 +216,6 @@ def start_nyx():
elif key.match('h'):
override_key = nyx.popups.show_help()
else:
- for panel_impl in display_panels:
- for keybinding in panel_impl.key_handlers():
+ for panel in display_panels:
+ for keybinding in panel.key_handlers():
keybinding.handle(key)
More information about the tor-commits
mailing list