Cython API: Fixed a bug when setting NA values in Column_multi_elts, and
added some properties
This commit is contained in:
@ -86,7 +86,7 @@ cdef class Column(OBIWrapper) :
|
|||||||
elements_names_p = elements_names_b
|
elements_names_p = elements_names_b
|
||||||
else:
|
else:
|
||||||
elements_names_p = NULL
|
elements_names_p = NULL
|
||||||
|
|
||||||
if (obi_view_add_column(view = view.pointer(),
|
if (obi_view_add_column(view = view.pointer(),
|
||||||
column_name = column_name_b,
|
column_name = column_name_b,
|
||||||
version_number = -1,
|
version_number = -1,
|
||||||
@ -129,9 +129,9 @@ cdef class Column(OBIWrapper) :
|
|||||||
))
|
))
|
||||||
|
|
||||||
column_p = column_pp[0]
|
column_p = column_pp[0]
|
||||||
column_type = column_p.header.returned_data_type
|
column_type = column_p.header.returned_data_type
|
||||||
column_class = Column.get_column_class(column_type, (column_p.header.nb_elements_per_line > 1))
|
column_class = Column.get_column_class(column_type, (column_p.header.nb_elements_per_line > 1))
|
||||||
column = OBIWrapper.new(column_class, column_pp)
|
column = OBIWrapper.new_wrapper(column_class, column_pp)
|
||||||
|
|
||||||
column._view = view
|
column._view = view
|
||||||
column._alias = column_name_b
|
column._alias = column_name_b
|
||||||
@ -258,8 +258,13 @@ cdef class Column(OBIWrapper) :
|
|||||||
# data_type property getter
|
# data_type property getter
|
||||||
@property
|
@property
|
||||||
def data_type(self):
|
def data_type(self):
|
||||||
return name_data_type(self.pointer().header.returned_data_type)
|
return name_data_type(self.data_type_int)
|
||||||
|
|
||||||
|
# data_type integer code property getter
|
||||||
|
@property
|
||||||
|
def data_type_int(self):
|
||||||
|
return self.pointer().header.returned_data_type
|
||||||
|
|
||||||
# original_name property getter
|
# original_name property getter
|
||||||
@property
|
@property
|
||||||
def original_name(self):
|
def original_name(self):
|
||||||
@ -295,9 +300,13 @@ cdef class Column_multi_elts(Column) :
|
|||||||
return Column_line(self, line_nb)
|
return Column_line(self, line_nb)
|
||||||
|
|
||||||
cpdef set_line(self, index_t line_nb, object values):
|
cpdef set_line(self, index_t line_nb, object values):
|
||||||
for element_name in values :
|
if values is None :
|
||||||
self.set_item(line_nb, element_name, values[element_name])
|
for element_name in self.elements_names :
|
||||||
|
self.set_item(line_nb, element_name, None)
|
||||||
|
else :
|
||||||
|
for element_name in values :
|
||||||
|
self.set_item(line_nb, element_name, values[element_name])
|
||||||
|
|
||||||
|
|
||||||
######################################################################################################
|
######################################################################################################
|
||||||
|
|
||||||
@ -331,6 +340,17 @@ cdef class Column_line :
|
|||||||
elements_names = self._column.elements_names
|
elements_names = self._column.elements_names
|
||||||
for element_name in elements_names :
|
for element_name in elements_names :
|
||||||
yield element_name
|
yield element_name
|
||||||
|
|
||||||
|
|
||||||
|
# column property getter
|
||||||
|
@property
|
||||||
|
def column(self):
|
||||||
|
return self._column
|
||||||
|
|
||||||
|
# index property getter
|
||||||
|
@property
|
||||||
|
def index(self):
|
||||||
|
return self._index
|
||||||
|
|
||||||
|
|
||||||
cpdef update(self, data): # TODO ?????
|
cpdef update(self, data): # TODO ?????
|
||||||
|
Reference in New Issue
Block a user