Finished restructuring the OBIDMS_column class properties

This commit is contained in:
Celine Mercier
2016-09-27 14:16:30 +02:00
parent a7f891d1c9
commit 03a2c8ef7c
3 changed files with 20 additions and 37 deletions

View File

@ -118,7 +118,7 @@ def test_add_col(config, infos):
#if existing_col and infos["view_names"] != [] :
# random_view = infos['dms'].open_view(random.choice(infos["view_names"]))
# random_column = random_view[random.choice(list(random_view.get_columns()))]
# random_column_refs = random_column.get_references()
# random_column_refs = random_column.refs
# if random_column_refs['name'] in infos['view'] :
# alias = random_unique_name(infos)
# else :

View File

@ -10,23 +10,12 @@ from ._obitaxo cimport OBI_Taxonomy
cdef class OBIDMS_column:
cdef str column_alias # associated property: alias
cdef str original_name # associated_property: original_name
cdef int version # associated_property: version
cdef str data_type # associated property: data_type
cdef index_t nb_elements_per_line # associated property: nb_elements_per_line
cdef list elements_names # associated property: elements_names
cdef index_t lines_used # associated property: lines_used
cdef OBIDMS_column_p* pointer
cdef OBIDMS dms
cdef OBIView view
cdef str dms_name
cpdef str get_creation_date(self)
cpdef str get_comments(self)
cpdef dict get_references(self)
cpdef close(self)
cpdef close(self)
@staticmethod
cdef object get_subclass_type(OBIDMS_column_p column_p)

View File

@ -93,15 +93,10 @@ cdef class OBIDMS_column :
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.data_type = bytes2str(name_data_type((column_p.header).returned_data_type))
self.original_name = bytes2str((column_p.header).name)
self.version = (column_p.header).version
self.column_alias = column_alias
self.nb_elements_per_line = (column_p.header).nb_elements_per_line
self.elements_names = (bytes2str((column_p.header).elements_names)).split(';')
def __setitem__(self, index_t line_nb, object value):
self.set_line(line_nb, value)
@ -126,18 +121,6 @@ cdef class OBIDMS_column :
for line_nb in range(lines_used):
yield self.get_line(line_nb)
cpdef str get_creation_date(self):
return bytes2str(obi_format_date((self.pointer)[0].header.creation_date))
cpdef str get_comments(self):
return bytes2str((self.pointer)[0].header.comments)
cpdef dict get_references(self): # Make properties
refs = {}
refs['name'] = self.original_name
refs['version'] = (self.pointer)[0].header.version
return refs
def __str__(self) :
cdef str to_print
to_print = ''
@ -163,33 +146,44 @@ cdef class OBIDMS_column :
# elements_names property getter
@property
def elements_names(self):
return self.elements_names
return (bytes2str(((self.pointer)[0].header).elements_names)).split(';')
# nb_elements_per_line property getter
@property
def nb_elements_per_line(self):
return self.nb_elements_per_line
return ((self.pointer)[0].header).nb_elements_per_line
# data_type property getter
@property
def data_type(self):
return self.data_type
return bytes2str(name_data_type(((self.pointer)[0].header).returned_data_type))
# original_name property getter
@property
def original_name(self):
return self.original_name # TODO go get in header
return bytes2str(((self.pointer)[0].header).name)
# version property getter
@property
def version(self):
return self.version # TODO go get in header
return ((self.pointer)[0].header).version
# lines_used property getter
@property
def lines_used(self):
return (self.pointer)[0].header.lines_used
# comments property getter
@property
def comments(self):
return bytes2str((self.pointer)[0].header.comments)
# TODO setter that concatenates?
# creation_date property getter
@property
def creation_date(self):
return bytes2str(obi_format_date((self.pointer)[0].header.creation_date))
@staticmethod
cdef object get_subclass_type(OBIDMS_column_p column_p) :
@ -340,7 +334,7 @@ cdef class OBIView :
cdef str s
s = str(self.name) + "\n" + str(self.comments) + "\n" + str(self.pointer.infos.line_count) + " lines\n"
for column_name in self.columns :
s = s + column_name + ": " + self.columns[column_name].__repr__() + '\n'
s = s + self.columns[column_name].__repr__() + '\n'
return s