def save(self, filename): # WIP self.filename = filename exception = None open_file = None try: if not self.filename: raise IOError("no filename specified for saving") open_file = open(self.filename, 'w') dataExtra = self.extractInitData() GRO_parse.write_extraData_to_GRO(open_file, dataExtra[0]) GRO_parse.write_extraData_to_GRO(open_file, [str(self.rowCount())]) for row in self.GRO_rows: residNum = row.residNum residName = row.residName # (residNum, residName, atomName, atomNum, X,Y,Z ) = range(7) atomName = row.atomName atomNum = row.atomNum x = row.X y = row.Y z = row.Z line = [residNum, residName, atomName, atomNum, x, y, z] # print('line is ',line) GRO_parse.write_SingleLine_to_GRO(open_file, line) GRO_parse.write_vectorBox_to_GRO(open_file, dataExtra[2]) self.dirty = False except IOError as e: exception = e finally: if open_file is not None: open_file.close() if exception is not None: raise exception