def _make_tag(base_dt, val, mdtype, sde=False): ''' Makes a simple matlab tag, full or sde ''' base_dt = np.dtype(base_dt) bo = boc.to_numpy_code(base_dt.byteorder) byte_count = base_dt.itemsize if not sde: udt = bo + 'u4' padding = 8 - (byte_count % 8) all_dt = [('mdtype', udt), ('byte_count', udt), ('val', base_dt)] if padding: all_dt.append(('padding', 'u1', padding)) else: # is sde udt = bo + 'u2' padding = 4-byte_count if bo == '<': # little endian all_dt = [('mdtype', udt), ('byte_count', udt), ('val', base_dt)] else: # big endian all_dt = [('byte_count', udt), ('mdtype', udt), ('val', base_dt)] if padding: all_dt.append(('padding', 'u1', padding)) tag = np.zeros((1,), dtype=all_dt) tag['mdtype'] = mdtype tag['byte_count'] = byte_count tag['val'] = val return tag
def _make_tag(base_dt, val, mdtype, sde=False): ''' Makes a simple matlab tag, full or sde ''' base_dt = np.dtype(base_dt) bo = boc.to_numpy_code(base_dt.byteorder) byte_count = base_dt.itemsize if not sde: udt = bo + 'u4' padding = 8 - (byte_count % 8) all_dt = [('mdtype', udt), ('byte_count', udt), ('val', base_dt)] if padding: all_dt.append(('padding', 'u1', padding)) else: # is sde udt = bo + 'u2' padding = 4 - byte_count if bo == '<': # little endian all_dt = [('mdtype', udt), ('byte_count', udt), ('val', base_dt)] else: # big endian all_dt = [('byte_count', udt), ('mdtype', udt), ('val', base_dt)] if padding: all_dt.append(('padding', 'u1', padding)) tag = np.zeros((1, ), dtype=all_dt) tag['mdtype'] = mdtype tag['byte_count'] = byte_count tag['val'] = val return tag
def _make_tag(base_dt, val, mdtype, sde=False): """ Makes a simple matlab tag, full or sde """ base_dt = np.dtype(base_dt) bo = boc.to_numpy_code(base_dt.byteorder) byte_count = base_dt.itemsize if not sde: udt = bo + "u4" padding = 8 - (byte_count % 8) all_dt = [("mdtype", udt), ("byte_count", udt), ("val", base_dt)] if padding: all_dt.append(("padding", "u1", padding)) else: # is sde udt = bo + "u2" padding = 4 - byte_count if bo == "<": # little endian all_dt = [("mdtype", udt), ("byte_count", udt), ("val", base_dt)] else: # big endian all_dt = [("byte_count", udt), ("mdtype", udt), ("val", base_dt)] if padding: all_dt.append(("padding", "u1", padding)) tag = np.zeros((1,), dtype=all_dt) tag["mdtype"] = mdtype tag["byte_count"] = byte_count tag["val"] = val return tag
def test_to_numpy(): if sys.byteorder == 'little': assert_(sibc.to_numpy_code('native') == '<') assert_(sibc.to_numpy_code('swapped') == '>') else: assert_(sibc.to_numpy_code('native') == '>') assert_(sibc.to_numpy_code('swapped') == '<') assert_(sibc.to_numpy_code('native') == sibc.to_numpy_code('=')) assert_(sibc.to_numpy_code('big') == '>') for code in ('little', '<', 'l', 'L', 'le'): assert_(sibc.to_numpy_code(code) == '<') for code in ('big', '>', 'b', 'B', 'be'): assert_(sibc.to_numpy_code(code) == '>') assert_raises(ValueError, sibc.to_numpy_code, 'silly string')