The elements names when a column contains several elements per line are
now formatted with '\0' as separator and handled in a more optimized way
This commit is contained in:
@ -97,8 +97,7 @@ def test_set_and_get(config, infos):
|
||||
return
|
||||
idx = random_int(config)
|
||||
value = infos['random_generator'][data_type](config)
|
||||
|
||||
if len(element_names) > 1 :
|
||||
if col.nb_elements_per_line > 1 :
|
||||
elt = random.choice(element_names)
|
||||
col[idx][elt] = value
|
||||
assert col[idx][elt] == value, "Set value != gotten value "+str(col[idx][elt])+" != "+str(value)
|
||||
@ -187,6 +186,7 @@ def create_random_column(config, infos) :
|
||||
elements_names = []
|
||||
for i in range(nb_elements_per_line) :
|
||||
elements_names.append(random_unique_element_name(config, infos))
|
||||
elements_names = random.choice([None, elements_names])
|
||||
name = random_unique_name(infos)
|
||||
infos['view'].add_column(name,
|
||||
alias=alias,
|
||||
@ -358,7 +358,9 @@ def run(config):
|
||||
config['test']['elt_name_max_len'] = int((COL_COMMENTS_MAX_LEN - config['test']['maxelts']) / config['test']['maxelts'])
|
||||
|
||||
print("Initializing the DMS and the first view...")
|
||||
|
||||
|
||||
shutil.rmtree(config['obi']['defaultdms']+'.obidms', ignore_errors=True)
|
||||
|
||||
ini_dms_and_first_view(config, infos)
|
||||
print_test(config, repr(infos['view']))
|
||||
|
||||
|
@ -7,7 +7,8 @@ from .capi.obidms cimport obi_dms, \
|
||||
|
||||
from .capi.obidmscolumn cimport obi_close_column, \
|
||||
OBIDMS_column_p, \
|
||||
OBIDMS_column_header_p
|
||||
OBIDMS_column_header_p, \
|
||||
obi_get_elements_names
|
||||
|
||||
from .capi.obiutils cimport obi_format_date
|
||||
|
||||
@ -75,7 +76,7 @@ from .capi.obiview cimport Obiview_p, \
|
||||
DEFINITION_COLUMN, \
|
||||
QUALITY_COLUMN
|
||||
|
||||
from libc.stdlib cimport malloc
|
||||
from libc.stdlib cimport malloc, free
|
||||
|
||||
|
||||
cdef class OBIDMS_column :
|
||||
@ -138,7 +139,12 @@ cdef class OBIDMS_column :
|
||||
# elements_names property getter
|
||||
@property
|
||||
def elements_names(self):
|
||||
return (bytes2str(((self._pointer)[0].header).elements_names)).split(';')
|
||||
cdef char* elts_names_b
|
||||
cdef str elts_names
|
||||
elts_names_b = obi_get_elements_names((self._pointer)[0])
|
||||
elts_names = bytes2str(elts_names_b)
|
||||
free(<char*>elts_names_b)
|
||||
return elts_names.split(';')
|
||||
|
||||
# nb_elements_per_line property getter
|
||||
@property
|
||||
@ -376,7 +382,7 @@ cdef class OBIView :
|
||||
elements_names_b = str2bytes("")
|
||||
else :
|
||||
elements_names_b = str2bytes(';'.join(elements_names))
|
||||
|
||||
|
||||
if type : # TODO make C function that does that
|
||||
if type == 'OBI_INT' :
|
||||
data_type = OBI_INT
|
||||
|
@ -47,31 +47,8 @@ cdef extern from "obidmscolumn.h" nogil:
|
||||
bint writable
|
||||
|
||||
ctypedef OBIDMS_column_t* OBIDMS_column_p
|
||||
|
||||
OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
const_char_p column_name,
|
||||
OBIType_t type,
|
||||
index_t nb_lines,
|
||||
index_t nb_elements_per_line,
|
||||
const_char_p elements_names,
|
||||
const_char_p indexer_name,
|
||||
const_char_p associated_colum_name,
|
||||
obiversion_t associated_colum_version,
|
||||
const_char_p comments)
|
||||
|
||||
OBIDMS_column_p obi_open_column(OBIDMS_p dms,
|
||||
const_char_p column_name,
|
||||
obiversion_t version_number)
|
||||
|
||||
int obi_close_column(OBIDMS_column_p column)
|
||||
|
||||
OBIDMS_column_p obi_clone_column(OBIDMS_p dms,
|
||||
OBIDMS_column_p line_selection,
|
||||
const_char_p column_name,
|
||||
obiversion_t version_number,
|
||||
bint clone_data)
|
||||
|
||||
int obi_close_column(OBIDMS_column_p column)
|
||||
|
||||
obiversion_t obi_column_get_latest_version_from_name(OBIDMS_p dms,
|
||||
const_char_p column_name)
|
||||
@ -81,9 +58,9 @@ cdef extern from "obidmscolumn.h" nogil:
|
||||
obiversion_t version_number)
|
||||
|
||||
int obi_close_header(OBIDMS_column_header_p header)
|
||||
|
||||
int obi_select(OBIDMS_column_p line_selection_column, index_t line_to_grep)
|
||||
|
||||
|
||||
char* obi_get_elements_names(OBIDMS_column_p column)
|
||||
|
||||
|
||||
cdef extern from "obidmscolumn_int.h" nogil:
|
||||
|
||||
|
Reference in New Issue
Block a user