From 9efc56269ef6269fd752138d9c90b7f5a71268a0 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Thu, 16 Jul 2009 06:56:39 +0000 Subject: [PATCH] comments and cleanup in about.py git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@207 014f5005-505e-4b48-8d0a-63407b615a7c --- CHANGELOG | 2 +- relational/optimizations.py | 7 +++---- relational_gui/about.py | 5 +---- relational_gui/maingui.py | 8 +++++++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 155ce3f..8203e1f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -90,4 +90,4 @@ - Selection can now accept expressions with parenthesis 0.11 -- Font is set only on windows \ No newline at end of file +- Font is set only on windows (Rev 206) \ No newline at end of file diff --git a/relational/optimizations.py b/relational/optimizations.py index d378d00..38de030 100644 --- a/relational/optimizations.py +++ b/relational/optimizations.py @@ -67,9 +67,9 @@ def recoursive_scan(function,node,rels=None): def duplicated_select(n): - changes=0 '''This function locates and deletes things like σ a ( σ a(C)) and the ones like σ a ( σ b(C))''' + changes=0 if n.name=='σ' and n.child.name=='σ': if n.prop != n.child.prop: #Nested but different, joining them n.prop = n.prop + " and " + n.child.prop @@ -84,7 +84,7 @@ def futile_union_intersection_subtraction(n): σ k (r) ᑌ r with r σ k (r) ᑎ r with σ k (r) ''' - #TODO document into the wiki + changes=0 if n.name in ('ᑌ','ᑎ') and n.left==n.right: @@ -102,6 +102,7 @@ def futile_union_intersection_subtraction(n): replace_node(n,n.left) else: replace_node(n,n.right) + #TODO make work the following line... #elif (n.name == '-' and ((n.left.name=='σ' and n.left.child==n.right) or (n.right.name=='σ' and n.right.child==n.left))): #Intersection of two equal things, but one has a selection elif n.name=='-' and n.left==n.right:#Empty relation changes=1 @@ -175,7 +176,6 @@ def swap_union_renames(n): and replaces them with ρ a➡b(R ᑌ Q). Does the same with subtraction and intersection''' - #TODO document into the wiki changes=0 if n.name in ('-','ᑌ','ᑎ') and n.left.name==n.right.name and n.left.name=='ρ': @@ -374,7 +374,6 @@ def swap_rename_projection(n): and more important, will hopefully allow further optimizations. Will also eliminate fields in the rename that are cutted in the projection. ''' - #TODO document into the wiki changes=0 if n.name=='π' and n.child.name=='ρ': diff --git a/relational_gui/about.py b/relational_gui/about.py index 4b8c5a4..d1ed387 100644 --- a/relational_gui/about.py +++ b/relational_gui/about.py @@ -110,10 +110,7 @@ class Ui_Dialog(object): self.tabWidget.setCurrentIndex(0) QtCore.QObject.connect(self.buttonBox,QtCore.SIGNAL("accepted()"),Dialog.accept) QtCore.QObject.connect(self.buttonBox,QtCore.SIGNAL("rejected()"),Dialog.reject) - #QtCore.QObject.connect(self.label_4,QtCore.SIGNAL("linkActivated()"),self.openSite) QtCore.QMetaObject.connectSlotsByName(Dialog) - def openSite(self): - print "ciao" def retranslateUi(self, Dialog): Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Documentation", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", "Relational", None, QtGui.QApplication.UnicodeUTF8)) @@ -121,7 +118,7 @@ class Ui_Dialog(object): self.label_3.setText(QtGui.QApplication.translate("Dialog", "Version "+version, None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.groupBox_3.setTitle(QtGui.QApplication.translate("Dialog", "Author", None, QtGui.QApplication.UnicodeUTF8)) - if os.name=='nt': + if os.name=='nt': #Differentiates acknowledgements depending on the system self.label_2.setText(QtGui.QApplication.translate("Dialog", "Salvo \"LtWorf\" Tomaselli \nEmilio Di Prima (For the windows version)", None, QtGui.QApplication.UnicodeUTF8)) else: self.label_2.setText(QtGui.QApplication.translate("Dialog", "Salvo \"LtWorf\" Tomaselli ", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/relational_gui/maingui.py b/relational_gui/maingui.py index a7ad736..37c781d 100644 --- a/relational_gui/maingui.py +++ b/relational_gui/maingui.py @@ -30,7 +30,7 @@ class Ui_Form(object): self.About=None self.Survey=None self.relations={} #Dictionary for relations - self.undo=[] #UndoQueue for relations + self.undo=[] #UndoQueue for queries self.selectedRelation=None def load_query(self,*index): self.txtQuery.setText(self.savedQ.itemData(index[0]).toString()) @@ -44,17 +44,20 @@ class Ui_Form(object): self.savedQ.addItem(res[0],QtCore.QVariant(self.txtQuery.text())) def toggle_advanced(self): + '''Hides or shows the advanced frame''' if self.advancedBox.isVisible(): self.advancedBox.hide() else: self.advancedBox.show() def undo_optimize(self): + '''Undoes the optimization on the query, popping one item from the undo list''' try: self.txtQuery.setText(self.undo.pop()) except:#Nothing to restore pass def optimize(self): + '''Performs all the possible optimizations on the query''' self.undo.insert(len(self.undo),self.txtQuery.text()) #Storing the query in undo list result=optimizer.optimize_all(str(self.txtQuery.text().toUtf8()),self.relations) @@ -62,6 +65,7 @@ class Ui_Form(object): #self.txtQuery.setText(result) def execute(self): + '''Executes the query''' try: #Converting string to utf8 and then from qstring to normal string query=str(self.txtQuery.text().toUtf8()) @@ -83,6 +87,7 @@ class Ui_Form(object): except: QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),QtGui.QApplication.translate("Form", "Check your query!") ) def showRelation(self,rel): + '''Shows the selected relation into the table''' self.table.clear() if rel==None: #No relation to show @@ -110,6 +115,7 @@ class Ui_Form(object): self.showRelation(self.selectedRelation) def showAttributes(self,*other): + '''Shows the attributes of the selected relation''' for i in other: rel=str(i.text().toUtf8()) self.lstAttributes.clear()