예제 #1
0
 def pandas_file_contents(self):
     r"""str: Contents of mock Pandas file."""
     s = serialize.get_serializer(stype=6,
                                  delimiter=self.delimiter,
                                  write_header=True)
     out = s.serialize(self.pandas_frame)
     return out
예제 #2
0
def test_guess_serializer():
    r"""Test guess_serializer."""
    nele = 5
    names = ["name", "number", "value", "complex"]
    field_names = [backwards.unicode2bytes(n) for n in names]
    dtypes = ['S5', 'i8', 'f8', 'c16']
    dtype = np.dtype([(n, f) for n, f in zip(names, dtypes)])
    arr_mix = np.zeros(nele, dtype)
    arr_mix['name'][0] = 'hello'
    fmt_arr = serialize._default_delimiter.join(
        serialize.nptype2cformat(arr_mix.dtype, asbytes=True))
    fmt_arr += serialize._default_newline
    if platform._is_win:  # pragma: windows
        x = arr_mix[0].tolist()
        for i in x:
            print(type(i))
        if backwards.PY2:  # pragma: Python 2
            # tolist maps to long on python 2, but int on python 3?!
            fmt = backwards.unicode2bytes('%s\t%l64d\t%g\t%g%+gj\n')
        else:  # pragma: Python 3
            fmt = backwards.unicode2bytes('%s\t%d\t%g\t%g%+gj\n')
    else:
        fmt = backwards.unicode2bytes('%s\t%ld\t%g\t%g%+gj\n')
    test_list = [(arr_mix, dict(field_names=field_names, format_str=fmt_arr,
                                stype=2, as_array=1)),
                 (arr_mix[0].tolist(), dict(format_str=fmt, stype=1)),
                 ('hello', dict(stype=0))]
    for obj, sinfo_ans in test_list:
        sinfo_res = serialize.guess_serializer(obj)
        s = serialize.get_serializer(**sinfo_res)
        nt.assert_equal(s.serializer_info, sinfo_ans)
 def update_serializer(self, msg):
     r"""Update the serializer for the output comm based on input."""
     sinfo = self.ocomm.serializer.serializer_info
     sinfo['stype'] = 3
     sinfo.setdefault('format_str', self.icomm.serializer.format_str)
     sinfo.setdefault('field_names', self.icomm.serializer.field_names)
     sinfo.setdefault('field_units', self.icomm.serializer.field_units)
     self.ocomm.serializer = serialize.get_serializer(**sinfo)
예제 #4
0
 def test_serialize_sinfo(self):
     r"""Test serialize/deserialize with serializer info."""
     hout = self._header_info
     hout.update(**self.instance.serializer_info)
     temp_seri = serialize.get_serializer(
         stype=self.instance.serializer_info['stype'])
     for iobj in self._objects:
         msg = self.instance.serialize(iobj, header_kwargs=self._header_info,
                                       add_serializer_info=True)
         iout, ihead = self.instance.deserialize(msg)
         self.assert_result_equal(iout, iobj)
         nt.assert_equal(ihead, hout)
         # Use info to reconstruct serializer
         iout, ihead = temp_seri.deserialize(msg)
         self.assert_result_equal(iout, iobj)
         nt.assert_equal(ihead, hout)
         new_seri = serialize.get_serializer(**ihead)
         iout, ihead = new_seri.deserialize(msg)
         self.assert_result_equal(iout, iobj)
         nt.assert_equal(ihead, hout)
예제 #5
0
 def update_serializer(self, **kwargs):
     r"""Update serializer with provided information."""
     key_list = ['format_str', 'as_array', 'field_names', 'field_units']
     for k in key_list:
         setattr(self, k, kwargs.get(k, getattr(self, k)))
     if 'stype' in kwargs:
         stype = kwargs['stype']
         if (self.serializer_type != stype) and (stype != 0):
             sinfo = self.serializer_info
             sinfo['stype'] = stype
             self._alias = serialize.get_serializer(**sinfo)
             assert (self.serializer_type == stype)
예제 #6
0
def test_get_serializer():
    r"""Test get_serializer."""
    max_code = 9
    for x in range(max_code + 1):
        serialize.get_serializer(stype=x, format_str='%s\n')
    nt.assert_raises(RuntimeError, serialize.get_serializer, stype=max_code + 1)
예제 #7
0
 def update_serializer(self, msg):
     r"""Update the serializer for the output comm based on input."""
     sinfo = self.icomm.serializer.serializer_info
     sinfo['stype'] = 0
     self.ocomm.serializer = serialize.get_serializer(**sinfo)
예제 #8
0
 def obj_file_contents(self):
     r"""The contents of a file containing the obj data."""
     serializer = serialize.get_serializer(stype=9)
     out = serializer.serialize(self.obj_dict)
     return out
예제 #9
0
 def ply_file_contents(self):
     r"""The contents of a file containing the ply data."""
     serializer = serialize.get_serializer(stype=8)
     out = serializer.serialize(self.ply_dict)
     return out