From 0ad4ae6a026de169c5fec18fc25471f5d16d53fb Mon Sep 17 00:00:00 2001 From: enkore Date: Mon, 18 Feb 2013 18:02:23 +0100 Subject: [PATCH] This isn't a program... this is a poem! --- i3pystatus/__init__.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/i3pystatus/__init__.py b/i3pystatus/__init__.py index 1f8d19d..3063c6e 100644 --- a/i3pystatus/__init__.py +++ b/i3pystatus/__init__.py @@ -64,8 +64,13 @@ class JSONIO: self.io.write(self.io.read()) self.io.write(self.io.read()) - @contextmanager def read(self): + while True: + with self.read_line() as j: + yield j + + @contextmanager + def read_line(self): line, prefix = self.io.read(), "" # ignore comma at start of lines @@ -83,7 +88,7 @@ class I3statusHandler: if fd is None: fd = sys.stdin - self.io = IOHandler(fd) + self.io = JSONIO(IOHandler(fd)) def register(self, module): """Register a new module.""" @@ -92,11 +97,8 @@ class I3statusHandler: module.registered(self) def run(self): - jio = JSONIO(self.io) - - while True: - with jio.read() as j: - for module in self.modules: - output = module.output - if output: - j.insert(0, output) + for j in self.io.read(): + for module in self.modules: + output = module.output + if output: + j.insert(0, output)