NA value for OBI_STR and OBI_SEQ columns is now NULL
This commit is contained in:
@ -32,7 +32,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
|
|||||||
value = obi_column_get_obiqual_int_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, &value_length)
|
value = obi_column_get_obiqual_int_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, &value_length)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if value == NULL : # TODO
|
if value == OBIQual_int_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = []
|
result = []
|
||||||
@ -47,7 +47,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
|
|||||||
value = obi_column_get_obiqual_char_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
value = obi_column_get_obiqual_char_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if strcmp(value, OBIQual_char_NA) == 0 :
|
if value == OBIQual_char_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = bytes2str(value)
|
result = bytes2str(value)
|
||||||
@ -58,7 +58,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
|
|||||||
cdef uint8_t* value_b
|
cdef uint8_t* value_b
|
||||||
cdef int value_length
|
cdef int value_length
|
||||||
if value is None :
|
if value is None :
|
||||||
value_b = NULL # TODO
|
value_b = OBIQual_int_NA
|
||||||
value_length = 0
|
value_length = 0
|
||||||
else :
|
else :
|
||||||
value_length = len(value)
|
value_length = len(value)
|
||||||
@ -80,7 +80,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
|
|||||||
raise Exception("Problem setting a value in a column")
|
raise Exception("Problem setting a value in a column")
|
||||||
|
|
||||||
|
|
||||||
# TODO OR NOT?
|
# TODO
|
||||||
# cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
|
# cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -13,7 +13,6 @@ from ._obidms cimport OBIView
|
|||||||
from obitools3.utils cimport str2bytes, bytes2str
|
from obitools3.utils cimport str2bytes, bytes2str
|
||||||
|
|
||||||
from libc.stdlib cimport free
|
from libc.stdlib cimport free
|
||||||
from libc.string cimport strcmp
|
|
||||||
|
|
||||||
|
|
||||||
cdef class OBIDMS_column_seq(OBIDMS_column):
|
cdef class OBIDMS_column_seq(OBIDMS_column):
|
||||||
@ -24,7 +23,7 @@ cdef class OBIDMS_column_seq(OBIDMS_column):
|
|||||||
value = obi_column_get_obiseq_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
value = obi_column_get_obiseq_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if strcmp(value, OBISeq_NA) == 0 :
|
if value == OBISeq_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = bytes2str(value)
|
result = bytes2str(value)
|
||||||
@ -61,7 +60,7 @@ cdef class OBIDMS_column_multi_elts_seq(OBIDMS_column_multi_elts):
|
|||||||
value = obi_column_get_obiseq_with_elt_name_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
|
value = obi_column_get_obiseq_with_elt_name_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb, element_name)
|
raise IndexError(line_nb, element_name)
|
||||||
if strcmp(value, OBISeq_NA) == 0 :
|
if value == OBISeq_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = bytes2str(value)
|
result = bytes2str(value)
|
||||||
@ -80,7 +79,7 @@ cdef class OBIDMS_column_multi_elts_seq(OBIDMS_column_multi_elts):
|
|||||||
value = obi_column_get_obiseq_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
|
value = obi_column_get_obiseq_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if strcmp(value, OBISeq_NA) == 0 :
|
if value == OBISeq_NA :
|
||||||
value_in_result = None
|
value_in_result = None
|
||||||
else :
|
else :
|
||||||
value_in_result = bytes2str(value)
|
value_in_result = bytes2str(value)
|
||||||
|
@ -9,8 +9,6 @@ from .capi.obitypes cimport OBIStr_NA, const_char_p
|
|||||||
|
|
||||||
from obitools3.utils cimport str2bytes, bytes2str
|
from obitools3.utils cimport str2bytes, bytes2str
|
||||||
|
|
||||||
from libc.string cimport strcmp
|
|
||||||
|
|
||||||
|
|
||||||
cdef class OBIDMS_column_str(OBIDMS_column):
|
cdef class OBIDMS_column_str(OBIDMS_column):
|
||||||
|
|
||||||
@ -20,7 +18,7 @@ cdef class OBIDMS_column_str(OBIDMS_column):
|
|||||||
value = obi_column_get_obistr_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
value = obi_column_get_obistr_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if strcmp(value, OBIStr_NA) == 0 :
|
if value == OBIStr_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = bytes2str(value)
|
result = bytes2str(value)
|
||||||
@ -45,7 +43,7 @@ cdef class OBIDMS_column_multi_elts_str(OBIDMS_column_multi_elts):
|
|||||||
value = obi_column_get_obistr_with_elt_name_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
|
value = obi_column_get_obistr_with_elt_name_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb, element_name)
|
raise IndexError(line_nb, element_name)
|
||||||
if strcmp(value, OBIStr_NA) == 0 :
|
if value == OBIStr_NA :
|
||||||
result = None
|
result = None
|
||||||
else :
|
else :
|
||||||
result = bytes2str(value)
|
result = bytes2str(value)
|
||||||
@ -64,7 +62,7 @@ cdef class OBIDMS_column_multi_elts_str(OBIDMS_column_multi_elts):
|
|||||||
value = obi_column_get_obistr_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
|
value = obi_column_get_obistr_with_elt_idx_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
|
||||||
if obi_errno > 0 :
|
if obi_errno > 0 :
|
||||||
raise IndexError(line_nb)
|
raise IndexError(line_nb)
|
||||||
if strcmp(value, OBIStr_NA) == 0 :
|
if value == OBIStr_NA :
|
||||||
value_in_result = None
|
value_in_result = None
|
||||||
else :
|
else :
|
||||||
value_in_result = bytes2str(value)
|
value_in_result = bytes2str(value)
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#cython: language_level=3
|
#cython: language_level=3
|
||||||
|
|
||||||
|
|
||||||
from libc.stdint cimport int32_t, int64_t
|
from libc.stdint cimport int32_t, int64_t, uint8_t
|
||||||
|
|
||||||
from posix.types cimport time_t
|
from posix.types cimport time_t
|
||||||
|
|
||||||
|
|
||||||
@ -47,8 +48,8 @@ cdef extern from "obitypes.h" nogil:
|
|||||||
extern obibool_t OBIBool_NA
|
extern obibool_t OBIBool_NA
|
||||||
extern const_char_p OBISeq_NA
|
extern const_char_p OBISeq_NA
|
||||||
extern const_char_p OBIStr_NA
|
extern const_char_p OBIStr_NA
|
||||||
extern const_char_p OBIQual_int_NA
|
|
||||||
extern const_char_p OBIQual_char_NA
|
extern const_char_p OBIQual_char_NA
|
||||||
|
extern uint8_t* OBIQual_int_NA
|
||||||
|
|
||||||
const_char_p name_data_type(int data_type)
|
const_char_p name_data_type(int data_type)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user