From 03a2c8ef7c305d5a0107c7f4b5f3965196fa01c4 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Tue, 27 Sep 2016 14:16:30 +0200 Subject: [PATCH] Finished restructuring the OBIDMS_column class properties --- python/obitools3/commands/test.pyx | 2 +- python/obitools3/obidms/_obidms.pxd | 13 +-------- python/obitools3/obidms/_obidms.pyx | 42 +++++++++++++---------------- 3 files changed, 20 insertions(+), 37 deletions(-) diff --git a/python/obitools3/commands/test.pyx b/python/obitools3/commands/test.pyx index ff65539..6a3eda0 100644 --- a/python/obitools3/commands/test.pyx +++ b/python/obitools3/commands/test.pyx @@ -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 : diff --git a/python/obitools3/obidms/_obidms.pxd b/python/obitools3/obidms/_obidms.pxd index 5136277..37723bc 100644 --- a/python/obitools3/obidms/_obidms.pxd +++ b/python/obitools3/obidms/_obidms.pxd @@ -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) diff --git a/python/obitools3/obidms/_obidms.pyx b/python/obitools3/obidms/_obidms.pyx index 27bc065..5c7d1a3 100644 --- a/python/obitools3/obidms/_obidms.pyx +++ b/python/obitools3/obidms/_obidms.pyx @@ -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