Changeset 76aed53 in sasview for src/sas/guiframe/data_processor.py


Ignore:
Timestamp:
Mar 4, 2015 12:20:18 PM (10 years ago)
Author:
Doucet, Mathieu <doucetm@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
49ab5d7, 66f21cd
Parents:
af6b53c
Message:

pylint fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/guiframe/data_processor.py

    r79492222 r76aed53  
    1010import copy 
    1111from wx.lib.scrolledpanel import ScrolledPanel 
    12 import  wx.grid as  Grid 
    1312import wx.aui 
    1413from wx.aui import AuiNotebook as nb 
    1514import wx.lib.sheet as sheet 
    1615from sas.guiframe.panel_base import PanelBase 
    17 from sas.guiframe.events import NewPlotEvent  
    18 from sas.guiframe.events import StatusEvent   
     16from sas.guiframe.events import NewPlotEvent 
     17from sas.guiframe.events import StatusEvent 
    1918from sas.plottools import plottables 
    2019from sas.guiframe.dataFitting import Data1D 
     
    2322             "pow": "math.sqrt"} 
    2423 
    25 class BatchCell: 
     24class BatchCell(object): 
    2625    """ 
    2726    Object describing a cell in  the grid. 
    28      
     27 
    2928    """ 
    3029    def __init__(self): 
     
    3433        self.row = -1 
    3534        self.object = [] 
    36          
     35 
    3736 
    3837def parse_string(sentence, list): 
     
    4241    :param list: list of columns label 
    4342    """ 
    44     toks = [] 
    4543    p2 = re.compile(r'\d+') 
    4644    p = re.compile(r'[\+\-\*\%\/]') 
     
    5149        temp_arr = [] 
    5250        for label in  list: 
    53             label_pos =  elt.find(label) 
    54             separator_pos  = label_pos + len(label) 
     51            label_pos = elt.find(label) 
     52            separator_pos = label_pos + len(label) 
    5553            if label_pos != -1 and len(elt) >= separator_pos  and\ 
    56                 elt[separator_pos]== "[": 
     54                elt[separator_pos] == "[": 
    5755                # the label contain , meaning the range selected is not  
    5856                # continuous 
     
    6462                        if range_pos != -1: 
    6563                            rang = p2.findall(item) 
    66                             for i in xrange(int(rang[0]), int(rang[1])+1 ): 
     64                            for i in xrange(int(rang[0]), int(rang[1]) + 1): 
    6765                                new_temp.append(i) 
    6866                    temp_arr += new_temp 
     
    7573                            if range_pos != -1: 
    7674                                rang = p2.findall(item) 
    77                                 for i in xrange(int(rang[0]), int(rang[1])+1 ): 
     75                                for i in xrange(int(rang[0]), int(rang[1]) + 1): 
    7876                                    temp_arr.append(i) 
    7977                col_dict[elt] = (label, temp_arr) 
    8078    return col_dict 
    8179 
    82            
    83            
     80 
    8481class SPanel(ScrolledPanel): 
    8582    def __init__(self, parent, *args, **kwds): 
    86         ScrolledPanel.__init__(self, parent , *args, **kwds) 
    87         self.SetupScrolling()   
    88          
     83        ScrolledPanel.__init__(self, parent, *args, **kwds) 
     84        self.SetupScrolling() 
     85 
    8986class GridPage(sheet.CSheet): 
    9087    """ 
     
    9491        """ 
    9592        sheet.CSheet.__init__(self, parent) 
    96          
     93 
    9794        self.AdjustScrollbars() 
    9895        #self.SetLabelBackgroundColour('#DBD4D4') 
     
    132129        self.EnableEditing(True) 
    133130        if self.GetNumberCols() > 0: 
    134             self.default_col_width =  self.GetColSize(0) 
     131            self.default_col_width = self.GetColSize(0) 
    135132        self.Bind(wx.grid.EVT_GRID_LABEL_LEFT_CLICK, self.on_left_click) 
    136133        self.Bind(wx.grid.EVT_GRID_LABEL_RIGHT_CLICK, self.on_right_click) 
     
    138135        self.Bind(wx.grid.EVT_GRID_CMD_CELL_CHANGE, self.on_edit_cell) 
    139136        self.Bind(wx.grid.EVT_GRID_CELL_RIGHT_CLICK, self.onContextMenu) 
    140          
     137 
    141138    def on_edit_cell(self, event): 
    142139        """ 
    143140        """ 
    144         row, col = event.GetRow(), event.GetCol() 
     141        row, _ = event.GetRow(), event.GetCol() 
    145142        if row > self.max_row_touse: 
    146143            self.max_row_touse = row 
     
    148145            self.data = {} 
    149146        event.Skip() 
    150          
     147 
    151148    def on_selected_cell(self, event): 
    152149        """ 
     
    154151        """ 
    155152        flag = event.CmdDown() or event.ControlDown() 
    156         flag_shift =  event.ShiftDown() 
     153        flag_shift = event.ShiftDown() 
    157154        row, col = event.GetRow(), event.GetCol() 
    158155        cell = (row, col) 
     
    181178            else: 
    182179                min_r = min(self.selected_rows) 
    183             for row_s in range(min_r, row+1): 
     180            for row_s in range(min_r, row + 1): 
    184181                cel = (row_s, col) 
    185182                if cel not in self.selected_cells: 
    186183                    if row > 0: 
    187184                        self.selected_cells.append(cel) 
    188                         self.selected_rows.append(row)  
    189             for row_s in self.selected_rows:  
     185                        self.selected_rows.append(row) 
     186            for row_s in self.selected_rows: 
    190187                cel = (row_s, col) 
    191188                if row_s > row: 
     
    200197        elif flag: 
    201198            if cell not in self.selected_cells: 
    202                 if row > 0 : 
     199                if row > 0: 
    203200                    self.selected_cells.append(cell) 
    204201                    self.selected_rows.append(row) 
     
    226223        event.Skip() 
    227224        flag = event.CmdDown() or event.ControlDown() 
    228          
     225 
    229226        col = event.GetCol() 
    230227        row = event.GetRow() 
    231228 
    232         if not (flag): 
     229        if not flag: 
    233230            self.selected_cols = [] 
    234231            self.selected_rows = [] 
     
    239236            self.plottable_cells = [] 
    240237            self.plottable_flag = False 
    241         
     238 
    242239        self.last_selected_col = col 
    243240        self.last_selected_row = row 
    244241        if row != -1 and row not in self.selected_rows: 
    245              self.selected_rows.append(row) 
    246               
     242            self.selected_rows.append(row) 
     243 
    247244        if col != -1: 
    248             for row in range(1, self.GetNumberRows()+ 1): 
     245            for row in range(1, self.GetNumberRows() + 1): 
    249246                cell = (row, col) 
    250247                if row > 0 and row < self.max_row_touse: 
     
    253250                    else: 
    254251                        if flag: 
    255                              self.selected_cells.remove(cell) 
     252                            self.selected_cells.remove(cell) 
    256253            self.selected_cols.append(col) 
    257254            self.axis_value = [] 
     
    263260            if not self.axis_label: 
    264261                self.axis_label = " " 
    265          
     262 
    266263    def on_right_click(self, event): 
    267264        """ 
    268265        Catch the right click mouse 
    269266        """ 
    270          
    271267        col = event.GetCol() 
    272268        row = event.GetRow() 
     
    278274        # Slicer plot popup menu 
    279275        slicerpop = wx.Menu() 
    280         col_label_menu  = wx.Menu() 
    281         c_name = self.GetCellValue(0, col)  
     276        col_label_menu = wx.Menu() 
     277        c_name = self.GetCellValue(0, col) 
    282278        label = "Insert column before %s " % str(c_name) 
    283         slicerpop.AppendSubMenu(col_label_menu ,  
    284                                  '&%s' % str(label), str(label)) 
    285         col_name = [self.GetCellValue(0, c)  
    286                         for c in range(self.GetNumberCols())] 
     279        slicerpop.AppendSubMenu(col_label_menu, '&%s' % str(label), str(label)) 
    287280        row = 0 
    288281        label = self.GetCellValue(row, col) 
    289282        self.insert_col_menu(col_label_menu, label, self) 
    290          
    291          
    292         col_after_menu  = wx.Menu() 
     283 
     284        col_after_menu = wx.Menu() 
    293285        label = "Insert column after %s " % str(c_name) 
    294         slicerpop.AppendSubMenu(col_after_menu ,  
    295                                  '&%s' % str(label), str(label)) 
    296         col_name = [self.GetCellValue(0, c)  
    297                         for c in range(self.GetNumberCols())] 
     286        slicerpop.AppendSubMenu(col_after_menu, '&%s' % str(label), str(label)) 
    298287        self.insert_after_col_menu(col_after_menu, label, self) 
    299          
    300          
    301         id = wx.NewId()     
     288 
     289        wx_id = wx.NewId() 
    302290        hint = 'Remove selected column %s' 
    303         slicerpop.Append(id, '&Remove Column', hint) 
    304         wx.EVT_MENU(self, id, self.on_remove_column) 
    305          
     291        slicerpop.Append(wx_id, '&Remove Column', hint) 
     292        wx.EVT_MENU(self, wx_id, self.on_remove_column) 
     293 
    306294        pos = wx.GetMousePosition() 
    307295        pos = self.ScreenToClient(pos) 
    308296        self.PopupMenu(slicerpop, pos) 
    309297        event.Skip() 
    310          
     298 
    311299    def insert_col_menu(self, menu, label, window): 
    312300        """ 
     
    320308        wx.EVT_MENU(window, id, self.on_insert_column) 
    321309        row = 0 
    322         col_name = [self.GetCellValue(row, col)  
     310        col_name = [self.GetCellValue(row, col) for col in range(self.GetNumberCols())] 
     311        for c_name in self.data.keys(): 
     312            if c_name not in col_name and self.data[c_name]: 
     313                wx_id = wx.NewId() 
     314                hint = "Insert %s column before the " % str(c_name) 
     315                hint += " %s column" % str(label) 
     316                menu.Append(wx_id, '&%s' % str(c_name), hint) 
     317                wx.EVT_MENU(window, wx_id, self.on_insert_column) 
     318 
     319    def insert_after_col_menu(self, menu, label, window): 
     320        """ 
     321        """ 
     322        if self.data is None: 
     323            return 
     324        wx_id = wx.NewId() 
     325        title = "Empty" 
     326        hint = 'Insert empty column after %s' % str(label) 
     327        menu.Append(wx_id, title, hint) 
     328        wx.EVT_MENU(window, wx_id, self.on_insert_after_column) 
     329        row = 0 
     330        col_name = [self.GetCellValue(row, col) 
    323331                        for col in range(self.GetNumberCols())] 
    324332        for c_name in self.data.keys(): 
    325333            if c_name not in col_name and self.data[c_name]: 
    326                 id = wx.NewId() 
    327                 hint = "Insert %s column before the " % str(c_name) 
    328                 hint += " %s column" % str(label) 
    329                 menu.Append(id, '&%s' % str(c_name), hint) 
    330                 wx.EVT_MENU(window, id, self.on_insert_column) 
    331              
    332     def insert_after_col_menu(self, menu, label, window): 
    333         """ 
    334         """ 
    335         if self.data is None: 
    336             return 
    337         id = wx.NewId() 
    338         title = "Empty" 
    339         hint = 'Insert empty column after %s' % str(label) 
    340         menu.Append(id, title, hint) 
    341         wx.EVT_MENU(window, id, self.on_insert_after_column) 
    342         row = 0 
    343         col_name = [self.GetCellValue(row, col)  
    344                         for col in range(self.GetNumberCols())] 
    345         for c_name in self.data.keys(): 
    346             if c_name not in col_name and self.data[c_name]: 
    347                 id = wx.NewId() 
     334                wx_id = wx.NewId() 
    348335                hint = "Insert %s column after the " % str(c_name) 
    349336                hint += " %s column" % str(label) 
    350                 menu.Append(id, '&%s' % str(c_name), hint) 
    351                 wx.EVT_MENU(window, id, self.on_insert_after_column) 
    352                                 
     337                menu.Append(wx_id, '&%s' % str(c_name), hint) 
     338                wx.EVT_MENU(window, wx_id, self.on_insert_after_column) 
     339 
    353340    def on_remove_column(self, event=None): 
    354341        """ 
     
    357344            col = self.selected_cols[0] 
    358345            self.remove_column(col=col, numCols=1) 
    359              
     346 
    360347    def remove_column(self, col, numCols=1): 
    361348        """ 
     
    370357                value = self.GetCellValue(row, col) 
    371358                self.data[col_name].append(value) 
    372                 for k , value_list in self.data.iteritems(): 
     359                for k, value_list in self.data.iteritems(): 
    373360                    if k != col_name: 
    374361                        length = len(value_list) 
     
    378365                                self.data[k].append("") 
    379366        self.DeleteCols(pos=col, numCols=numCols, updateLabels=True) 
    380              
     367 
    381368    def on_insert_column(self, event): 
    382369        """ 
     
    384371        if self.selected_cols is not None or len(self.selected_cols) > 0: 
    385372            col = self.selected_cols[0] 
    386             # add data to the grid     
    387             row = 0 
    388             id = event.GetId() 
    389             col_name = event.GetEventObject().GetLabelText(id) 
     373            # add data to the grid 
     374            wx_id = event.GetId() 
     375            col_name = event.GetEventObject().GetLabelText(wx_id) 
    390376            self.insert_column(col=col, col_name=col_name) 
    391             if  not issubclass(event.GetEventObject().__class__ , wx.Menu): 
     377            if  not issubclass(event.GetEventObject().__class__, wx.Menu): 
    392378                col += 1 
    393379                self.selected_cols[0] += 1 
    394                  
     380 
    395381    def on_insert_after_column(self, event): 
    396382        """ 
     
    399385        if self.selected_cols is not None or len(self.selected_cols) > 0: 
    400386            col = self.selected_cols[0] + 1 
    401             # add data to the grid     
    402             row = 0 
    403             id = event.GetId() 
    404             col_name = event.GetEventObject().GetLabelText(id) 
     387            # add data to the grid 
     388            wx_id = event.GetId() 
     389            col_name = event.GetEventObject().GetLabelText(wx_id) 
    405390            self.insert_column(col=col, col_name=col_name) 
    406             if  not issubclass(event.GetEventObject().__class__ , wx.Menu): 
     391            if  not issubclass(event.GetEventObject().__class__, wx.Menu): 
    407392                self.selected_cols[0] += 1 
    408             
     393 
    409394    def insert_column(self, col, col_name): 
    410395        """ 
    411         """  
    412           
     396        """ 
    413397        row = 0 
    414398        self.InsertCols(pos=col, numCols=1, updateLabels=True) 
     
    417401        if col_name in self.data.keys(): 
    418402            value_list = self.data[col_name] 
    419             cell_row =  1 
     403            cell_row = 1 
    420404            for value in value_list: 
    421405                label = value#format_number(value, high=True) 
     
    425409        width = self.GetColSize(col) 
    426410        if width < self.default_col_width: 
    427            self.SetColSize(col, self.default_col_width) 
     411            self.SetColSize(col, self.default_col_width) 
    428412        color = self.parent.GetBackgroundColour() 
    429413        self.SetCellBackgroundColour(0, col, color) 
    430414        self.ForceRefresh() 
    431          
     415 
    432416    def on_set_x_axis(self, event): 
    433417        """ 
    434418        """ 
    435419        self.panel.set_xaxis(x=self.axis_value, label=self.axis_label) 
    436     
     420 
    437421    def on_set_y_axis(self, event): 
    438422        """ 
    439423        """ 
    440         self.panel.set_yaxis(y=self.axis_value, label=self.axis_label)      
    441              
     424        self.panel.set_yaxis(y=self.axis_value, label=self.axis_label) 
     425 
    442426    def set_data(self, data_inputs, data_outputs, details, file_name): 
    443427        """ 
     
    448432        self.file_name = file_name 
    449433        self.details = details 
    450          
     434 
    451435        if data_outputs is None: 
    452436            data_outputs = {} 
     
    458442        for item in (self.data_outputs, self.data_inputs): 
    459443            self.data.update(item) 
    460              
    461         #if len(self.data) + len(self.data_inputs) +len(self.data_outputs) == 0: 
    462         #    self.EnableEditing(False) 
    463         #else: 
    464         #    self.EnableEditing(True) 
     444 
    465445        if  len(self.data_outputs) > 0: 
    466446            self._cols = self.GetNumberCols() 
    467447            self._rows = self.GetNumberRows() 
    468448            self.col_names = self.data_outputs.keys() 
    469             self.col_names.sort()  
     449            self.col_names.sort() 
    470450            nbr_user_cols = len(self.col_names) 
    471451            #Add more columns to the grid if necessary 
    472452            if nbr_user_cols > self._cols: 
    473                 new_col_nbr = nbr_user_cols -  self._cols + 1 
     453                new_col_nbr = nbr_user_cols - self._cols + 1 
    474454                self.AppendCols(new_col_nbr, True) 
    475             #Add more rows to the grid if necessary   
     455            #Add more rows to the grid if necessary 
    476456            nbr_user_row = len(self.data_outputs.values()[0]) 
    477457            if nbr_user_row > self._rows + 1: 
    478                 new_row_nbr =  nbr_user_row - self._rows + 1 
     458                new_row_nbr = nbr_user_row - self._rows + 1 
    479459                self.AppendRows(new_row_nbr, True) 
    480             # add data to the grid     
     460            # add data to the grid 
    481461            wx.CallAfter(self.set_grid_values) 
    482462        self.ForceRefresh() 
    483      
     463 
    484464    def set_grid_values(self): 
    485465        """ 
    486466        Set the values in grids 
    487467        """ 
    488         # add data to the grid     
     468        # add data to the grid 
    489469        row = 0 
    490470        col = 0 
     
    494474            self.SetCellValue(row, col, str(col_name)) 
    495475            col += 1 
    496             cell_row =  1 
     476            cell_row = 1 
    497477            value_list = self.data_outputs[col_name] 
    498              
     478 
    499479            for value in value_list: 
    500480                label = value 
     
    510490                width = self.GetColSize(cell_col) 
    511491                if width < self.default_col_width: 
    512                    self.SetColSize(cell_col, self.default_col_width) 
    513                  
     492                    self.SetColSize(cell_col, self.default_col_width) 
     493 
    514494                cell_row += 1 
    515495            cell_col += 1 
    516496            if cell_row > self.max_row_touse: 
    517497                self.max_row_touse = cell_row 
    518                           
     498 
    519499    def get_grid_view(self): 
    520500        """ 
     
    523503        grid_view = {} 
    524504        for col in xrange(self.GetNumberCols()): 
    525             label = self.GetCellValue(row=0, col=col)  
     505            label = self.GetCellValue(row=0, col=col) 
    526506            label = label.strip() 
    527507            if label != "": 
     
    530510                    value = self.GetCellValue(row=row, col=col) 
    531511                    if value != "": 
    532                         grid_view[label].append(value)   
     512                        grid_view[label].append(value) 
    533513                    else: 
    534                         grid_view[label].append(None)  
     514                        grid_view[label].append(None) 
    535515        return grid_view 
    536      
     516 
    537517    def get_nofrows(self): 
    538518        """ 
     
    540520        """ 
    541521        return self._rows 
    542      
     522 
    543523    def onContextMenu(self, event): 
    544524        """ 
    545         Default context menu  
    546         """ 
    547         id = wx.NewId() 
     525        Default context menu 
     526        """ 
     527        wx_id = wx.NewId() 
    548528        c_menu = wx.Menu() 
    549         copy_menu = c_menu.Append(id, '&Copy', 'Copy the selected cells') 
    550         wx.EVT_MENU(self, id, self.on_copy) 
    551          
    552         id = wx.NewId() 
    553         paste_menu = c_menu.Append(id, '&Paste', 'Paste the selected cells') 
    554         wx.EVT_MENU(self, id, self.on_paste) 
    555          
    556         id = wx.NewId() 
    557         clear_menu = c_menu.Append(id, '&Clear', 'Clear the selected cells') 
    558         wx.EVT_MENU(self, id, self.on_clear) 
    559          
     529        copy_menu = c_menu.Append(wx_id, '&Copy', 'Copy the selected cells') 
     530        wx.EVT_MENU(self, wx_id, self.on_copy) 
     531 
     532        wx_id = wx.NewId() 
     533        c_menu.Append(wx_id, '&Paste', 'Paste the selected cells') 
     534        wx.EVT_MENU(self, wx_id, self.on_paste) 
     535 
     536        wx_id = wx.NewId() 
     537        clear_menu = c_menu.Append(wx_id, '&Clear', 'Clear the selected cells') 
     538        wx.EVT_MENU(self, wx_id, self.on_clear) 
     539 
    560540        # enable from flag 
    561541        has_selection = False 
     
    576556        except: 
    577557            return 
    578      
     558 
    579559    def on_copy(self, event): 
    580560        """ 
     
    592572            self.file_name = 'copied_data' 
    593573        self.Paste() 
    594      
     574 
    595575    def on_clear(self, event): 
    596576        """ 
     
    598578        """ 
    599579        self.Clear() 
    600      
     580 
    601581class Notebook(nb, PanelBase): 
    602582    """ 
     
    606586    """ 
    607587    window_caption = "Notebook " 
    608      
     588 
    609589    def __init__(self, parent, manager=None, data=None, *args, **kwargs): 
    610590        """ 
    611591        """ 
    612592        nb.__init__(self, parent, -1, 
    613                     style=wx.aui.AUI_NB_WINDOWLIST_BUTTON|  
    614                     wx.aui.AUI_BUTTON_DOWN| 
    615                     wx.aui.AUI_NB_DEFAULT_STYLE| 
     593                    style=wx.aui.AUI_NB_WINDOWLIST_BUTTON | 
     594                    wx.aui.AUI_BUTTON_DOWN | 
     595                    wx.aui.AUI_NB_DEFAULT_STYLE | 
    616596                    wx.CLIP_CHILDREN) 
    617597        PanelBase.__init__(self, parent) 
     
    624604        self.add_empty_page() 
    625605        self.pageClosedEvent = wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE 
    626         self.Bind(self.pageClosedEvent, self.on_close_page)     
    627      
     606        self.Bind(self.pageClosedEvent, self.on_close_page) 
     607 
    628608    def add_empty_page(self): 
    629609        """ 
     
    637617        self.enable_close_button() 
    638618        self.gpage_num += 1 
    639         return grid , pos 
    640          
     619        return grid, pos 
     620 
    641621    def enable_close_button(self): 
    642622        """ 
    643         display the close button on tab for more than 1 tabs else remove the  
     623        display the close button on tab for more than 1 tabs else remove the 
    644624        close button 
    645625        """ 
    646626        if self.GetPageCount() <= 1: 
    647             style = self.GetWindowStyleFlag()  
     627            style = self.GetWindowStyleFlag() 
    648628            flag = wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB 
    649629            if style & wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB == flag: 
     
    656636                style |= wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB 
    657637                self.SetWindowStyle(style) 
    658                
     638 
    659639    def on_edit_axis(self): 
    660640        """ 
     
    672652                    msg += "Please select only one column" 
    673653                    raise ValueError, msg 
    674             for (cell_row, cell_col) in grid.selected_cells: 
     654            for (_, cell_col) in grid.selected_cells: 
    675655                if cell_col != col: 
    676656                    msg = "Cannot use cells from different columns for " 
     
    678658                    msg += "Please select elements of the same col.\n" 
    679659                    raise ValueError, msg 
    680                  
     660 
    681661            # Finally check the highlighted cell if any cells missing 
    682662            self.get_highlighted_row(True) 
     
    686666            raise ValueError, msg 
    687667        return grid.selected_cells 
    688         
     668 
    689669    def get_highlighted_row(self, is_number=True): 
    690670        """ 
     
    706686                    continue 
    707687                if is_number: 
    708                     try:  
     688                    try: 
    709689                        float(grid.GetCellValue(row, col)) 
    710690                    except: 
     
    715695                if cel not in grid.selected_cells: 
    716696                    grid.selected_cells.append(cel) 
    717                          
     697 
    718698    def get_column_labels(self): 
    719699        """ 
     
    723703        grid = self.GetPage(pos) 
    724704        labels = {} 
    725         row = 0 
    726705        for col in range(grid.GetNumberCols()): 
    727706            label = grid.GetColLabelValue(int(col)) 
    728             #label = grid.GetCellValue(row, col) 
    729             if label.strip() != "" : 
     707            if label.strip() != "": 
    730708                labels[label.strip()] = col 
    731709        return labels 
    732          
     710 
    733711    def create_axis_label(self, cell_list): 
    734712        """ 
    735         Receive a list of cells and  create a string presenting the selected  
    736         cells.  
     713        Receive a list of cells and  create a string presenting the selected 
     714        cells. 
    737715        :param cell_list: list of tuple 
    738          
     716 
    739717        """ 
    740718        pos = self.GetSelection() 
     
    742720        label = "" 
    743721        col_name = "" 
    744         def create_label(col_name,  row_min=None, row_max=None): 
     722        def create_label(col_name, row_min=None, row_max=None): 
    745723            """ 
    746724            """ 
     
    750728                    result = str(row_max) + "]" 
    751729                elif row_max is None: 
    752                      result = str(col_name) + "[" + str(row_min) + ":" 
     730                    result = str(col_name) + "[" + str(row_min) + ":" 
    753731                else: 
    754                     result = str(col_name) +  "[" + str(row_min) + ":" 
     732                    result = str(col_name) + "[" + str(row_min) + ":" 
    755733                    result += str(row_max) + "]" 
    756734            return str(result) 
    757              
     735 
    758736        if len(cell_list) > 0: 
    759737            if len(cell_list) == 1: 
    760                 row_min, col  = cell_list[0]     
    761                 col_name =  grid.GetColLabelValue(int(col)) 
    762                   
     738                row_min, col = cell_list[0] 
     739                col_name = grid.GetColLabelValue(int(col)) 
     740 
    763741                col_title = grid.GetCellValue(0, col) 
    764                 label = create_label(col_name, row_min+1 , row_min+1) 
    765                 return  label,  col_title 
     742                label = create_label(col_name, row_min + 1, row_min + 1) 
     743                return  label, col_title 
    766744            else: 
    767745                temp_list = copy.deepcopy(cell_list) 
    768746                temp_list.sort() 
    769747                length = len(temp_list) 
    770                 row_min, col  = temp_list[0]     
    771                 row_max, _  = temp_list[length-1] 
     748                row_min, col = temp_list[0] 
     749                row_max, _ = temp_list[length - 1] 
    772750                col_name = grid.GetColLabelValue(int(col)) 
    773751                col_title = grid.GetCellValue(0, col) 
     
    779757                        if row != new_row: 
    780758                            temp_list.insert(index, (None, None)) 
    781                             if index -1 >= 0: 
    782                                 new_row, _ = temp_list[index-1] 
    783                                 if not new_row == None and new_row != ' ' : 
    784                                     label += create_label(col_name, None,  
    785                                                           int(new_row) +1) 
     759                            if index - 1 >= 0: 
     760                                new_row, _ = temp_list[index - 1] 
     761                                if not new_row == None and new_row != ' ': 
     762                                    label += create_label(col_name, None, 
     763                                                          int(new_row) + 1) 
    786764                                else: 
    787765                                    label += "]" 
     
    789767                            if index + 1 < len(temp_list): 
    790768                                new_row, _ = temp_list[index + 1] 
    791                                 if not new_row==None: 
    792                                     label += create_label(col_name,  
    793                                                           int(new_row)+1, None) 
     769                                if not new_row == None: 
     770                                    label += create_label(col_name, 
     771                                                          int(new_row) + 1, None) 
    794772                    if row_min != None and row_max != None: 
    795773                        if index == 0: 
    796                             label += create_label(col_name,   
    797                                                   int(row_min)+1, None) 
    798                         elif index == len(temp_list)-1: 
    799                             label += create_label(col_name, None,  
    800                                                   int(row_max)+1) 
     774                            label += create_label(col_name, 
     775                                                  int(row_min) + 1, None) 
     776                        elif index == len(temp_list) - 1: 
     777                            label += create_label(col_name, None, 
     778                                                  int(row_max) + 1) 
    801779                    index += 1 
    802780                # clean up the list 
     
    809787 
    810788                return label_out, col_title 
    811      
     789 
    812790    def on_close_page(self, event): 
    813791        """ 
     
    817795            event.Veto() 
    818796        wx.CallAfter(self.enable_close_button) 
    819          
     797 
    820798    def set_data(self, data_inputs, data_outputs, details="", file_name=None): 
    821799        if data_outputs is None or data_outputs == {}: 
     
    826804            if grid.data is None: 
    827805                #Found empty page 
    828                 grid.set_data(data_inputs=inputs,  
     806                grid.set_data(data_inputs=inputs, 
    829807                              data_outputs=outputs, 
    830808                              details=details, 
    831                               file_name=file_name)  
    832                 self.SetSelection(pos)  
     809                              file_name=file_name) 
     810                self.SetSelection(pos) 
    833811                return 
    834                  
     812 
    835813        grid, pos = self.add_empty_page() 
    836         grid.set_data(data_inputs=inputs,  
     814        grid.set_data(data_inputs=inputs, 
    837815                      data_outputs=outputs, 
    838816                      file_name=file_name, 
    839817                      details=details) 
    840          
     818 
    841819    def get_odered_results(self, inputs, outputs=None): 
    842820        """ 
     
    868846            else: 
    869847                inputs[key] = [] 
    870                 #print "Different length in %s: Removed from Listing."% key 
    871                  
     848 
    872849        return inputs, outputs 
    873      
     850 
    874851    def add_column(self): 
    875852        """ 
     
    879856        grid = self.GetPage(pos) 
    880857        grid.AppendCols(1, True) 
    881          
     858 
    882859    def on_remove_column(self): 
    883860        """ 
     
    887864        grid = self.GetPage(pos) 
    888865        grid.on_remove_column(event=None) 
    889          
     866 
    890867class GridPanel(SPanel): 
    891868    def __init__(self, parent, data_inputs=None, 
    892869                 data_outputs=None, *args, **kwds): 
    893         SPanel.__init__(self, parent , *args, **kwds) 
    894         
     870        SPanel.__init__(self, parent, *args, **kwds) 
     871 
    895872        self.vbox = wx.BoxSizer(wx.VERTICAL) 
    896          
     873 
    897874        self.plotting_sizer = wx.FlexGridSizer(3, 7, 10, 5) 
    898875        self.button_sizer = wx.BoxSizer(wx.HORIZONTAL) 
     
    906883        self._data_outputs = data_outputs 
    907884        self.x = [] 
    908         self.y  = [] 
    909         self.dy  = [] 
     885        self.y = [] 
     886        self.dy = [] 
    910887        self.x_axis_label = None 
    911888        self.y_axis_label = None 
     
    919896        self.notebook = None 
    920897        self.plot_num = 1 
    921         
     898 
    922899        self.layout_grid() 
    923900        self.layout_plotting_area() 
     
    932909        self.x_axis_label.SetValue("%s[:]" % str(label)) 
    933910        self.x_axis_title.SetValue(str(label)) 
    934          
     911 
    935912    def set_yaxis(self, label="", y=None): 
    936913        """ 
     
    941918        self.y_axis_label.SetValue("%s[:]" % str(label)) 
    942919        self.y_axis_title.SetValue(str(label)) 
    943          
     920 
    944921    def set_dyaxis(self, label="", dy=None): 
    945922        """ 
     
    949926        self.dy = dy 
    950927        self.dy_axis_label.SetValue("%s[:]" % str(label)) 
    951                  
     928 
    952929    def get_plot_axis(self, col, list): 
    953930        """ 
    954         
     931 
    955932        """ 
    956933        axis = [] 
     
    967944                        axis.append(float(value)) 
    968945                    except: 
    969                         msg = "Invalid data in row %s column %s" % (str(row), 
    970                                                                     str(col)) 
    971                         wx.PostEvent(self.parent.parent,  
    972                              StatusEvent(status=msg, info="error")) 
     946                        msg = "Invalid data in row %s column %s" % (str(row), str(col)) 
     947                        wx.PostEvent(self.parent.parent, 
     948                                     StatusEvent(status=msg, info="error")) 
    973949                        return None 
    974950            else: 
    975                 axis.append(None)  
     951                axis.append(None) 
    976952        return axis 
    977      
     953 
    978954    def on_view(self, event): 
    979955        """ 
     
    986962        if len(grid.selected_cells) == 0: 
    987963            msg = "Highlight a Data or Chi2 column first..." 
    988             wx.PostEvent(self.parent.parent,  
    989                              StatusEvent(status=msg, info="error"))  
     964            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    990965            return 
    991966        elif len(grid.selected_cells) > 20: 
    992967            msg = "Too many data (> 20) to plot..." 
    993968            msg += "\n Please select no more than 20 data." 
    994             dial = wx.MessageDialog(self, msg, 'Plotting', wx.OK) 
    995             wx.PostEvent(self.parent.parent,  
    996                              StatusEvent(status=msg, info="error"))  
     969            wx.MessageDialog(self, msg, 'Plotting', wx.OK) 
     970            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    997971            return 
    998972 
     
    1004978                values = grid.data[label] 
    1005979                if row > len(values) or row < 1: 
    1006                     msg = "Invalid cell was chosen."  
    1007                     wx.PostEvent(self.parent.parent, StatusEvent(status=msg,  
    1008                                                                 info="error")) 
     980                    msg = "Invalid cell was chosen." 
     981                    wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    1009982                    continue 
    1010983                else: 
    1011                      value = values[row -1] 
     984                    value = values[row - 1] 
    1012985                if issubclass(value.__class__, BatchCell): 
    1013986                    if value.object is None or len(value.object) == 0: 
     
    1015988                        msg += "Column %s is NOT " % str(label) 
    1016989                        msg += "the results of fits to view..." 
    1017                         #raise ValueError, msg 
    1018                         wx.PostEvent(self.parent.parent, StatusEvent(status=msg,  
    1019                                                                 info="error"))  
     990                        wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    1020991                        return 
    1021992                    for new_plot in value.object: 
    1022993                        if new_plot is None or \ 
    1023                          not issubclass(new_plot.__class__,  
     994                         not issubclass(new_plot.__class__, 
    1024995                                        plottables.Plottable): 
    1025996                            msg = "Row %s , " % str(row) 
    1026997                            msg += "Column %s is NOT " % str(label) 
    1027998                            msg += "the results of fits to view..." 
    1028                             #raise ValueError, msg 
    1029                             wx.PostEvent(self.parent.parent,  
    1030                                  StatusEvent(status=msg, info="error"))  
     999                            wx.PostEvent(self.parent.parent, 
     1000                                         StatusEvent(status=msg, info="error")) 
    10311001                            return 
    1032                             #continue 
    1033                         #new_plot.name =  title + ': ' + new_plot.title 
    10341002                        if issubclass(new_plot.__class__, Data1D): 
    10351003                            if label in grid.list_plot_panels.keys(): 
     
    10461014                                    msg = "2D View: Please select one data set" 
    10471015                                    msg += " at a time for View Fit Results." 
    1048                                     wx.PostEvent(self.parent.parent,  
    1049                                                  StatusEvent(status=msg, 
    1050                                                               info="error")) 
     1016                                    wx.PostEvent(self.parent.parent, 
     1017                                                 StatusEvent(status=msg, info="error")) 
    10511018                                    return 
    10521019 
    1053                         wx.PostEvent(self.parent.parent,  
    1054                                      NewPlotEvent(plot=new_plot,  
    1055                                                 group_id=str(new_plot.group_id), 
    1056                                                 title=title))   
     1020                        wx.PostEvent(self.parent.parent, 
     1021                                     NewPlotEvent(plot=new_plot, 
     1022                                                  group_id=str(new_plot.group_id), 
     1023                                                  title=title)) 
    10571024                        msg = "Plotting the View Fit Results  completed!" 
    1058                         wx.PostEvent( self.parent.parent,  
    1059                                       StatusEvent(status=msg))   
     1025                        wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    10601026                else: 
    1061                     
    10621027                    msg = "Row %s , " % str(row) 
    10631028                    msg += "Column %s is NOT " % str(label) 
    10641029                    msg += "the results of fits to view..." 
    1065                     wx.PostEvent(self.parent.parent,  
    1066                          StatusEvent(status=msg, info="error"))  
     1030                    wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    10671031                    return 
    1068      
     1032 
    10691033    def on_plot(self, event): 
    10701034        """ 
    10711035        Evaluate the contains of textcrtl and plot result 
    1072         """  
     1036        """ 
    10731037        pos = self.notebook.GetSelection() 
    10741038        grid = self.notebook.GetPage(pos) 
     
    10841048        except: 
    10851049            msg = "X axis value error." 
    1086             wx.PostEvent(self.parent.parent,  
    1087                             StatusEvent(status=msg, info="error"))  
     1050            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    10881051            return 
    10891052        dict = parse_string(sentence, column_names.keys()) 
    1090          
     1053 
    10911054        try: 
    10921055            sentence = self.get_sentence(dict, sentence, column_names) 
     
    10941057        except: 
    10951058            msg = "Need a proper x-range." 
    1096             wx.PostEvent(self.parent.parent,  
    1097                              StatusEvent(status=msg, info="error"))  
     1059            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    10981060            return 
    10991061        #evaluate y 
     
    11051067        except: 
    11061068            msg = "Y axis value error." 
    1107             wx.PostEvent(self.parent.parent,  
    1108                             StatusEvent(status=msg, info="error"))  
     1069            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    11091070            return 
    11101071        dict = parse_string(sentence, column_names.keys()) 
     
    11141075        except: 
    11151076            msg = "Need a proper y-range." 
    1116             wx.PostEvent(self.parent.parent,  
    1117                              StatusEvent(status=msg, info="error"))  
     1077            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    11181078            return 
    11191079        #evaluate y 
     
    11271087            except: 
    11281088                msg = "Need a proper dy-range." 
    1129                 wx.PostEvent(self.parent.parent,  
    1130                                  StatusEvent(status=msg, info="error"))  
     1089                wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    11311090                return 
    11321091        if len(x) != len(y) or (len(x) == 0 or len(y) == 0): 
    11331092            msg = "Need same length for X and Y axis and both greater than 0" 
    11341093            msg += " to plot.\n" 
    1135             msg += "Got X length = %s, Y length = %s" % (str(len(x)), 
    1136                                                           str(len(y))) 
    1137             wx.PostEvent(self.parent.parent,  
    1138                              StatusEvent(status=msg, info="error"))  
     1094            msg += "Got X length = %s, Y length = %s" % (str(len(x)), str(len(y))) 
     1095            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    11391096            return 
    1140         if dy != None and (len(y) != len(dy)):   
     1097        if dy != None and (len(y) != len(dy)): 
    11411098            msg = "Need same length for Y and dY axis and both greater than 0" 
    11421099            msg += " to plot.\n" 
    1143             msg += "Got Y length = %s, dY length = %s" % (str(len(y)), 
    1144                                                           str(len(dy))) 
    1145             wx.PostEvent(self.parent.parent,  
    1146                              StatusEvent(status=msg, info="error"))  
     1100            msg += "Got Y length = %s, dY length = %s" % (str(len(y)), str(len(dy))) 
     1101            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
    11471102            return 
    11481103        if dy == None: 
     
    11501105        #plotting 
    11511106        new_plot = Data1D(x=x, y=y, dy=dy) 
    1152         new_plot.id =  wx.NewId() 
     1107        new_plot.id = wx.NewId() 
    11531108        new_plot.is_data = False 
    11541109        new_plot.group_id = wx.NewId() 
    11551110        y_title = self.y_axis_title.GetValue() 
    11561111        x_title = self.x_axis_title.GetValue() 
    1157         title = "%s_vs_%s" % (y_title,  
    1158                               x_title) 
    1159         new_plot.xaxis(x_title,  
    1160                        self.x_axis_unit.GetValue()) 
    1161         new_plot.yaxis(y_title,  
    1162                        self.y_axis_unit.GetValue()) 
     1112        title = "%s_vs_%s" % (y_title, x_title) 
     1113        new_plot.xaxis(x_title, self.x_axis_unit.GetValue()) 
     1114        new_plot.yaxis(y_title, self.y_axis_unit.GetValue()) 
    11631115        try: 
    11641116            title = y_title.strip() 
    1165              
    11661117            title += "_" + self.notebook.GetPageText(pos) 
    11671118            title += "_" + str(self.plot_num) 
     
    11691120            new_plot.name = title 
    11701121            new_plot.xtransform = "x" 
    1171             new_plot.ytransform  = "y"   
    1172             #new_plot.is_data = False 
    1173             wx.PostEvent(self.parent.parent,  
    1174                         NewPlotEvent(plot=new_plot,  
    1175                         group_id=str(new_plot.group_id), title =title))  
     1122            new_plot.ytransform = "y" 
     1123            wx.PostEvent(self.parent.parent, 
     1124                         NewPlotEvent(plot=new_plot, 
     1125                                      group_id=str(new_plot.group_id), title=title)) 
    11761126            msg = "Plotting completed!" 
    1177             wx.PostEvent( self.parent.parent,  
    1178                                       StatusEvent(status=msg))   
    1179             self.parent.parent.update_theory(data_id=new_plot.id,  
    1180                                               theory=new_plot)  
     1127            wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1128            self.parent.parent.update_theory(data_id=new_plot.id, theory=new_plot) 
    11811129        except: 
    1182              wx.PostEvent(self.parent.parent,  
    1183                              StatusEvent(status=msg, info="error"))  
    1184      
     1130            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
     1131 
    11851132    def get_sentence(self, dict, sentence, column_names): 
    11861133        """ 
     
    11921139            if axis == None: 
    11931140                return None 
    1194             sentence = sentence.replace(tok,  
    1195                                         "numpy.array(%s)" % str(axis)) 
     1141            sentence = sentence.replace(tok, "numpy.array(%s)" % str(axis)) 
    11961142        for key, value in FUNC_DICT.iteritems(): 
    11971143            sentence = sentence.replace(key.lower(), value) 
    11981144        return sentence 
    1199              
     1145 
    12001146    def layout_grid(self): 
    12011147        """ 
     
    12051151        self.notebook.set_data(self._data_inputs, self._data_outputs) 
    12061152        self.grid_sizer.Add(self.notebook, 1, wx.EXPAND, 0) 
    1207         
     1153 
    12081154    def layout_plotting_area(self): 
    12091155        """ 
     
    12211167        self.dy_axis_label = wx.TextCtrl(self, -1, size=(200, -1)) 
    12221168        self.x_axis_add = wx.Button(self, -1, "Add") 
    1223         self.x_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis,  
    1224                             id=self.x_axis_add.GetId()) 
     1169        self.x_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis, 
     1170                             id=self.x_axis_add.GetId()) 
    12251171        self.y_axis_add = wx.Button(self, -1, "Add") 
    1226         self.y_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis,  
    1227                             id=self.y_axis_add.GetId()) 
     1172        self.y_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis, 
     1173                             id=self.y_axis_add.GetId()) 
    12281174        self.dy_axis_add = wx.Button(self, -1, "Add") 
    1229         self.dy_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis,  
    1230                             id=self.dy_axis_add.GetId()) 
     1175        self.dy_axis_add.Bind(event=wx.EVT_BUTTON, handler=self.on_edit_axis, 
     1176                              id=self.dy_axis_add.GetId()) 
    12311177        self.x_axis_unit = wx.TextCtrl(self, -1) 
    12321178        self.y_axis_unit = wx.TextCtrl(self, -1) 
     
    12381184        plot_tip = "Highlight a column for each axis and \n" 
    12391185        plot_tip += "click the Add buttons first." 
    1240          
     1186 
    12411187        self.plot_button.SetToolTipString(plot_tip) 
    12421188        boxsizer1.AddMany([(note_text, 0, wx.LEFT, 10), 
    1243                            (self.view_button, 0, wx.LEFT|wx.RIGHT, 10)]) 
    1244         self.button_sizer.AddMany([(boxsizer1, 0,  
    1245                                     wx.LEFT|wx.RIGHT|wx.BOTTOM, 10),  
    1246                                    (self.plot_button, 0,  
    1247                                     wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 12)]) 
    1248          
     1189                           (self.view_button, 0, wx.LEFT | wx.RIGHT, 10)]) 
     1190        self.button_sizer.AddMany([(boxsizer1, 0, 
     1191                                    wx.LEFT | wx.RIGHT | wx.BOTTOM, 10), 
     1192                                   (self.plot_button, 0, 
     1193                                    wx.LEFT | wx.TOP | wx.BOTTOM | wx.EXPAND, 12)]) 
     1194 
    12491195        wx.EVT_BUTTON(self, self.plot_button.GetId(), self.on_plot) 
    1250         self.plotting_sizer.AddMany([ 
    1251                     (wx.StaticText(self, -1,  
    1252                                    "X-axis Label\nSelection Range"), 1, 
    1253                       wx.TOP|wx.BOTTOM|wx.LEFT, 10), 
    1254                     (self.x_axis_label, 1, wx.TOP|wx.BOTTOM, 10), 
    1255                     (self.x_axis_add, 1, wx.TOP|wx.BOTTOM|wx.RIGHT, 10), 
    1256                     (wx.StaticText(self, -1, "X-axis Label"), 1,  
    1257                      wx.TOP|wx.BOTTOM|wx.LEFT, 10), 
    1258                     (self.x_axis_title, 1, wx.TOP|wx.BOTTOM, 10), 
    1259                     (wx.StaticText(self, -1 , "X-axis Unit"), 1,  
    1260                      wx.TOP|wx.BOTTOM, 10), 
    1261                     (self.x_axis_unit, 1, wx.TOP|wx.BOTTOM, 10), 
    1262                     (wx.StaticText(self, -1,  
    1263                                    "Y-axis Label\nSelection Range"), 1,  
    1264                      wx.BOTTOM|wx.LEFT, 10), 
     1196        self.plotting_sizer.AddMany(\ 
     1197                   [(wx.StaticText(self, -1, "X-axis Label\nSelection Range"), 1, 
     1198                     wx.TOP | wx.BOTTOM | wx.LEFT, 10), 
     1199                    (self.x_axis_label, 1, wx.TOP | wx.BOTTOM, 10), 
     1200                    (self.x_axis_add, 1, wx.TOP | wx.BOTTOM | wx.RIGHT, 10), 
     1201                    (wx.StaticText(self, -1, "X-axis Label"), 1, wx.TOP | wx.BOTTOM | wx.LEFT, 10), 
     1202                    (self.x_axis_title, 1, wx.TOP | wx.BOTTOM, 10), 
     1203                    (wx.StaticText(self, -1, "X-axis Unit"), 1, wx.TOP | wx.BOTTOM, 10), 
     1204                    (self.x_axis_unit, 1, wx.TOP | wx.BOTTOM, 10), 
     1205                    (wx.StaticText(self, -1, "Y-axis Label\nSelection Range"), 1, 
     1206                     wx.BOTTOM | wx.LEFT, 10), 
    12651207                    (self.y_axis_label, wx.BOTTOM, 10), 
    1266                     (self.y_axis_add, 1, wx.BOTTOM|wx.RIGHT, 10), 
    1267                     (wx.StaticText(self, -1, "Y-axis Label"), 1,  
    1268                      wx.BOTTOM|wx.LEFT, 10), 
    1269                     (self.y_axis_title,  wx.BOTTOM, 10), 
    1270                     (wx.StaticText(self, -1 , "Y-axis Unit"), 1, wx.BOTTOM, 10), 
     1208                    (self.y_axis_add, 1, wx.BOTTOM | wx.RIGHT, 10), 
     1209                    (wx.StaticText(self, -1, "Y-axis Label"), 1, 
     1210                     wx.BOTTOM | wx.LEFT, 10), 
     1211                    (self.y_axis_title, wx.BOTTOM, 10), 
     1212                    (wx.StaticText(self, -1, "Y-axis Unit"), 1, wx.BOTTOM, 10), 
    12711213                    (self.y_axis_unit, 1, wx.BOTTOM, 10), 
    1272                     (wx.StaticText(self, -1,  
    1273                                    "dY-Bar (Optional)\nSelection Range"),   
    1274                                    1, wx.BOTTOM|wx.LEFT, 10), 
     1214                    (wx.StaticText(self, -1, "dY-Bar (Optional)\nSelection Range"), 
     1215                     1, wx.BOTTOM | wx.LEFT, 10), 
    12751216                    (self.dy_axis_label, wx.BOTTOM, 10), 
    1276                     (self.dy_axis_add, 1, wx.BOTTOM|wx.RIGHT, 10), 
    1277                       (-1, -1), 
    1278                       (-1, -1), 
    1279                       (-1, -1), 
    1280                       #(-1, -1), 
    1281                       #(-1, -1), 
    1282                       #(-1, -1), 
    1283                       (-1, 1)]) 
    1284     
     1217                    (self.dy_axis_add, 1, wx.BOTTOM | wx.RIGHT, 10), 
     1218                    (-1, -1), 
     1219                    (-1, -1), 
     1220                    (-1, -1), 
     1221                    (-1, 1)]) 
     1222 
    12851223    def on_edit_axis(self, event): 
    12861224        """ 
     
    12921230        except: 
    12931231            msg = str(sys.exc_value) 
    1294             wx.PostEvent(self.parent.parent,  
    1295                              StatusEvent(status=msg, info="error"))  
    1296             return  
     1232            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="error")) 
     1233            return 
    12971234        tcrtl = event.GetEventObject() 
    12981235        if tcrtl == self.x_axis_add: 
    1299             self.edit_axis_helper(self.x_axis_label, self.x_axis_title, 
    1300                                    label, title) 
     1236            self.edit_axis_helper(self.x_axis_label, self.x_axis_title, label, title) 
    13011237        elif tcrtl == self.y_axis_add: 
    1302             self.edit_axis_helper(self.y_axis_label, self.y_axis_title, 
    1303                                    label, title) 
     1238            self.edit_axis_helper(self.y_axis_label, self.y_axis_title, label, title) 
    13041239        elif tcrtl == self.dy_axis_add: 
    1305             self.edit_axis_helper(self.dy_axis_label, None, 
    1306                                    label, None) 
    1307              
     1240            self.edit_axis_helper(self.dy_axis_label, None, label, None) 
     1241 
    13081242    def create_axis_label(self, cell_list): 
    13091243        """ 
    1310         Receive a list of cells and  create a string presenting the selected  
    1311         cells.  
     1244        Receive a list of cells and  create a string presenting the selected 
     1245        cells. 
    13121246        :param cell_list: list of tuple 
    1313          
     1247 
    13141248        """ 
    13151249        if self.notebook is not None: 
    13161250            return self.notebook.create_axis_label(cell_list) 
    1317      
     1251 
    13181252    def edit_axis_helper(self, tcrtl_label, tcrtl_title, label, title): 
    13191253        """ 
     
    13241258        if title != None: 
    13251259            tcrtl_title.SetValue(str(title)) 
    1326          
     1260 
    13271261    def add_column(self): 
    13281262        """ 
     
    13301264        if self.notebook is not None: 
    13311265            self.notebook.add_column() 
    1332          
     1266 
    13331267    def on_remove_column(self): 
    13341268        """ 
     
    13361270        if self.notebook is not None: 
    13371271            self.notebook.on_remove_column() 
    1338          
    1339          
     1272 
     1273 
    13401274class GridFrame(wx.Frame): 
    1341     def __init__(self, parent=None, data_inputs=None, data_outputs=None, id=-1,  
     1275    def __init__(self, parent=None, data_inputs=None, data_outputs=None, id=-1, 
    13421276                 title="Grid Window", size=(800, 500)): 
    13431277        wx.Frame.__init__(self, parent=parent, id=id, title=title, size=size) 
     
    13461280        menubar = wx.MenuBar() 
    13471281        self.SetMenuBar(menubar) 
    1348          
     1282 
    13491283        self.curr_col = None 
    13501284        self.curr_grid = None 
     
    13521286        self.file = wx.Menu() 
    13531287        menubar.Append(self.file, "&File") 
    1354          
     1288 
    13551289        hint = "Open file containing batch results" 
    13561290        open_menu = self.file.Append(wx.NewId(), 'Open ', hint) 
    13571291        wx.EVT_MENU(self, open_menu.GetId(), self.on_open) 
    1358          
     1292 
    13591293        hint = "Open the the current grid into excel" 
    13601294        self.open_excel_menu = self.file.Append(wx.NewId(), 'Open with Excel', hint) 
     
    13631297        self.save_menu = self.file.Append(wx.NewId(), 'Save As', 'Save into File') 
    13641298        wx.EVT_MENU(self, self.save_menu.GetId(), self.on_save_page) 
    1365          
     1299 
    13661300        self.edit = wx.Menu() 
    1367          
    1368         add_table_menu = self.edit.Append(-1, 'New Table',  
     1301 
     1302        add_table_menu = self.edit.Append(-1, 'New Table', 
    13691303                                          'Add a New Table') 
    13701304        self.edit.AppendSeparator() 
    13711305        wx.EVT_MENU(self, add_table_menu.GetId(), self.add_table) 
    1372          
    1373         self.copy_menu = self.edit.Append(-1, 'Copy',  
     1306 
     1307        self.copy_menu = self.edit.Append(-1, 'Copy', 
    13741308                                          'Copy the selected cells') 
    13751309        wx.EVT_MENU(self, self.copy_menu.GetId(), self.on_copy) 
    1376         self.paste_menu = self.edit.Append(-1, 'Paste',  
     1310        self.paste_menu = self.edit.Append(-1, 'Paste', 
    13771311                                           'Paste the selected Cells') 
    13781312        wx.EVT_MENU(self, self.paste_menu.GetId(), self.on_paste) 
    1379         self.clear_menu = self.edit.Append(-1, 'Clear',  
     1313        self.clear_menu = self.edit.Append(-1, 'Clear', 
    13801314                                           'Clear the selected Cells') 
    13811315        wx.EVT_MENU(self, self.clear_menu.GetId(), self.on_clear) 
     
    13841318        hint = "Insert column before the selected column" 
    13851319        self.insert_before_menu = wx.Menu() 
    1386         self.insertb_sub_menu = self.edit.AppendSubMenu(self.insert_before_menu,  
    1387                                                       'Insert Before', hint) 
     1320        self.insertb_sub_menu = self.edit.AppendSubMenu(self.insert_before_menu, 
     1321                                                        'Insert Before', hint) 
    13881322        hint = "Insert column after the selected column" 
    13891323        self.insert_after_menu = wx.Menu() 
    1390         self.inserta_sub_menu = self.edit.AppendSubMenu(self.insert_after_menu,  
    1391                                                       'Insert After', hint) 
     1324        self.inserta_sub_menu = self.edit.AppendSubMenu(self.insert_after_menu, 
     1325                                                        'Insert After', hint) 
    13921326        hint = "Remove the selected column" 
    13931327        self.remove_menu = self.edit.Append(-1, 'Remove Column', hint) 
    13941328        wx.EVT_MENU(self, self.remove_menu.GetId(), self.on_remove_column) 
    1395          
     1329 
    13961330        self.Bind(wx.EVT_MENU_OPEN, self.on_menu_open) 
    13971331        menubar.Append(self.edit, "&Edit") 
    13981332        self.Bind(wx.EVT_CLOSE, self.on_close) 
    1399      
     1333 
    14001334    def on_copy(self, event): 
    14011335        """ 
     
    14071341        grid = self.panel.notebook.GetPage(pos) 
    14081342        grid.Copy() 
    1409          
     1343 
    14101344    def on_paste(self, event): 
    14111345        """ 
     
    14251359        grid = self.panel.notebook.GetPage(pos) 
    14261360        grid.Clear() 
    1427       
     1361 
    14281362    def GetLabelText(self, id): 
    14291363        """ 
     
    14311365        """ 
    14321366        for item in self.insert_before_menu.GetMenuItems(): 
    1433             m_id = item.GetId()  
     1367            m_id = item.GetId() 
    14341368            if m_id == id: 
    1435                 return item.GetLabel()  
    1436      
     1369                return item.GetLabel() 
     1370 
    14371371    def on_remove_column(self, event): 
    14381372        """ 
     
    14421376        grid = self.panel.notebook.GetPage(pos) 
    14431377        grid.on_remove_column(event=None) 
    1444          
     1378 
    14451379    def on_menu_open(self, event): 
    14461380        """ 
     
    14511385            grid = self.panel.notebook.GetPage(pos) 
    14521386            has_data = (grid.data != None and grid.data != {}) 
    1453             self.open_excel_menu.Enable(has_data)  
    1454             self.save_menu.Enable(has_data)  
    1455              
     1387            self.open_excel_menu.Enable(has_data) 
     1388            self.save_menu.Enable(has_data) 
     1389 
    14561390        if self.edit == event.GetMenu(): 
    14571391            #get the selected column 
     
    14701404            self.copy_menu.Enable(has_selection) 
    14711405            self.clear_menu.Enable(has_selection) 
    1472          
     1406 
    14731407            if len(col_list) > 0: 
    14741408                self.remove_menu.Enable(True) 
     
    14851419                self.insertb_sub_menu.Enable(True) 
    14861420                self.inserta_sub_menu.Enable(True) 
    1487                  
     1421 
    14881422                col = col_list[0] 
    14891423                col_name = grid.GetCellValue(row=0, col=col) 
     
    14921426                for item in self.insert_before_menu.GetMenuItems(): 
    14931427                    self.insert_before_menu.DeleteItem(item) 
    1494                 grid.insert_col_menu(menu=self.insert_before_menu,  
     1428                grid.insert_col_menu(menu=self.insert_before_menu, 
    14951429                                     label=col_name, window=self) 
    14961430                label = "Insert Column After " + str(col_name) 
     
    14981432                for item in self.insert_after_menu.GetMenuItems(): 
    14991433                    self.insert_after_menu.DeleteItem(item) 
    1500                 grid.insert_after_col_menu(menu=self.insert_after_menu,  
    1501                                      label=col_name, window=self) 
     1434                grid.insert_after_col_menu(menu=self.insert_after_menu, 
     1435                                           label=col_name, window=self) 
    15021436        event.Skip() 
    1503          
    1504    
    1505          
     1437 
     1438 
     1439 
    15061440    def on_save_page(self, event): 
    15071441        """ 
     
    15141448                name = self.panel.notebook.GetPageText(pos) 
    15151449                msg = " %s has not data to save" % str(name) 
    1516                 wx.PostEvent(self.parent,  
    1517                              StatusEvent(status=msg, info="error"))  
    1518             
     1450                wx.PostEvent(self.parent, 
     1451                             StatusEvent(status=msg, info="error")) 
     1452 
    15191453                return 
    15201454            reader, ext = os.path.splitext(grid.file_name) 
    15211455            path = None 
    1522             if self.parent is not None:  
     1456            if self.parent is not None: 
    15231457                location = os.path.dirname(grid.file_name) 
    15241458                dlg = wx.FileDialog(self, "Save Project file", 
    1525                             location, grid.file_name, ext, wx.SAVE) 
     1459                                    location, grid.file_name, ext, wx.SAVE) 
    15261460                path = None 
    15271461                if dlg.ShowModal() == wx.ID_OK: 
     
    15311465                    if self.parent is not None: 
    15321466                        data = grid.get_grid_view() 
    1533                         self.parent.write_batch_tofile(data=data,  
    1534                                                file_name=path, 
    1535                                                details=grid.details) 
    1536      
     1467                        self.parent.write_batch_tofile(data=data, 
     1468                                                       file_name=path, 
     1469                                                       details=grid.details) 
     1470 
    15371471    def on_open(self, event): 
    15381472        """ 
     
    15411475        if self.parent is not None: 
    15421476            self.parent.on_read_batch_tofile(self) 
    1543              
     1477 
    15441478    def open_with_excel(self, event): 
    15451479        """ 
     
    15541488                name = self.panel.notebook.GetPageText(pos) 
    15551489                msg = " %s has not data to open on excel" % str(name) 
    1556                 wx.PostEvent(self.parent,  
    1557                              StatusEvent(status=msg, info="error"))  
    1558             
     1490                wx.PostEvent(self.parent, 
     1491                             StatusEvent(status=msg, info="error")) 
     1492 
    15591493                return 
    15601494            self.parent.open_with_externalapp(data=data, 
    1561                                               file_name=grid.file_name,  
     1495                                              file_name=grid.file_name, 
    15621496                                              details=grid.details) 
    1563              
     1497 
    15641498    def on_close(self, event): 
    15651499        """ 
    15661500        """ 
    15671501        self.Hide() 
    1568          
     1502 
    15691503    def on_append_column(self, event): 
    15701504        """ 
     
    15721506        """ 
    15731507        self.panel.add_column() 
    1574          
     1508 
    15751509    def set_data(self, data_inputs, data_outputs, details="", file_name=None): 
    15761510        """ 
    15771511        Set data 
    15781512        """ 
    1579         self.panel.notebook.set_data(data_inputs=data_inputs,  
    1580                             file_name=file_name, 
    1581                             details=details, 
    1582                             data_outputs=data_outputs) 
     1513        self.panel.notebook.set_data(data_inputs=data_inputs, 
     1514                                     file_name=file_name, 
     1515                                     details=details, 
     1516                                     data_outputs=data_outputs) 
    15831517 
    15841518    def add_table(self, event): 
     
    15871521        """ 
    15881522        # DO not event.Skip(): it will make 2 pages 
    1589         self.panel.notebook.add_empty_page()       
    1590        
     1523        self.panel.notebook.add_empty_page() 
     1524 
    15911525class BatchOutputFrame(wx.Frame): 
    15921526    """ 
     
    15971531        """ 
    15981532        :param parent: Window instantiating this dialog 
    1599         :param result: result to display in a grid or export to an external  
     1533        :param result: result to display in a grid or export to an external 
    16001534                application. 
    16011535        """ 
    1602         #kwds['style'] = wx.CAPTION|wx.SYSTEM_MENU  
     1536        #kwds['style'] = wx.CAPTION|wx.SYSTEM_MENU 
    16031537        wx.Frame.__init__(self, parent, *args, **kwds) 
    16041538        self.parent = parent 
     
    16171551        self.save_to_file = None 
    16181552        self._do_layout() 
    1619      
     1553 
    16201554    def _do_layout(self): 
    16211555        """ 
     
    16271561        selection_sizer = wx.GridBagSizer(5, 5) 
    16281562        button_sizer = wx.BoxSizer(wx.HORIZONTAL) 
    1629         text = "Open with %s" % self.parent.application_name  
    1630         self.local_app_selected = wx.RadioButton(self.panel, -1, text, 
    1631                                                 style=wx.RB_GROUP) 
     1563        text = "Open with %s" % self.parent.application_name 
     1564        self.local_app_selected = wx.RadioButton(self.panel, -1, text, style=wx.RB_GROUP) 
    16321565        self.Bind(wx.EVT_RADIOBUTTON, self.onselect, 
    1633                     id=self.local_app_selected.GetId()) 
     1566                  id=self.local_app_selected.GetId()) 
    16341567        text = "Open with Excel" 
    1635         self.external_app_selected  = wx.RadioButton(self.panel, -1, text) 
    1636         self.Bind(wx.EVT_RADIOBUTTON, self.onselect, 
    1637                     id=self.external_app_selected.GetId()) 
     1568        self.external_app_selected = wx.RadioButton(self.panel, -1, text) 
     1569        self.Bind(wx.EVT_RADIOBUTTON, self.onselect, id=self.external_app_selected.GetId()) 
    16381570        text = "Save to File" 
    16391571        self.save_to_file = wx.CheckBox(self.panel, -1, text) 
    1640         self.Bind(wx.EVT_CHECKBOX, self.onselect, 
    1641                     id=self.save_to_file.GetId()) 
     1572        self.Bind(wx.EVT_CHECKBOX, self.onselect, id=self.save_to_file.GetId()) 
    16421573        self.local_app_selected.SetValue(True) 
    16431574        self.external_app_selected.SetValue(False) 
    16441575        self.save_to_file.SetValue(False) 
    16451576        button_close = wx.Button(self.panel, -1, "Close") 
    1646         button_close.Bind(wx.EVT_BUTTON, id=button_close.GetId(), 
    1647                            handler=self.on_close) 
     1577        button_close.Bind(wx.EVT_BUTTON, id=button_close.GetId(), handler=self.on_close) 
    16481578        button_apply = wx.Button(self.panel, -1, "Apply") 
    1649         button_apply.Bind(wx.EVT_BUTTON, id=button_apply.GetId(), 
    1650                         handler=self.on_apply) 
     1579        button_apply.Bind(wx.EVT_BUTTON, id=button_apply.GetId(), handler=self.on_apply) 
    16511580        button_apply.SetFocus() 
    16521581        hint = "" 
     
    16571586        iy = 0 
    16581587        selection_sizer.Add(self.local_app_selected, (iy, ix), 
    1659                            (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     1588                            (1, 1), wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    16601589        iy += 1 
    16611590        selection_sizer.Add(self.external_app_selected, (iy, ix), 
    1662                            (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     1591                            (1, 1), wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    16631592        iy += 1 
    16641593        selection_sizer.Add(self.save_to_file, (iy, ix), 
    1665                            (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     1594                            (1, 1), wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    16661595        #contruction the sizer contaning button 
    1667         button_sizer.Add((20, 20), 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     1596        button_sizer.Add((20, 20), 1, wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    16681597 
    16691598        button_sizer.Add(button_close, 0, 
    1670                         wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     1599                         wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    16711600        button_sizer.Add(button_apply, 0, 
    1672                                 wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10) 
    1673         vbox.Add(hint_sizer, 0, wx.EXPAND|wx.ALL, 10) 
    1674         vbox.Add(wx.StaticLine(self.panel, -1),  0, wx.EXPAND, 0) 
    1675         vbox.Add(button_sizer, 0, wx.TOP|wx.BOTTOM, 10) 
     1601                         wx.LEFT | wx.RIGHT | wx.ADJUST_MINSIZE, 10) 
     1602        vbox.Add(hint_sizer, 0, wx.EXPAND | wx.ALL, 10) 
     1603        vbox.Add(wx.StaticLine(self.panel, -1), 0, wx.EXPAND, 0) 
     1604        vbox.Add(button_sizer, 0, wx.TOP | wx.BOTTOM, 10) 
    16761605        self.SetSizer(vbox) 
    1677          
     1606 
    16781607    def on_apply(self, event): 
    16791608        """ 
     
    16841613                                           data_outputs=self.data_outputs) 
    16851614        elif self.flag == 2: 
    1686             self.parent.open_with_externalapp(data=self.data,  
     1615            self.parent.open_with_externalapp(data=self.data, 
    16871616                                              file_name=self.file_name, 
    16881617                                              details=self.details) 
     
    16921621        """ 
    16931622        self.Close() 
    1694          
     1623 
    16951624    def onselect(self, event=None): 
    16961625        """ 
    16971626        Receive event and display data into third party application 
    16981627        or save data to file. 
    1699          
     1628 
    17001629        """ 
    17011630        if self.save_to_file.GetValue(): 
    1702             reader, ext = os.path.splitext(self.file_name) 
     1631            _, ext = os.path.splitext(self.file_name) 
    17031632            path = None 
    17041633            location = os.getcwd() 
    1705             if self.parent is not None:  
     1634            if self.parent is not None: 
    17061635                location = os.path.dirname(self.file_name) 
    17071636                dlg = wx.FileDialog(self, "Save Project file", 
    1708                             location, self.file_name, ext, wx.SAVE) 
     1637                                    location, self.file_name, ext, wx.SAVE) 
    17091638                path = None 
    17101639                if dlg.ShowModal() == wx.ID_OK: 
     
    17131642                if path != None: 
    17141643                    if self.parent is not None and  self.data is not None: 
    1715                         self.parent.write_batch_tofile(data=self.data,  
     1644                        self.parent.write_batch_tofile(data=self.data, 
    17161645                                                       file_name=path, 
    17171646                                                       details=self.details) 
     
    17211650            self.flag = 2 
    17221651        return self.flag 
    1723      
    1724    
    1725          
     1652 
     1653 
     1654 
    17261655if __name__ == "__main__": 
    17271656    app = wx.App() 
    1728     
     1657 
    17291658    try: 
    17301659        data = {} 
     
    17321661        for i in range(4): 
    17331662            j += 1 
    1734             data["index"+str(i)] = [i/j, i*j, i, i+j] 
    1735          
    1736         data_input =  copy.deepcopy(data)    
     1663            data["index" + str(i)] = [i / j, i * j, i, i + j] 
     1664 
     1665        data_input = copy.deepcopy(data) 
    17371666        data_input["index5"] = [10, 20, 40, 50] 
    17381667        frame = GridFrame(data_outputs=data, data_inputs=data_input) 
     
    17401669    except: 
    17411670        print sys.exc_value 
    1742          
     1671 
    17431672    app.MainLoop() 
Note: See TracChangeset for help on using the changeset viewer.