summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/ext/signal_dispatcher.py52
-rw-r--r--test/tc_signal.py43
2 files changed, 0 insertions, 95 deletions
diff --git a/ranger/ext/signal_dispatcher.py b/ranger/ext/signal_dispatcher.py
index 11e9c955..c1630c0c 100644
--- a/ranger/ext/signal_dispatcher.py
+++ b/ranger/ext/signal_dispatcher.py
@@ -13,7 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import re
 import weakref
 from types import MethodType
 
@@ -29,7 +28,6 @@ class Signal(dict):
 
 class SignalHandler(object):
 	active = True
-	regexp = None
 	def __init__(self, signal_name, function, priority, pass_signal):
 		self.priority = max(0, min(1, priority))
 		self.signal_name = signal_name
@@ -103,53 +101,3 @@ class SignalDispatcher(object):
 						return
 				except ReferenceError:
 					handlers.remove(handler)
-
-class RegexpSignalDispatcher(SignalDispatcher):
-	"""
-	A subclass of SignalDispatcher with regexp matching.
-	"""
-
-	def __init__(self):
-		SignalDispatcher.__init__(self)
-		self._signal_regexes = list()
-	_signal_clear = __init__
-
-	def signal_bind(self, signal_name, function, priority=0.5):
-		try:
-			handlers = self._signals[signal_name]
-		except:
-			handlers = self._signals[signal_name] = []
-			for handler in self._signal_regexes:
-				if handler.regexp.match(signal_name):
-					handlers.append(handler)
-		return SignalDispatcher.signal_bind(self, signal_name, \
-				function, priority)
-
-	def signal_bind_regexp(self, regexp, function, priority=0.5):
-		if isinstance(regexp, str):
-			regexp = re.compile(regexp)
-		handler = self.signal_bind('dynamic', function, priority)
-		handler.regexp = regexp
-		self._signal_regexes.append(handler)
-		for signal_name, handlers in self._signals.items():
-			if regexp.match(signal_name):
-				handlers.append(handler)
-			handlers.sort(key=lambda handler: -handler.priority)
-		return handler
-
-	def signal_unbind(self, handler):
-		self._signal_regexes.remove(handler)
-		for handlers in self._signals.values():
-			try:
-				handlers.remove(handler)
-			except ValueError:
-				pass
-
-	def signal_emit(self, signal_name, **kw):
-		assert isinstance(signal_name, str)
-		if not signal_name in self._signals:
-			handlers = self._signals[signal_name] = []
-			for handler in self._signal_regexes:
-				if handler.regexp.match(signal_name):
-					handlers.append(handler)
-		SignalDispatcher.signal_emit(self, signal_name, **kw)
diff --git a/test/tc_signal.py b/test/tc_signal.py
index feba3e5b..35b4eebe 100644
--- a/test/tc_signal.py
+++ b/test/tc_signal.py
@@ -130,48 +130,5 @@ class TestSignal(unittest.TestCase):
 		self.assertEqual('ab', ''.join(alphabet))
 		self.assertTrue(is_deleted[0])
 
-
-	def test_regexp_signals(self):
-		sd = RegexpSignalDispatcher()
-		lst = []
-		def modify(s):
-			s.number = 5
-		def set_number(s):
-			lst.append(s.number)
-		def stopit(s):
-			s.stop()
-
-		h1 = sd.signal_bind_regexp('.*ar', modify, priority=1)
-
-		sd.signal_bind('xyz', set_number)
-		sd.signal_bind('foobar', set_number)
-
-		sd.signal_emit('xyz', number=10)
-		self.assertEqual(10, lst[-1])
-		sd.signal_emit('foobar', number=10)
-		self.assertEqual(5, lst[-1])
-
-		h2 = sd.signal_bind_regexp('x.z', modify, priority=1)
-#		print(sd._signals)
-
-		sd.signal_emit('xyz', number=10)
-		self.assertEqual(5, lst[-1])
-		sd.signal_emit('foobar', number=10)
-		self.assertEqual(5, lst[-1])
-
-		sd.signal_unbind(h2)
-
-		sd.signal_emit('xyz', number=10)
-		self.assertEqual(10, lst[-1])
-		sd.signal_emit('foobar', number=10)
-		self.assertEqual(5, lst[-1])
-
-		sd.signal_unbind(h1)
-
-		sd.signal_emit('xyz', number=10)
-		self.assertEqual(10, lst[-1])
-		sd.signal_emit('foobar', number=10)
-		self.assertEqual(10, lst[-1])
-
 if __name__ == '__main__':
 	unittest.main()