Changeset 11432:4bc3d242eb5f in orange


Ignore:
Timestamp:
04/02/13 12:25:54 (13 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Handle multitarget domain (class_vars).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Data/OWEditDomain.py

    r11430 r11432  
    157157        self.labels_edit.setModel(self.labels_model) 
    158158 
    159         self.labels_edit.selectionModel().selectionChanged.connect(\ 
    160                                     self.on_label_selection_changed) 
     159        self.labels_edit.selectionModel().selectionChanged.connect( 
     160            self.on_label_selection_changed) 
    161161 
    162162        # Necessary signals to know when the labels change 
     
    461461        if data is not None: 
    462462            input_domain = data.domain 
    463             all_vars = list(input_domain.variables) + \ 
    464                        input_domain.getmetas().values() 
     463            all_vars = (list(input_domain.variables) + 
     464                        list(input_domain.class_vars) + 
     465                        input_domain.getmetas().values()) 
    465466 
    466467            self.openContext("", data) 
     
    638639        new_data = None 
    639640        if self.data is not None: 
    640             new_vars = list(self.domain_model) 
    641             variables = new_vars[: len(self.input_domain.variables)] 
     641            n_vars = len(self.input_domain.variables) 
     642            n_class_vars = len(self.input_domain.class_vars) 
     643            all_new_vars = list(self.domain_model) 
     644            variables = all_new_vars[: n_vars] 
    642645            class_var = None 
    643646            if self.input_domain.class_var: 
    644647                class_var = variables[-1] 
    645                 variables = variables[:-1] 
    646  
    647             new_metas = new_vars[len(self.input_domain.variables):] 
    648             new_domain = Orange.data.Domain(variables, class_var) 
     648                attributes = variables[:-1] 
     649            else: 
     650                attributes = variables 
     651 
     652            class_vars = all_new_vars[n_vars: n_vars + n_class_vars] 
     653            new_metas = all_new_vars[n_vars + n_class_vars:] 
     654            new_domain = Orange.data.Domain(attributes, class_var, 
     655                                            class_vars=class_vars) 
    649656 
    650657            # Assumes getmetas().items() order has not changed. 
    651658            # TODO: store metaids in set_data method 
    652659            for (mid, _), new in zip(self.input_domain.getmetas().items(), 
    653                                        new_metas): 
     660                                     new_metas): 
    654661                new_domain.addmeta(mid, new) 
    655662 
Note: See TracChangeset for help on using the changeset viewer.