示例#1
0
 def run(self):
     """
     Run main loop.
     """
     if self.click_events:
         self.command_endpoint.start()
     for j in io.JSONIO(self.io).read():
         for module in self.modules:
             module.inject(j)
示例#2
0
 def __init__(self, standalone=False, interval=1, input_stream=sys.stdin):
     self.modules = util.ModuleList(self, ClassFinder(Module))
     self.standalone = standalone
     if standalone:
         self.io = io.StandaloneIO(interval)
         self.command_endpoint = CommandEndpoint(
             self.modules,
             lambda: io.JSONIO(io=io.IOHandler(sys.stdin, open(os.devnull, "w")), skiplines=1))
     else:
         self.io = io.IOHandler(input_stream)
示例#3
0
    def __init__(self,
                 standalone=True,
                 click_events=True,
                 interval=1,
                 input_stream=None,
                 logfile=None,
                 internet_check=None,
                 keep_alive=False,
                 logformat=DEFAULT_LOG_FORMAT,
                 default_hints={"markup": "none"}):
        self.standalone = standalone
        self.default_hints = default_hints
        self.click_events = standalone and click_events
        input_stream = input_stream or sys.stdin
        logger = logging.getLogger("i3pystatus")
        if logfile:
            for handler in logger.handlers:
                logger.removeHandler(handler)
            logfile = os.path.expandvars(logfile)
            handler = logging.FileHandler(logfile, delay=True)
            logger.addHandler(handler)
            logger.setLevel(logging.CRITICAL)
        if logformat:
            for index in range(len(logger.handlers)):
                logger.handlers[index].setFormatter(
                    logging.Formatter(logformat))
        if internet_check:
            util.internet.address = internet_check

        self.modules = util.ModuleList(self, ClassFinder(Module))
        if self.standalone:
            self.io = io.StandaloneIO(self.click_events, self.modules,
                                      keep_alive, interval)
            if self.click_events:
                self.command_endpoint = CommandEndpoint(
                    self.modules, lambda: io.JSONIO(io=io.IOHandler(
                        sys.stdin, open(os.devnull, "w")),
                                                    skiplines=1), self.io)
        else:
            self.io = io.IOHandler(input_stream)
示例#4
0
 def run(self):
     self.command_endpoint.start()
     for j in io.JSONIO(self.io).read():
         for module in self.modules:
             module.inject(j)