def _retrieve(self, row): """ Return the DataContainer from a table row instance. """ cuba = self._position_to_cuba mask = row['mask'] data = row['data'] return DataContainer({ cuba[index]: convert_from_file_type(data[index], cuba[index]) for index, valid in enumerate(mask) if valid})
def test_convert_all(self): for cuba in CUBA: # given original_value = dummy_cuba_value(cuba) # when file_value = convert_to_file_type(original_value, cuba) # then assert_array_equal(original_value, convert_from_file_type(file_value, cuba))
def _create_rec_array(self, value): """ Create a rec_array row from a DataContainer """ positions = self._cuba_to_position rec_array = numpy.zeros(shape=1, dtype=self._table._v_dtype)[0] data = rec_array['data'] mask = rec_array['mask'] for key in value: if key in positions: position = positions[key] # special case array valued cuba keys # see numpy issue https://github.com/numpy/numpy/issues/3126 if numpy.isscalar(data[position]): data[position] = convert_to_file_type(value[key], key) else: data[position][:] = convert_from_file_type(value[key], key) mask[position] = True return rec_array