Esempio n. 1
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        command_and_args = buf.split(None, 1)
        if not command_and_args:
            return

        if len(command_and_args) >= 1:
            if command_and_args[0] == "uciok":
                return self._uciok()
            elif command_and_args[0] == "readyok":
                return self._readyok()

        if len(command_and_args) >= 2:
            if command_and_args[0] == "id":
                return self._id(command_and_args[1])
            elif command_and_args[0] == "bestmove":
                return self._bestmove(command_and_args[1])
            elif command_and_args[0] == "copyprotection":
                return self._copyprotection(command_and_args[1])
            elif command_and_args[0] == "registration":
                return self._registration(command_and_args[1])
            elif command_and_args[0] == "info":
                return self._info(command_and_args[1])
            elif command_and_args[0] == "option":
                return self._option(command_and_args[1])
Esempio n. 2
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        command_and_args = buf.split(None, 1)
        if not command_and_args:
            return

        if len(command_and_args) >= 1:
            if command_and_args[0] == "uciok":
                return self._uciok()
            elif command_and_args[0] == "readyok":
                return self._readyok()

        if len(command_and_args) >= 2:
            if command_and_args[0] == "id":
                return self._id(command_and_args[1])
            elif command_and_args[0] == "bestmove":
                return self._bestmove(command_and_args[1])
            elif command_and_args[0] == "copyprotection":
                return self._copyprotection(command_and_args[1])
            elif command_and_args[0] == "registration":
                return self._registration(command_and_args[1])
            elif command_and_args[0] == "info":
                return self._info(command_and_args[1])
            elif command_and_args[0] == "option":
                return self._option(command_and_args[1])
Esempio n. 3
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        if buf.startswith("feature"):
            return self._feature(buf[8:])
        elif buf.startswith("Illegal"):
            split_buf = buf.split()
            illegal_move = split_buf[-1]
            exception_msg = "Engine received an illegal move: {}".format(illegal_move)
            if len(split_buf) == 4:
                reason = split_buf[2][1:-2]
                exception_msg = " ".join([exception_msg, reason])
            raise EngineStateException(exception_msg)
        elif buf.startswith("Error"):
            err_msg = buf.split()[1][1:-2]
            raise EngineStateException("Engine produced an error: {}".format(err_msg))

        command_and_args = buf.split()
        if not command_and_args:
            return

        if len(command_and_args) == 1:
            if command_and_args[0] == "#":
                pass
            elif command_and_args[0] == "resign":
                return self._resign()
        elif len(command_and_args) == 2:
            if command_and_args[0] == "pong":
                return self._pong(command_and_args[1])
            elif command_and_args[0] == "move":
                return self._move(command_and_args[1])
            elif command_and_args[0] == "offer" and command_and_args[1] == "draw":
                return self._offer_draw()
        elif len(command_and_args) >= 5:
            return self._post(buf)
Esempio n. 4
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        if buf.startswith("feature"):
            return self._feature(buf[8:])
        elif buf.startswith("Illegal"):
            split_buf = buf.split()
            illegal_move = split_buf[-1]
            exception_msg = "Engine received an illegal move: {}".format(illegal_move)
            if len(split_buf) == 4:
                reason = split_buf[2][1:-2]
                exception_msg = " ".join([exception_msg, reason])
            raise EngineStateException(exception_msg)
        elif buf.startswith("Error"):
            err_msg = buf.split()[1][1:-2]
            raise EngineStateException("Engine produced an error: {}".format(err_msg))
        elif buf.startswith("#"):
            return

        command_and_args = buf.split()
        if not command_and_args:
            return

        if len(command_and_args) == 1:
            if command_and_args[0] == "resign":
                return self._resign()
        elif len(command_and_args) == 2:
            if command_and_args[0] == "pong":
                return self._pong(command_and_args[1])
            elif command_and_args[0] == "move":
                return self._move(command_and_args[1])
            elif command_and_args[0] == "offer" and command_and_args[1] == "draw":
                return self._offer_draw()
        elif len(command_and_args) >= 5:
            return self._post(buf)
Esempio n. 5
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        # Not too happy with this quasi-hack to prevent splitting within
        # options' space-separated values.
        if buf.startswith("feature"):
            return self._feature(buf[8:])

        command_and_args = buf.split()
        if not command_and_args:
            return

        if len(command_and_args) == 1:
            if command_and_args[0] == "#":
                pass
            elif command_and_args[0] == "resign":
                return self._resign()
        elif len(command_and_args) == 2:
            if command_and_args[0] == "pong":
                return self._pong(command_and_args[1])
            elif command_and_args[0] == "move":
                return self._move(command_and_args[1])
            elif command_and_args[0] == "offer" and command_and_args[
                    1] == "draw":
                return self._offer_draw()
        elif len(command_and_args) >= 5:
            return self._post(buf)
Esempio n. 6
0
    def on_line_received(self, buf):
        LOGGER.debug("%s >> %s", self.process, buf)

        command_and_args = buf.split()
        if not command_and_args:
            return

        if command_and_args[0] == "#":
            pass
        elif len(command_and_args) == 2:
            if command_and_args[0] == "pong":
                return self._pong(command_and_args[1])
            elif command_and_args[0] == "move":
                return self._move(command_and_args[1])
        elif len(command_and_args) >= 5:
            return self._post(buf)
 def send_line(self, line):
     LOGGER.debug("%s << %s", self.process, line)
     return self.process.send_line(line)
Esempio n. 8
0
 def send_line(self, line):
     LOGGER.debug("%s << %s", self.process, line)
     return self.process.send_line(line)