def deserialize(self, value, flags): """ Deserialized values based on flags or just return it if it is not serialized. :param value: Serialized or not value. :type value: six.string_type, int :param flags: Value flags :type flags: int :return: Deserialized value :rtype: six.string_type|int """ to_str = lambda v: v.decode('utf8') if six.PY3 else v if flags & self.FLAGS['compressed']: # pragma: no branch value = self.compression.decompress(value) if flags & self.FLAGS['integer']: return int(to_str(value)) elif flags & self.FLAGS['long']: return long(to_str(value)) elif flags & self.FLAGS['pickle']: buf = BytesIO(value) unpickler = self.unpickler(buf) return unpickler.load() return to_str(value)
def deserialize(self, value, flags): """ Deserialized values based on flags or just return it if it is not serialized. :param value: Serialized or not value. :type value: six.string_types, int :param flags: Value flags :type flags: int :return: Deserialized value :rtype: six.string_types|int """ FLAGS = self.FLAGS if flags & FLAGS['compressed']: # pragma: no branch value = self.compression.decompress(value) if flags & FLAGS['binary']: return value if flags & FLAGS['integer']: return int(value) elif flags & FLAGS['long']: return long(value) elif flags & FLAGS['object']: buf = BytesIO(value) unpickler = self.unpickler(buf) return unpickler.load() if six.PY3: return value.decode('utf8') # In Python 2, mimic the behavior of the json library: return a str # unless the value contains unicode characters. # in Python 2, if value is a binary (e.g struct.pack("<Q") then decode will fail try: value.decode('ascii') except UnicodeDecodeError: try: return value.decode('utf8') except UnicodeDecodeError: return value else: return value
def deserialize(self, value, flags): """ Deserialized values based on flags or just return it if it is not serialized. :param value: Serialized or not value. :type value: six.string_types, int :param flags: Value flags :type flags: int :return: Deserialized value :rtype: six.string_types|int """ FLAGS = self.FLAGS if flags & FLAGS['compressed']: # pragma: no branch value = self.compression.decompress(value) if flags & FLAGS['binary']: return value if flags & FLAGS['integer']: return int(value) elif flags & FLAGS['long']: return long(value) elif flags & FLAGS['object']: loads = self.loads if loads is None: loads = self.json_loads return loads(value) if six.PY3: return value.decode('utf8') # In Python 2, mimic the behavior of the json library: return a str # unless the value contains unicode characters. try: value.decode('ascii') except UnicodeDecodeError: return value.decode('utf8') else: return value
def testGetLong(self): test_key = self.bkey() self.client.set(test_key, long(1)) value = self.client.get(test_key) self.assertEqual(long(1), value) self.assertTrue(isinstance(value, long))
def testGetLong(self): self.client.set('test_key', long(1)) value = self.client.get('test_key') self.assertEqual(long(1), value) self.assertTrue(isinstance(value, long))