class PointBase(object): '''base class for geodetic coordinates ''' __slots__ = ["id", "textTable", "lindex"] def __init__(self, id, textTable=None): """id - point identification textTable - describes format of output text table """ self.id = id if textTable == None: self.textTable = TextTable([("id","%12s")]) else: self.textTable = textTable self.lindex = None # index in PointList def with_text_table(self, textTable): """ returns text table output with textTable without changing of self.textTable """ tt = self.textTable self.textTable = textTable str = self.__str__() self.textTable = tt return str def set_row_data_function(self, rowDataFun): """set list of functions for making row of data""" self.textTable.set_row_data_function(rowDataFun) def set_text_table_type(self, type): self.textTable.type = type def make_header(self): """returns header of table""" return self.textTable.make_table_head() def make_table_row(self): """returns row of table""" return self.textTable.make_table_row(self.id) def make_footer(self): """returns footer of table""" return self.textTable.make_table_foot() def __str__(self): return self.make_header() +\ self.make_table_row() +\ self.make_footer() def __eq__(self,other): """operator equal ==""" if isinstance(other, PointBase): return self.id == other.id else: return self.id == other def make_gama_xml(self): "returns xml tag for gama-local" return '<point id="%s"/>' % self.id def change_id(self, idDict): if self.id in idDict: self.id = idDict[self.id]