示例#1
0
    def _recv_loop(self):
        buf = b''
        while True:
            try:
                data = self._socket.recv(512)
            except greenlet.GreenletExit:
                raise
            except Exception:
                eventlet.spawn(self.reconnect)

            buf += data
            pos = buf.find(b"\n")
            while pos >= 0:
                line = unquote_plus(force_str(buf[0:pos]))
                parts = line.split(' ')

                if len(parts) >= 3:
                    parts = line.split(' ', 2)
                    parts.pop(0)
                    self._recv_queue.put(parts)
                else:
                    # print len(parts), line
                    pass

                buf = buf[pos + 1:]
                pos = buf.find(b"\n")
示例#2
0
文件: brain.py 项目: pubbothq/pubbot
    def get_chains_from_tokens(self, tokens):
        tokens = [stemmer.stem(token) for token in tokens]
        while tokens:
            token = random.choice(tokens)
            try:
                results = json.loads(force_str(self.client.eval(self.generate_sentence, 0, token, 10)))
            except UnicodeError:
                continue

            if not results:
                tokens.remove(token)
                continue

            for result in results:
                yield result["chain"], result["score"]
示例#3
0
文件: brain.py 项目: pubbothq/pubbot
 def store_string(self, text):
     try:
         tokens = tokenizer.split(force_str(text))
         return self.store_tokens(tokens)
     except UnicodeError:
         pass
示例#4
0
文件: tests.py 项目: 1stvamp/pubbot
 def test_force_str_b(self):
     self.assertTrue(isinstance(force_str(b"hello"), str))