def to_data(self, obj, partitioning_strategy=None):
        """Serialize the input object into byte array representation

        Args:
            obj: Input object
            partitioning_strategy (function): Function in the form of ``lambda key: partitioning_key``.

        Returns:
            hazelcast.serialization.data.Data: Data object
        """
        if obj is None:
            return None

        if isinstance(obj, Data):
            return obj

        out = _ObjectDataOutput(self._output_buffer_size, self,
                                self._is_big_endian)
        try:
            serializer = self._registry.serializer_for(obj)
            partitioning_hash = self._calculate_partitioning_hash(
                obj, partitioning_strategy)

            out.write_int_big_endian(partitioning_hash)
            out.write_int_big_endian(serializer.get_type_id())
            serializer.write(out, obj)
            return Data(out.to_byte_array())
        except:
            handle_exception(sys.exc_info()[1], sys.exc_info()[2])
 def test_data(self):
     self.mark_initial_frame_as_non_final()
     data = Data("123456789".encode("utf-8"))
     DataCodec.encode(self.buf, data)
     DataCodec.encode_nullable(self.buf, data)
     DataCodec.encode_nullable(self.buf, None, True)
     message = self.write_and_decode()
     message.next_frame()  # initial frame
     self.assertEqual(data, DataCodec.decode(message))
     self.assertEqual(data, DataCodec.decode_nullable(message))
     self.assertIsNone(DataCodec.decode_nullable(message))
    def _big_int_test(self, big_int):
        script = """from java.math import BigInteger
result=instance_0.getSerializationService().toBytes(BigInteger("{}",10))""".format(
            big_int)
        response = self.rc.executeOnController(self.cluster.id, script,
                                               Lang.PYTHON)
        data = Data(response.result)
        val = self.service.to_object(data)
        data_local = self.service.to_data(big_int)

        self.assertEqual(binascii.hexlify(data._buffer),
                         binascii.hexlify(data_local._buffer))
        self.assertEqual(big_int, val)
    def test_datetime(self):
        year = 2000
        month = 11
        day = 15
        hour = 23
        minute = 59
        second = 49
        script = """
from java.util import Date, Calendar
cal = Calendar.getInstance()
cal.set({}, ({}-1), {}, {}, {}, {})
result=instance_0.getSerializationService().toBytes(cal.getTime())
""".format(year, month, day, hour, minute, second)
        response = self.rc.executeOnController(self.cluster.id, script,
                                               Lang.PYTHON)
        data = Data(response.result)
        val = self.service.to_object(data)
        self.assertEqual(year, val.year)
        self.assertEqual(month, val.month)
        self.assertEqual(day, val.day)
        self.assertEqual(hour, val.hour)
        self.assertEqual(minute, val.minute)
        self.assertEqual(second, val.second)
 def test_serialize_data(self):
     data = Data(bytearray(0))
     obj = self.service.to_data(data)
     self.assertTrue(isinstance(obj, Data))
 def test_null_data(self):
     data = Data(bytearray(0))
     obj = self.service.to_object(data)
     self.assertIsNone(obj)
Beispiel #7
0
 def read_data(self):
     buff = self.read_byte_array()
     return Data(buff) if buff is not None else None
def _read_data_from_inp(inp):
    buff = inp.read_byte_array()
    return Data(buff) if buff is not None else None
    list(
        map(_to_unicode, [
            "Pijamalı hasta, yağız şoföre çabucak güvendi.",
            "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム",
            "The quick brown fox jumps over the lazy dog"
        ])),
    "Date":
    datetime.datetime.fromtimestamp(633830400),
    "BigInteger":
    1314432323232411,
    "Class":
    _to_unicode("java.math.BigDecimal"),
}

_data = Data(
    bytearray([
        49, 49, 49, 51, 49, 51, 49, 50, 51, 49, 51, 49, 51, 49, 51, 49, 51, 49
    ]))

_inner_portable = AnInnerPortable(REFERENCE_OBJECTS["Integer"],
                                  REFERENCE_OBJECTS["Float"])

_custom_serializable = CustomStreamSerializable(REFERENCE_OBJECTS["Integer"],
                                                REFERENCE_OBJECTS["Float"])

_custom_byte_array_serializable = CustomByteArraySerializable(
    REFERENCE_OBJECTS["Integer"], REFERENCE_OBJECTS["Float"])

_identified = AnIdentifiedDataSerializable(
    REFERENCE_OBJECTS["Boolean"], REFERENCE_OBJECTS["Byte"],
    REFERENCE_OBJECTS["Character"], REFERENCE_OBJECTS["Double"],
    REFERENCE_OBJECTS["Short"], REFERENCE_OBJECTS["Float"],
Beispiel #10
0
def _read_data_from(inp):
    array = inp.read_byte_array()
    if array is None:
        return None
    return Data(array)
 def decode(msg):
     return Data(msg.next_frame().buf)
 def test_utf8_decode(self):
     data_byte = to_data_byte(TEST_DATA_ALL)
     data = Data(data_byte)
     actual_ascii = self.service.to_object(data)
     self.assertEqual(TEST_DATA_ALL, actual_ascii)
 def test_ascii_decode(self):
     data_byte = to_data_byte(TEST_DATA_ASCII)
     data = Data(buff=data_byte)
     actual_ascii = self.service.to_object(data)
     self.assertEqual(TEST_DATA_ASCII, actual_ascii)
 def test_float(self):
     buff = bytearray(binascii.unhexlify("00000000fffffff700000000"))
     data = Data(buff)
     obj = self.service.to_object(data)
     self.assertEqual(0.0, obj)
 def test_char_type_serializer(self):
     buff = bytearray(binascii.unhexlify("00000000fffffffb00e7"))
     data = Data(buff)
     obj = self.service.to_object(data)
     self.assertEqual(unichr(0x00e7), obj)
 def test_none_serializer(self):
     none = None
     data_n = self.service.to_data(none)
     self.assertIsNone(data_n)
     self.assertIsNone(self.service.to_object(Data()))