Renamed private attributes as _* and removed some deprecated code

This commit is contained in:
Celine Mercier
2016-09-28 16:56:44 +02:00
parent 1a7b42018e
commit 8c402101e4
12 changed files with 154 additions and 156 deletions

View File

@ -9,10 +9,9 @@ from ._obitaxo cimport OBI_Taxonomy
cdef class OBIDMS_column:
cdef str column_alias # associated property: alias
cdef OBIDMS_column_p* pointer
cdef OBIDMS dms
cdef OBIView view
cdef str _alias # associated property: alias
cdef OBIDMS_column_p* _pointer
cdef OBIView _view
cpdef close(self)
@ -27,15 +26,14 @@ cdef class OBIDMS_column_multi_elts(OBIDMS_column):
cdef class OBIDMS_column_line:
cdef OBIDMS_column column
cdef index_t index
cdef OBIDMS_column _column
cdef index_t _index
cdef class OBIView:
cdef Obiview_p pointer
cdef OBIDMS dms
cdef dict columns
cdef Obiview_p _pointer
cdef dict _columns
cpdef delete_column(self, str column_name)
cpdef add_column(self,
@ -71,14 +69,13 @@ cdef class OBIView_NUC_SEQS(OBIView):
cdef class OBIView_line :
cdef index_t index
cdef OBIView view
cdef index_t _index
cdef OBIView _view
cdef class OBIDMS:
cdef OBIDMS_p pointer
cdef str dms_name
cdef OBIDMS_p _pointer
cpdef close(self)
cpdef OBI_Taxonomy open_taxonomy(self, str taxo_name)

View File

@ -89,14 +89,13 @@ cdef class OBIDMS_column :
cdef OBIDMS_column_p column_p
cdef OBIDMS_column_p* column_pp
column_pp = obi_view_get_pointer_on_column_in_view(view.pointer, str2bytes(column_alias))
column_pp = obi_view_get_pointer_on_column_in_view(view._pointer, str2bytes(column_alias))
column_p = column_pp[0] # TODO ugly cython dereferencing but can't find better
# Fill structure
self.column_alias = column_alias
self.pointer = column_pp
self.dms = view.dms
self.view = view
self._alias = column_alias
self._pointer = column_pp
self._view = view
def __setitem__(self, index_t line_nb, object value):
self.set_line(line_nb, value)
@ -108,7 +107,7 @@ cdef class OBIDMS_column :
return self.lines_used
def __sizeof__(self):
return ((self.pointer)[0].header.header_size + (self.pointer)[0].header.data_size)
return ((self._pointer)[0].header.header_size + (self._pointer)[0].header.data_size)
def __iter__(self):
# Declarations
@ -125,59 +124,59 @@ cdef class OBIDMS_column :
return to_print
def __repr__(self) :
return (self.column_alias + ", original name: " + self.original_name + ", version " + str(self.version) + ", data type: " + self.data_type)
return (self._alias + ", original name: " + self.original_name + ", version " + str(self.version) + ", data type: " + self.data_type)
cpdef close(self):
if obi_close_column((self.pointer)[0]) < 0 :
if obi_close_column((self._pointer)[0]) < 0 :
raise Exception("Problem closing a column")
# Column alias property getter and setter
@property
def alias(self):
return self.column_alias
return self._alias
@alias.setter
def alias(self, new_alias):
self.view.change_column_alias(self.column_alias, new_alias)
self._view.change_column_alias(self._alias, new_alias)
# elements_names property getter
@property
def elements_names(self):
return (bytes2str(((self.pointer)[0].header).elements_names)).split(';')
return (bytes2str(((self._pointer)[0].header).elements_names)).split(';')
# nb_elements_per_line property getter
@property
def nb_elements_per_line(self):
return ((self.pointer)[0].header).nb_elements_per_line
return ((self._pointer)[0].header).nb_elements_per_line
# data_type property getter
@property
def data_type(self):
return bytes2str(name_data_type(((self.pointer)[0].header).returned_data_type))
return bytes2str(name_data_type(((self._pointer)[0].header).returned_data_type))
# original_name property getter
@property
def original_name(self):
return bytes2str(((self.pointer)[0].header).name)
return bytes2str(((self._pointer)[0].header).name)
# version property getter
@property
def version(self):
return ((self.pointer)[0].header).version
return ((self._pointer)[0].header).version
# lines_used property getter
@property
def lines_used(self):
return (self.pointer)[0].header.lines_used
return (self._pointer)[0].header.lines_used
# comments property getter
@property
def comments(self):
return bytes2str((self.pointer)[0].header.comments)
return bytes2str((self._pointer)[0].header.comments)
# creation_date property getter
@property
def creation_date(self):
return bytes2str(obi_format_date((self.pointer)[0].header.creation_date))
return bytes2str(obi_format_date((self._pointer)[0].header.creation_date))
@staticmethod
cdef object get_subclass_type(OBIDMS_column_p column_p) :
@ -253,20 +252,20 @@ cdef class OBIDMS_column_multi_elts(OBIDMS_column) :
cdef class OBIDMS_column_line :
def __init__(self, OBIDMS_column column, index_t line_nb) :
self.index = line_nb
self.column = column
self._index = line_nb
self._column = column
def __getitem__(self, str element_name) :
return self.column.get_item(self.index, element_name)
return self._column.get_item(self._index, element_name)
def __setitem__(self, str element_name, object value):
self.column.set_item(self.index, element_name, value)
self._column.set_item(self._index, element_name, value)
def __contains__(self, str element_name):
return (element_name in self.column.elements_names)
return (element_name in self._column.elements_names)
def __repr__(self) :
return str(self.column.get_line(self.index))
return str(self._column.get_line(self._index))
######################################################################################################
@ -283,9 +282,7 @@ cdef class OBIView :
cdef str col_alias
cdef OBIDMS_column_p column_p
cdef object subclass
self.dms = dms
# Create the C array for the line selection if needed
if line_selection is not None :
line_selection_p = <index_t*> malloc((len(line_selection) + 1) * sizeof(index_t))
@ -299,43 +296,43 @@ cdef class OBIView :
if new :
if view_to_clone is not None :
if type(view_to_clone) == str :
view = obi_new_view_cloned_from_name(dms.pointer, str2bytes(view_name), str2bytes(view_to_clone), line_selection_p, str2bytes(comments))
view = obi_new_view_cloned_from_name(dms._pointer, str2bytes(view_name), str2bytes(view_to_clone), line_selection_p, str2bytes(comments))
else :
view = obi_new_view(dms.pointer, str2bytes(view_name), (<OBIView> view_to_clone).pointer, line_selection_p, str2bytes(comments))
view = obi_new_view(dms._pointer, str2bytes(view_name), (<OBIView> view_to_clone)._pointer, line_selection_p, str2bytes(comments))
else :
view = obi_new_view(dms.pointer, str2bytes(view_name), NULL, line_selection_p, str2bytes(comments))
view = obi_new_view(dms._pointer, str2bytes(view_name), NULL, line_selection_p, str2bytes(comments))
# Else, open the existing view
else :
view = obi_open_view(dms.pointer, str2bytes(view_name))
view = obi_open_view(dms._pointer, str2bytes(view_name))
if view == NULL :
raise Exception("Error creating/opening a view")
self.pointer = view
self._pointer = view
# Go through columns to build dictionaries of corresponding python instances # TODO make function?
self.columns = {}
self._columns = {}
for i in range(view.infos.column_count) :
col_alias = bytes2str(view.infos.column_references[i].alias)
column_p = <OBIDMS_column_p> (view.columns)[i]
subclass = OBIDMS_column.get_subclass_type(column_p)
self.columns[col_alias] = subclass(self, col_alias)
col_alias = bytes2str(view.infos.column_references[i].alias)
column_p = <OBIDMS_column_p> (view.columns)[i]
subclass = OBIDMS_column.get_subclass_type(column_p)
self._columns[col_alias] = subclass(self, col_alias)
def __repr__(self) :
cdef str s
s = str(self.name) + "\n" + str(self.comments) + "\n" + str(self.line_count) + " lines\n"
for column_name in self.columns :
s = s + repr(self.columns[column_name]) + '\n'
for column_name in self._columns :
s = s + repr(self._columns[column_name]) + '\n'
return s
cpdef delete_column(self, str column_name) :
cdef str column_n
if obi_view_delete_column(self.pointer, str2bytes(column_name)) < 0 :
if obi_view_delete_column(self._pointer, str2bytes(column_name)) < 0 :
raise Exception("Problem deleting a column from a view")
# Update the dictionary of column objects:
(self.columns).pop(column_name)
(self._columns).pop(column_name)
self.update_column_pointers()
@ -389,7 +386,7 @@ cdef class OBIView :
else :
raise Exception("Invalid provided data type")
if (obi_view_add_column(self.pointer, column_name_b, version_number, alias_b,
if (obi_view_add_column(self._pointer, column_name_b, version_number, alias_b,
data_type, nb_lines, nb_elements_per_line,
elements_names_b, str2bytes(indexer_name),
str2bytes(associated_column_name), associated_column_version,
@ -397,34 +394,34 @@ cdef class OBIView :
raise Exception("Problem adding a column in a view")
# Get the column pointer
column_p = obi_view_get_column(self.pointer, alias_b)
column_p = obi_view_get_column(self._pointer, alias_b)
# Open and store the subclass
subclass = OBIDMS_column.get_subclass_type(column_p)
(self.columns)[alias] = subclass(self, alias)
(self._columns)[alias] = subclass(self, alias)
cpdef change_column_alias(self, str current_alias, str new_alias):
cdef OBIDMS_column column
if (obi_view_create_column_alias(self.pointer, str2bytes(current_alias), str2bytes(new_alias)) < 0) :
if (obi_view_create_column_alias(self._pointer, str2bytes(current_alias), str2bytes(new_alias)) < 0) :
raise Exception("Problem changing a column alias")
# Update the dictionaries of column objects
self.columns[new_alias] = self.columns[current_alias]
column = self.columns[new_alias]
column.column_alias = new_alias
(self.columns).pop(current_alias)
self._columns[new_alias] = self._columns[current_alias]
column = self._columns[new_alias]
column._alias = new_alias
(self._columns).pop(current_alias)
cpdef update_column_pointers(self):
cdef str column_n
cdef OBIDMS_column column
for column_n in self.columns :
column = self.columns[column_n]
column.pointer = <OBIDMS_column_p*> obi_view_get_pointer_on_column_in_view(self.pointer, str2bytes(column_n))
for column_n in self._columns :
column = self._columns[column_n]
column._pointer = <OBIDMS_column_p*> obi_view_get_pointer_on_column_in_view(self._pointer, str2bytes(column_n))
cpdef save_and_close(self) :
if (obi_save_and_close_view(self.pointer) < 0) :
if (obi_save_and_close_view(self._pointer) < 0) :
raise Exception("Problem closing a view")
@ -443,13 +440,13 @@ cdef class OBIView :
def __getitem__(self, object item) :
if type(item) == str :
return (self.columns)[item]
return (self._columns)[item]
elif type(item) == int :
return OBIView_line(self, item)
def __contains__(self, str column_name):
return (column_name in self.columns)
return (column_name in self._columns)
def __len__(self):
@ -468,22 +465,22 @@ cdef class OBIView :
# line_count property getter
@property
def line_count(self):
return self.pointer.infos.line_count
return self._pointer.infos.line_count
# name property getter
@property
def name(self):
return bytes2str(self.pointer.infos.name)
return bytes2str(self._pointer.infos.name)
# columns property getter
@property
def columns(self):
return self.columns
return self._columns
# comments property getter
@property
def comments(self):
return bytes2str(self.pointer.infos.comments)
return bytes2str(self._pointer.infos.comments)
# TODO setter that concatenates new comments?
#############################################
@ -499,8 +496,6 @@ cdef class OBIView_NUC_SEQS(OBIView):
cdef OBIDMS_column_p column_p
cdef object subclass
self.dms = dms
if line_selection is not None :
line_selection_p = <index_t*> malloc((len(line_selection) + 1) * sizeof(index_t))
for i in range(len(line_selection)) :
@ -512,33 +507,33 @@ cdef class OBIView_NUC_SEQS(OBIView):
if new :
if view_to_clone is not None :
if type(view_to_clone) == str :
view = obi_new_view_nuc_seqs_cloned_from_name(dms.pointer, str2bytes(view_name), str2bytes(view_to_clone), line_selection_p, str2bytes(comments), quality_column)
view = obi_new_view_nuc_seqs_cloned_from_name(dms._pointer, str2bytes(view_name), str2bytes(view_to_clone), line_selection_p, str2bytes(comments), quality_column)
else :
view = obi_new_view_nuc_seqs(dms.pointer, str2bytes(view_name), (<OBIView> view_to_clone).pointer, line_selection_p, str2bytes(comments), quality_column)
view = obi_new_view_nuc_seqs(dms._pointer, str2bytes(view_name), (<OBIView> view_to_clone)._pointer, line_selection_p, str2bytes(comments), quality_column)
elif view_to_clone is None :
view = obi_new_view_nuc_seqs(dms.pointer, str2bytes(view_name), NULL, line_selection_p, str2bytes(comments), quality_column)
view = obi_new_view_nuc_seqs(dms._pointer, str2bytes(view_name), NULL, line_selection_p, str2bytes(comments), quality_column)
elif not new :
if view_name is not None :
view = obi_open_view(dms.pointer, str2bytes(view_name))
view = obi_open_view(dms._pointer, str2bytes(view_name))
elif view_name is None :
view = obi_open_view(dms.pointer, NULL)
view = obi_open_view(dms._pointer, NULL)
if view == NULL :
raise Exception("Error creating/opening view")
self.pointer = view
self._pointer = view
# Go through columns to build dictionaries of corresponding python instances # TODO make function?
self.columns = {}
self._columns = {}
for i in range(view.infos.column_count) :
col_alias = bytes2str(view.infos.column_references[i].alias)
column_p = <OBIDMS_column_p> (view.columns)[i]
subclass = OBIDMS_column.get_subclass_type(column_p)
self.columns[col_alias] = subclass(self, col_alias)
col_alias = bytes2str(view.infos.column_references[i].alias)
column_p = <OBIDMS_column_p> (view.columns)[i]
subclass = OBIDMS_column.get_subclass_type(column_p)
self._columns[col_alias] = subclass(self, col_alias)
def __getitem__(self, object item) :
if type(item) == str :
return (self.columns)[item]
return (self._columns)[item]
elif type(item) == int :
return OBI_Nuc_Seq_Stored(self, item)
@ -582,24 +577,24 @@ cdef class OBIView_NUC_SEQS(OBIView):
score_col_name = "score"
iview1= self
iview1_p = iview1.pointer
iview1_p = iview1._pointer
icol1 = iview1[bytes2str(NUC_SEQUENCE_COLUMN)]
icol1_pp = icol1.pointer
icol1_pp = icol1._pointer
icol1_p = icol1_pp[0]
oview.add_column(id1_col_name, type='OBI_STR', create=True)
oview.add_column(id2_col_name, type='OBI_STR', create=True)
oview.add_column(score_col_name, type='OBI_FLOAT', create=True)
oview_p = oview.pointer
oview_p = oview._pointer
ocol = oview[score_col_name]
ocol_pp = ocol.pointer
ocol_pp = ocol._pointer
ocol_p = ocol_pp[0]
id1_col = oview[id1_col_name]
id2_col = oview[id2_col_name]
id1_col_pp = id1_col.pointer
id2_col_pp = id2_col.pointer
id1_col_pp = id1_col._pointer
id2_col_pp = id2_col._pointer
id1_col_p = id1_col_pp[0]
id2_col_p = id2_col_pp[0]
@ -612,18 +607,18 @@ cdef class OBIView_NUC_SEQS(OBIView):
cdef class OBIView_line :
def __init__(self, OBIView view, index_t line_nb) :
self.index = line_nb
self.view = view
self._index = line_nb
self._view = view
def __getitem__(self, str column_name) :
return ((self.view).columns)[column_name][self.index]
return ((self._view)._columns)[column_name][self._index]
def __setitem__(self, str column_name, object value):
# TODO detect multiple elements (dict type)? put somewhere else? but more risky (in get)
# TODO OBI_QUAL ?
cdef type value_type
cdef str value_obitype
if column_name not in self.view :
if column_name not in self._view :
if value == None :
raise Exception("Trying to create a column from a None value (can't guess type)")
value_type = type(value)
@ -642,22 +637,22 @@ cdef class OBIView_line :
value_obitype = 'OBI_STR'
else :
raise Exception("Could not guess the type of a value to create a new column")
self.view.add_column(column_name, type=value_obitype)
self._view.add_column(column_name, type=value_obitype)
(((self.view).columns)[column_name]).set_line(self.index, value)
(((self._view)._columns)[column_name]).set_line(self._index, value)
def __iter__(self):
for column_name in ((self.view).columns) :
for column_name in ((self._view)._columns) :
yield column_name
def __contains__(self, str column_name):
return (column_name in self.view.columns)
return (column_name in self._view._columns)
def __repr__(self):
cdef dict line
cdef str column_name
line = {}
for column_name in self.view.columns :
for column_name in self._view._columns :
line[column_name] = self[column_name]
return str(line)
@ -674,14 +669,19 @@ cdef class OBIDMS :
dms_name_b = str2bytes(dms_name)
# Fill structure and create or open the DMS
self.dms_name = dms_name
self.pointer = obi_dms(<const_char_p> dms_name_b)
if self.pointer == NULL :
self._pointer = obi_dms(<const_char_p> dms_name_b)
if self._pointer == NULL :
raise Exception("Failed opening or creating an OBIDMS")
# name property getter
@property
def name(self):
return bytes2str(self._pointer.dms_name)
cpdef close(self) :
if (obi_close_dms(self.pointer)) < 0 :
if (obi_close_dms(self._pointer)) < 0 :
raise Exception("Problem closing an OBIDMS")
@ -731,7 +731,7 @@ cdef class OBIDMS :
cdef int i, j
cdef str column_name
view_infos_p = obi_view_map_file(self.pointer, str2bytes(view_name))
view_infos_p = obi_view_map_file(self._pointer, str2bytes(view_name))
view_infos_d = {}
view_infos_d["name"] = bytes2str(view_infos_p.name)
view_infos_d["comments"] = bytes2str(view_infos_p.comments)
@ -754,7 +754,7 @@ cdef class OBIDMS :
view_infos_d["column_references"][column_name]["original_name"] = bytes2str((column_references[j]).column_refs.column_name)
view_infos_d["column_references"][column_name]["version"] = (column_references[j]).column_refs.version
obi_view_unmap_file(self.pointer, view_infos_p)
obi_view_unmap_file(self._pointer, view_infos_p)
return view_infos_d
@ -772,7 +772,7 @@ cdef class OBIDMS :
# cdef bytes name_b
#
# views = {}
# all_views_p = obi_read_view_infos(self.pointer)
# all_views_p = obi_read_view_infos(self._pointer)
# if all_views_p == NULL :
# raise Exception("No views to read")
# nb_views = <int> (all_views_p.header).view_count

View File

@ -17,7 +17,7 @@ cdef class OBIDMS_column_bool(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef obibool_t value
cdef object result
value = obi_get_bool_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_bool_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIBool_NA :
@ -29,7 +29,7 @@ cdef class OBIDMS_column_bool(OBIDMS_column):
cpdef set_line(self, index_t line_nb, object value):
if value is None :
value = OBIBool_NA
if obi_set_bool_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, <obibool_t> value) < 0:
if obi_set_bool_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, <obibool_t> value) < 0:
raise Exception("Problem setting a value in a column")
@ -38,7 +38,7 @@ cdef class OBIDMS_column_multi_elts_bool(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef obibool_t value
cdef object result
value = obi_get_bool_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_bool_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIBool_NA :
@ -56,7 +56,7 @@ cdef class OBIDMS_column_multi_elts_bool(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_bool_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_bool_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIBool_NA :
@ -73,5 +73,5 @@ cdef class OBIDMS_column_multi_elts_bool(OBIDMS_column_multi_elts):
cpdef set_item(self, index_t line_nb, str element_name, object value):
if value is None :
value = OBIBool_NA
if obi_set_bool_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), <obibool_t> value) < 0:
if obi_set_bool_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), <obibool_t> value) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -15,7 +15,7 @@ cdef class OBIDMS_column_char(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef obichar_t value
cdef object result
value = obi_get_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIChar_NA :
@ -27,7 +27,7 @@ cdef class OBIDMS_column_char(OBIDMS_column):
cpdef set_line(self, index_t line_nb, object value):
if value is None :
value = OBIChar_NA
if obi_set_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, str2bytes(value)[0]) < 0:
if obi_set_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, str2bytes(value)[0]) < 0:
raise Exception("Problem setting a value in a column")
@ -36,7 +36,7 @@ cdef class OBIDMS_column_multi_elts_char(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef obichar_t value
cdef object result
value = obi_get_char_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_char_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIChar_NA :
@ -54,7 +54,7 @@ cdef class OBIDMS_column_multi_elts_char(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIChar_NA :
@ -71,6 +71,6 @@ cdef class OBIDMS_column_multi_elts_char(OBIDMS_column_multi_elts):
cpdef set_item(self, index_t line_nb, str element_name, object value):
if value is None :
value = OBIChar_NA
if obi_set_char_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), str2bytes(value)[0]) < 0:
if obi_set_char_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), str2bytes(value)[0]) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -15,7 +15,7 @@ cdef class OBIDMS_column_float(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef obifloat_t value
cdef object result
value = obi_get_float_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_float_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIFloat_NA :
@ -27,7 +27,7 @@ cdef class OBIDMS_column_float(OBIDMS_column):
cpdef set_line(self, index_t line_nb, object value):
if value is None :
value = OBIFloat_NA
if obi_set_float_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, <obifloat_t> value) < 0:
if obi_set_float_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, <obifloat_t> value) < 0:
raise Exception("Problem setting a value in a column")
@ -36,7 +36,7 @@ cdef class OBIDMS_column_multi_elts_float(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef obifloat_t value
cdef object result
value = obi_get_float_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_float_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIFloat_NA :
@ -54,7 +54,7 @@ cdef class OBIDMS_column_multi_elts_float(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_float_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_float_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIFloat_NA :
@ -71,6 +71,6 @@ cdef class OBIDMS_column_multi_elts_float(OBIDMS_column_multi_elts):
cpdef set_item(self, index_t line_nb, str element_name, object value):
if value is None :
value = OBIFloat_NA
if obi_set_float_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), <obifloat_t> value) < 0:
if obi_set_float_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), <obifloat_t> value) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -17,7 +17,7 @@ cdef class OBIDMS_column_int(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef obiint_t value
cdef object result
value = obi_get_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIInt_NA :
@ -29,7 +29,7 @@ cdef class OBIDMS_column_int(OBIDMS_column):
cpdef set_line(self, index_t line_nb, object value):
if value is None :
value = OBIInt_NA
if obi_set_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, <obiint_t> value) < 0:
if obi_set_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, <obiint_t> value) < 0:
raise Exception("Problem setting a value in a column")
@ -38,7 +38,7 @@ cdef class OBIDMS_column_multi_elts_int(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef obiint_t value
cdef object result
value = obi_get_int_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_int_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIInt_NA :
@ -56,7 +56,7 @@ cdef class OBIDMS_column_multi_elts_int(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIInt_NA :
@ -73,6 +73,6 @@ cdef class OBIDMS_column_multi_elts_int(OBIDMS_column_multi_elts):
cpdef set_item(self, index_t line_nb, str element_name, object value):
if value is None :
value = OBIInt_NA
if obi_set_int_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), <obiint_t> value) < 0:
if obi_set_int_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), <obiint_t> value) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -29,7 +29,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
cdef int value_length
cdef object result
cdef int i
value = obi_get_qual_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, &value_length)
value = obi_get_qual_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, &value_length)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIQual_int_NA :
@ -44,7 +44,7 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
cdef char* value
cdef object result
cdef int i
value = obi_get_qual_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_qual_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIQual_char_NA :
@ -58,28 +58,28 @@ cdef class OBIDMS_column_qual(OBIDMS_column):
cdef uint8_t* value_b
cdef int value_length
if value is None :
if obi_set_qual_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, OBIQual_int_NA, 0) < 0:
if obi_set_qual_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, OBIQual_int_NA, 0) < 0:
raise Exception("Problem setting a value in a column")
else :
value_length = len(value)
value_b = <uint8_t*> malloc(value_length * sizeof(uint8_t))
for i in range(value_length) :
value_b[i] = <uint8_t>value[i]
if obi_set_qual_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, value_b, value_length) < 0:
if obi_set_qual_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, value_b, value_length) < 0:
raise Exception("Problem setting a value in a column")
free(value_b)
cpdef set_str_line(self, index_t line_nb, object value):
cdef bytes value_b
if value is None :
if obi_set_qual_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, OBIQual_char_NA) < 0:
if obi_set_qual_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, OBIQual_char_NA) < 0:
raise Exception("Problem setting a value in a column")
else :
if type(value) == str:
value_b = str2bytes(value)
else :
value_b = value
if obi_set_qual_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, value_b) < 0:
if obi_set_qual_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, value_b) < 0:
raise Exception("Problem setting a value in a column")
@ -90,7 +90,7 @@ cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
cdef int value_length
cdef object result
cdef int i
value = obi_get_qual_int_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), &value_length)
value = obi_get_qual_int_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), &value_length)
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIQual_int_NA :
@ -104,7 +104,7 @@ cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
cpdef object get_str_item(self, index_t line_nb, str element_name):
cdef char* value
cdef object result
value = obi_get_qual_char_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_qual_char_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIQual_char_NA :
@ -125,7 +125,7 @@ cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_qual_int_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i, &value_length)
value = obi_get_qual_int_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i, &value_length)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIQual_int_NA :
@ -150,7 +150,7 @@ cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_qual_char_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_qual_char_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIQual_char_NA :
@ -169,21 +169,21 @@ cdef class OBIDMS_column_multi_elts_qual(OBIDMS_column_multi_elts):
cdef uint8_t* value_b
cdef int value_length
if value is None :
if obi_set_qual_int_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), OBIQual_int_NA, 0) < 0:
if obi_set_qual_int_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), OBIQual_int_NA, 0) < 0:
raise Exception("Problem setting a value in a column")
else :
value_length = len(value)
value_b = <uint8_t*> malloc(value_length * sizeof(uint8_t))
for i in range(value_length) :
value_b[i] = <uint8_t>value[i]
if obi_set_qual_int_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), value_b, value_length) < 0:
if obi_set_qual_int_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), value_b, value_length) < 0:
raise Exception("Problem setting a value in a column")
free(value_b)
cpdef set_str_item(self, index_t line_nb, str element_name, object value):
if value is None :
if obi_set_qual_char_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), OBIQual_char_NA) < 0:
if obi_set_qual_char_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), OBIQual_char_NA) < 0:
raise Exception("Problem setting a value in a column")
else :
if obi_set_qual_char_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), str2bytes(value)) < 0:
if obi_set_qual_char_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), str2bytes(value)) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -20,7 +20,7 @@ cdef class OBIDMS_column_seq(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef char* value
cdef object result
value = obi_get_seq_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_seq_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBISeq_NA :
@ -44,7 +44,7 @@ cdef class OBIDMS_column_seq(OBIDMS_column):
else:
raise TypeError('Sequence value must be of type Bytes, Str or None')
if obi_set_seq_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, value_b) < 0:
if obi_set_seq_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, value_b) < 0:
raise Exception("Problem setting a value in a column")
@ -53,7 +53,7 @@ cdef class OBIDMS_column_multi_elts_seq(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef char* value
cdef object result
value = obi_get_seq_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_seq_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBISeq_NA :
@ -75,7 +75,7 @@ cdef class OBIDMS_column_multi_elts_seq(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_seq_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_seq_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBISeq_NA :
@ -104,6 +104,6 @@ cdef class OBIDMS_column_multi_elts_seq(OBIDMS_column_multi_elts):
else:
raise TypeError('Sequence value must be of type Bytes, Str or None')
if obi_set_seq_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), value_b) < 0:
if obi_set_seq_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), value_b) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -15,7 +15,7 @@ cdef class OBIDMS_column_str(OBIDMS_column):
cpdef object get_line(self, index_t line_nb):
cdef const_char_p value
cdef object result
value = obi_get_str_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0)
value = obi_get_str_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIStr_NA :
@ -27,10 +27,10 @@ cdef class OBIDMS_column_str(OBIDMS_column):
cpdef set_line(self, index_t line_nb, object value):
if value is None :
if obi_set_str_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, OBIStr_NA) < 0:
if obi_set_str_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, OBIStr_NA) < 0:
raise Exception("Problem setting a value in a column")
else :
if obi_set_str_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, 0, str2bytes(value)) < 0:
if obi_set_str_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, 0, str2bytes(value)) < 0:
raise Exception("Problem setting a value in a column")
@ -39,7 +39,7 @@ cdef class OBIDMS_column_multi_elts_str(OBIDMS_column_multi_elts):
cpdef object get_item(self, index_t line_nb, str element_name):
cdef const_char_p value
cdef object result
value = obi_get_str_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name))
value = obi_get_str_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name))
if obi_errno > 0 :
raise IndexError(line_nb, element_name)
if value == OBIStr_NA :
@ -58,7 +58,7 @@ cdef class OBIDMS_column_multi_elts_str(OBIDMS_column_multi_elts):
result = {}
all_NA = True
for i in range(self.nb_elements_per_line) :
value = obi_get_str_with_elt_idx_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, i)
value = obi_get_str_with_elt_idx_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, i)
if obi_errno > 0 :
raise IndexError(line_nb)
if value == OBIStr_NA :
@ -79,6 +79,6 @@ cdef class OBIDMS_column_multi_elts_str(OBIDMS_column_multi_elts):
value_b = OBIStr_NA
else :
value_b = str2bytes(value)
if obi_set_str_with_elt_name_and_col_p_in_view(self.view.pointer, (self.pointer)[0], line_nb, str2bytes(element_name), value_b) < 0:
if obi_set_str_with_elt_name_and_col_p_in_view(self._view._pointer, (self._pointer)[0], line_nb, str2bytes(element_name), value_b) < 0:
raise Exception("Problem setting a value in a column")

View File

@ -7,6 +7,7 @@ from .capi.obiview cimport NUC_SEQUENCE_COLUMN, \
DEFINITION_COLUMN, \
QUALITY_COLUMN
cdef class OBI_Seq(dict) :
def __init__(self, object id, object seq, object definition=None) :

View File

@ -16,7 +16,7 @@ cdef class OBI_Taxonomy :
def __init__(self, OBIDMS dms, str name) :
self.name = name
self.pointer = obi_read_taxonomy(dms.pointer, str2bytes(name), True) # TODO discuss
self.pointer = obi_read_taxonomy(dms._pointer, str2bytes(name), True) # TODO discuss
def __getitem__(self, object ref):

View File

@ -4,7 +4,7 @@ from .obitypes cimport const_char_p
cdef extern from "obidms.h" nogil:
struct OBIDMS_t:
pass
const_char_p dms_name
ctypedef OBIDMS_t* OBIDMS_p