refactoring...
This commit is contained in:
@ -1,10 +1,10 @@
|
|||||||
#cython: language_level=3
|
#cython: language_level=3
|
||||||
|
|
||||||
from .capi.obitypes cimport index_t, \
|
from ..capi.obitypes cimport index_t, \
|
||||||
obitype_t
|
obitype_t
|
||||||
from .capi.obidmscolumn cimport OBIDMS_column_p
|
from ..capi.obidmscolumn cimport OBIDMS_column_p
|
||||||
|
|
||||||
from .view cimport View
|
from ..view cimport View
|
||||||
|
|
||||||
cdef class Column:
|
cdef class Column:
|
||||||
|
|
||||||
|
@ -45,6 +45,51 @@ cdef class Column :
|
|||||||
self._pointer = NULL
|
self._pointer = NULL
|
||||||
self._view = view
|
self._view = view
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def new(OBIView view,
|
||||||
|
object column_name,
|
||||||
|
index_t nb_elements_per_line=1,
|
||||||
|
object elements_names=None,
|
||||||
|
object comments=b""):
|
||||||
|
|
||||||
|
cdef bytes column_name_b = tobytes(column_name)
|
||||||
|
cdef bytes comments_b
|
||||||
|
cdef bytes elements_names_b
|
||||||
|
cdef char* elements_names_p
|
||||||
|
cdef OBIDMS_column new_column
|
||||||
|
|
||||||
|
if comments is not None:
|
||||||
|
comments_b = tobytes(comments)
|
||||||
|
else:
|
||||||
|
comments_b = b''
|
||||||
|
|
||||||
|
if elements_names is not None:
|
||||||
|
elements_names_b = b''.join([tobytes(x) for x in elements_names])
|
||||||
|
elements_names_p = elements_names_b
|
||||||
|
else:
|
||||||
|
elements_names_p = NULL
|
||||||
|
|
||||||
|
if (obi_view_add_column(view = view._pointer,
|
||||||
|
column_name = column_name_b,
|
||||||
|
version_number = -1,
|
||||||
|
alias = NULL,
|
||||||
|
data_type = self.pointer.header.returned_data_type,
|
||||||
|
nb_lines = len(view),
|
||||||
|
nb_elements_per_line = nb_elements_per_line,
|
||||||
|
elements_names = elements_names_p,
|
||||||
|
indexer_name = NULL,
|
||||||
|
associated_column_name = NULL,
|
||||||
|
associated_column_version = -1,
|
||||||
|
comments = comments_b,
|
||||||
|
create = True)<0):
|
||||||
|
raise RuntimeError("Cannot create column %s in view %s" % (bytes2str(column_name),
|
||||||
|
bytes2str(view.name)))
|
||||||
|
|
||||||
|
view.__init_columns__()
|
||||||
|
new_column = self._columns[column_name]
|
||||||
|
|
||||||
|
return new_column
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
'''
|
'''
|
||||||
implements the len() function for the Column class
|
implements the len() function for the Column class
|
||||||
|
Reference in New Issue
Block a user