source: orange/orange/OrangeWidgets/Prototypes/OWAddRowIds.py @ 9122:bc73a69830f9

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

Moved group_by function to Orange.data.utils

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 = [("Input Table", Orange.data.Table, self.set_table)]
18        self.outputs = [("Output Table", 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("Output Table", table)
46           
47           
48               
49           
50       
51   
Note: See TracBrowser for help on using the repository browser.