Example #1
0
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
Example #2
0
def hashByMD5(data):
    if not isinstance(data, bytes):
        data = Decoder.encodeData(data)
    m = hashlib.md5()
    m.update(data)
    digest = m.hexdigest()
#     digest = Decoder.encodeData(digest)
#     res = ((digest[3] & 0xFF) << 24) | ((digest[2] & 0xFF) << 16) | ((digest[1] & 0xFF) << 8) | (digest[0] & 0xFF);
    return digest
Example #3
0
 def __init__(self, command, *args):
     if isinstance(command, bytes):
         self.command = command
     else:
         self.command = Decoder.encodeData(command)
     if isinstance(args, bytes):
         self.args = args
         return
     if isinstance(args, str):
         self.args = Decoder.encodeData(args)
         return
     argsLen = len(args)
     self.args = [None] * argsLen
     for i in range(0, argsLen):
         if isinstance(args[i], bytes):
             self.args[i] = args[i]
         else:
             self.args[i] = Decoder.encodeData(str(args[i]))
Example #4
0
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))
Example #5
0
 def aggregate(self, aggregate):
     self.params.append(Decoder.decodeData(RedisKeyword.AGGREGATE))
     self.params.append(Decoder.decodeData(aggregate));
     return self
Example #6
0
 def weights(self, *weights):
     self.params.append(Decoder.decodeData(RedisKeyword.WEIGHTS))
     for weight in weights:
         self.params.append(str(weight))
     return self