[tor-commits] [nyx/master] Start Interface class, moving pause methods
atagar at torproject.org
atagar at torproject.org
Fri Sep 16 06:18:14 UTC 2016
commit 89f8218031de2fce3863fe151c26320317ab4656
Author: Damian Johnson <atagar at torproject.org>
Date: Mon Sep 12 09:50:32 2016 -0700
Start Interface class, moving pause methods
Starting a gradual migration of our Controller class into the Interface,
rewritting this sucker as we go. Doing this as a Controller subclass so things
continue to work as we move.
---
nyx/__init__.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
nyx/controller.py | 53 ++++-------------------------------------
2 files changed, 75 insertions(+), 49 deletions(-)
diff --git a/nyx/__init__.py b/nyx/__init__.py
index 1ffd4b0..268c4ba 100644
--- a/nyx/__init__.py
+++ b/nyx/__init__.py
@@ -3,11 +3,27 @@
"""
Tor curses monitoring application.
+
+::
+
+ nyx_interface - nyx interface singleton
+ tor_controller - tor connection singleton
+
+ init_controller - initializes our connection to tor
+ expand_path - expands path with respect to our chroot
+ join - joins a series of strings up to a set length
+ msg - string from our configuration
+
+ Interface - overall nyx interface
+ |- is_paused - checks if the interface is paused
+ |- pause_time - time when the interface was paused
+ +- set_paused - sets paused state
"""
import distutils.spawn
import os
import sys
+import time
import stem.connection
import stem.control
@@ -196,3 +212,58 @@ def msg(message, config, **attr):
stem.util.log.notice(msg)
return ''
+
+
+class Interface(object):
+ """
+ Overall state of the nyx interface.
+ """
+
+ def __init__(self):
+ self._paused = False
+ self._pause_time = None
+
+ def is_paused(self):
+ """
+ Checks if the interface is configured to be paused.
+
+ :returns: **True** if the interface is paused, **False** otherwise
+ """
+
+ return self._paused
+
+ def get_pause_time(self):
+ """
+ Provides the time that we were last paused.
+
+ :returns: **float** with the unix timestamp for when we were last paused,
+ **None** if not paused
+ """
+
+ return self._pause_time
+
+ def set_paused(self, is_pause):
+ """
+ Pauses or unpauses the interface.
+
+ :param bool is_pause: suspends the interface if **True**, resumes it
+ otherwise
+ """
+
+ if is_pause != self._paused:
+ self._paused = is_pause
+ self._pause_time = time.time() if is_pause else None
+
+ # Couple panels have their own pausing behavior. I'll later change this to
+ # a listener approach or someting else that's less hacky.
+
+ for panel_impl in self.get_all_panels():
+ if isinstance(panel_impl, nyx.panel.graph.GraphPanel) or isinstance(panel_impl, nyx.panel.log.LogPanel):
+ panel_impl.set_paused(is_pause)
+
+ for panel_impl in self.get_display_panels():
+ panel_impl.redraw()
+
+
+import nyx.panel.graph
+import nyx.panel.log
diff --git a/nyx/controller.py b/nyx/controller.py
index 4a3825f..42553b4 100644
--- a/nyx/controller.py
+++ b/nyx/controller.py
@@ -27,7 +27,7 @@ import stem
from stem.util import conf, log
from nyx.curses import BOLD
-from nyx import tor_controller
+from nyx import Interface, tor_controller
NYX_CONTROLLER = None
@@ -87,7 +87,7 @@ def input_prompt(msg, initial_value = ''):
return user_input
-class Controller(object):
+class Controller(Interface):
"""
Tracks the global state of the interface
"""
@@ -98,12 +98,12 @@ class Controller(object):
top to bottom on the page.
"""
+ super(Controller, self).__init__()
+
self._page_panels = []
self._header_panel = None
self.quit_signal = False
self._page = 0
- self._paused = False
- self._pause_time = -1
self._force_redraw = False
self._last_drawn = 0
@@ -134,8 +134,6 @@ class Controller(object):
self.quit_signal = False
self._page = 0
- self._paused = False
- self._pause_time = -1
self._force_redraw = False
self._last_drawn = 0
@@ -184,49 +182,6 @@ class Controller(object):
self.set_page((self._page - 1) % len(self._page_panels))
- def is_paused(self):
- """
- Provides if the interface is configured to be paused or not.
-
- :returns: **True** if the interface is paused and **False** otherwise
- """
-
- return self._paused
-
- def set_paused(self, is_pause):
- """
- Pauses or unpauses the interface.
-
- :param bool is_pause: suspends the interface if **True**, resumes it
- otherwise
- """
-
- if is_pause != self._paused:
- if is_pause:
- self._pause_time = time.time()
-
- # Couple panels have their own pausing behavior. I'll later change this to
- # a listener approach or someting else that's less hacky.
-
- for panel_impl in self.get_all_panels():
- if isinstance(panel_impl, nyx.panel.graph.GraphPanel) or isinstance(panel_impl, nyx.panel.log.LogPanel):
- panel_impl.set_paused(is_pause)
-
- self._paused = is_pause
-
- for panel_impl in self.get_display_panels():
- panel_impl.redraw()
-
- def get_pause_time(self):
- """
- Provides the time that we were last paused, returning -1 if we've never
- been paused.
-
- :returns: **float** with the unix timestamp for when we were last paused
- """
-
- return self._pause_time
-
def header_panel(self):
return self._header_panel
More information about the tor-commits
mailing list