Added the handling of errors with the functions to get a value in a
column
This commit is contained in:
@ -1,6 +1,9 @@
|
||||
cdef extern from *:
|
||||
ctypedef char* const_char_p "const char*"
|
||||
|
||||
cdef extern from "obierrno.h" nogil:
|
||||
extern int obi_errno
|
||||
|
||||
cdef extern from "obidms.h" nogil:
|
||||
struct OBIDMS_t:
|
||||
pass
|
||||
|
@ -6,8 +6,11 @@ from .capidmscolumn_bool cimport *
|
||||
cdef class OBIDMS_column_bool(OBIDMS_column) :
|
||||
|
||||
def get_item(self, line_nb, element_name):
|
||||
return obi_column_get_obibool_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
|
||||
value = obi_column_get_obibool_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
if obi_errno > 0 :
|
||||
raise IndexError(line_nb, element_name)
|
||||
return value
|
||||
|
||||
|
||||
cdef class OBIDMS_column_bool_read(OBIDMS_column_bool) :
|
||||
|
||||
|
@ -6,7 +6,10 @@ from .capidmscolumn_char cimport *
|
||||
cdef class OBIDMS_column_char(OBIDMS_column) :
|
||||
|
||||
def get_item(self, line_nb, element_name):
|
||||
return (obi_column_get_obichar_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))).decode(encoding='utf-8')[:1]
|
||||
value = (obi_column_get_obichar_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))).decode(encoding='utf-8')[:1]
|
||||
if obi_errno > 0 :
|
||||
raise IndexError(line_nb, element_name)
|
||||
return value
|
||||
|
||||
|
||||
cdef class OBIDMS_column_char_read(OBIDMS_column_char) :
|
||||
|
@ -6,7 +6,10 @@ from .capidmscolumn_float cimport *
|
||||
cdef class OBIDMS_column_float(OBIDMS_column) :
|
||||
|
||||
def get_item(self, line_nb, element_name):
|
||||
return obi_column_get_obifloat_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
value = obi_column_get_obifloat_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
if obi_errno > 0 :
|
||||
raise IndexError(line_nb, element_name)
|
||||
return value
|
||||
|
||||
|
||||
cdef class OBIDMS_column_float_read(OBIDMS_column_float) :
|
||||
|
@ -6,7 +6,10 @@ from .capidmscolumn_idx cimport *
|
||||
cdef class OBIDMS_column_idx(OBIDMS_column) :
|
||||
|
||||
def get_item(self, line_nb, element_name):
|
||||
return obi_column_get_obiidx_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
value = obi_column_get_obiidx_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
if obi_errno > 0 :
|
||||
raise IndexError(line_nb, element_name)
|
||||
return value
|
||||
|
||||
|
||||
cdef class OBIDMS_column_idx_read(OBIDMS_column_idx) :
|
||||
|
@ -6,8 +6,11 @@ from .capidmscolumn_int cimport *
|
||||
cdef class OBIDMS_column_int(OBIDMS_column) :
|
||||
|
||||
def get_item(self, line_nb, element_name):
|
||||
return obi_column_get_obiint_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
|
||||
value = obi_column_get_obiint_with_elt_name(self.pointer, line_nb, element_name.encode('utf-8'))
|
||||
if obi_errno > 0 :
|
||||
raise IndexError(line_nb, element_name)
|
||||
return value
|
||||
|
||||
|
||||
cdef class OBIDMS_column_int_read(OBIDMS_column_int) :
|
||||
|
||||
|
Reference in New Issue
Block a user