source: orange/orange/OrangeWidgets/Prototypes/OWAddRowIds.py @ 9546:2b6cc6f397fe

Revision 9546:2b6cc6f397fe, 1.5 KB checked in by ales_erjavec <ales.erjavec@…>, 2 years ago (diff)

Renamed widget channel names in line with the new naming rules/convention.
Added backwards compatibility in orngDoc loadDocument to enable loading of schemas saved before the change.

Line 
1"""<name>Add Row Ids</name>
2<description>Add unique row ids to the data table</description>
3<contact>ales.erjavec(@ at @)fri.uni-lj.si</contact>
4"""
5
6import sys
7import uuid
8
9from OWWidget import *
10import OWGUI
11import Orange
12
13class OWAddRowIds(OWWidget):   
14    def __init__(self, parent=None, signalManager=None, title="Add row ids"):
15        OWWidget.__init__(self, parent, signalManager, title, wantMainArea=False)
16       
17        self.inputs = [("Data", Orange.data.Table, self.set_table)]
18        self.outputs = [("Data", Orange.data.Table)]
19       
20        self.use_guid = False
21       
22        OWGUI.checkBox(self.controlArea, self, "use_guid", 
23                       label="Use unique global identifiers", 
24                       tooltip="Use unique global identifiers. Identifiers will\
25be unique across all widget istances and orange sessions.", 
26                       callback=self.commit
27                       )
28        self.table = None
29       
30    def set_table(self, table=None):
31        self.table = table
32        self.commit()
33       
34    def commit(self):
35        from Orange.data import utils
36        if self.table is not None:
37            table = Orange.data.Table(self.table)
38            if self.use_guid:
39                utils.add_row_id(table, utils.uuid_generator())
40            else:
41                utils.add_row_id(table, utils.range_generator())
42        else:
43            table = None
44           
45        self.send("Data", table)
46           
47           
48               
49           
50       
51   
Note: See TracBrowser for help on using the repository browser.