def readLine(sock): sb = "" while(True): b = sock.recv(1) if(b == b'\r'): c = sock.recv(1) if(c == b'\n'): break; sb += Decoder.decodeData(b) sb += Decoder.decodeData(c) else: sb += Decoder.decodeData(b) if(len(sb) == 0): raise PiedisException('It seems like server has closed the connection.') return sb
def parseResponse(sock): b = sock.recv(1) if b == MINUS_BYTE: parseError(sock) elif b == ASTERISK_BYTE: return parseMultiBulkReply(sock) elif b == COLON_BYTE: return parseInteger(sock) elif b == DOLLAR_BYTE: return parseBulkReply(sock) elif b == PLUS_BYTE: return parseStatusCodeReply(sock) else: raise ProtocolException("Unknown reply: " + Decoder.decodeData(b))
def aggregate(self, aggregate): self.params.append(Decoder.decodeData(RedisKeyword.AGGREGATE)) self.params.append(Decoder.decodeData(aggregate)); return self
def weights(self, *weights): self.params.append(Decoder.decodeData(RedisKeyword.WEIGHTS)) for weight in weights: self.params.append(str(weight)) return self