Skip to content

Commit 0009040

Browse files
committed
[processing] made postprocessing code more pythonic
1 parent 9ec1d46 commit 0009040

File tree

6 files changed

+48
-59
lines changed

6 files changed

+48
-59
lines changed

python/plugins/processing/gui/AlgorithmClassification.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,8 @@ def loadClassification():
5050
lines.close()
5151

5252
@staticmethod
53-
def classificationFile():
54-
folder = os.path.join(os.path.dirname(__file__), 'help')
55-
f = os.path.join(folder, 'algclasssification.txt')
56-
return f
53+
def classificationFile():
54+
return os.path.join(os.path.join(os.path.dirname(__file__), 'algclasssification.txt')
5755

5856
@staticmethod
5957
def getGroupsAndName(alg):

python/plugins/processing/gui/AlgorithmExecutionDialog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from processing.core.ProcessingLog import ProcessingLog
3838
from processing.core.ProcessingConfig import ProcessingConfig
3939
from processing.core.WrongHelpFileException import WrongHelpFileException
40-
from processing.gui.Postprocessing import Postprocessing
40+
from processing.gui.Postprocessing import handleAlgorithmResults
4141
from processing.gui.UnthreadedAlgorithmExecutor import \
4242
UnthreadedAlgorithmExecutor
4343
from processing.parameters.ParameterRaster import ParameterRaster
@@ -283,7 +283,7 @@ def finish(self):
283283
keepOpen = ProcessingConfig.getSetting(
284284
ProcessingConfig.KEEP_DIALOG_OPEN)
285285
if self.iterateParam is None:
286-
Postprocessing.handleAlgorithmResults(self.alg, self, not keepOpen)
286+
handleAlgorithmResults(self.alg, self, not keepOpen)
287287
self.executed = True
288288
self.setInfo('Algorithm %s finished' % self.alg.name)
289289
QApplication.restoreOverrideCursor()

python/plugins/processing/gui/BatchProcessingDialog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from PyQt4.QtCore import *
3030
from PyQt4.QtGui import *
3131
from processing.core.ProcessingResults import ProcessingResults
32-
from processing.gui.Postprocessing import Postprocessing
32+
from processing.gui.Postprocessing import handleAlgorithmResults
3333
from processing.gui.FileSelectionPanel import FileSelectionPanel
3434
from processing.gui.BatchInputSelectionPanel import BatchInputSelectionPanel
3535
from processing.gui.AlgorithmExecutionDialog import AlgorithmExecutionDialog
@@ -203,7 +203,7 @@ def accept(self):
203203
if UnthreadedAlgorithmExecutor.runalg(alg, self) \
204204
and not self.canceled:
205205
if self.load[i]:
206-
Postprocessing.handleAlgorithmResults(alg, self, False)
206+
handleAlgorithmResults(alg, self, False)
207207
else:
208208
QApplication.restoreOverrideCursor()
209209
return

python/plugins/processing/gui/Postprocessing.py

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -39,45 +39,41 @@
3939
from processing.outputs.OutputHTML import OutputHTML
4040
from processing.tools import dataobjects
4141

42-
43-
class Postprocessing:
44-
45-
@staticmethod
46-
def handleAlgorithmResults(alg, progress, showResults=True):
47-
wrongLayers = []
48-
htmlResults = False
49-
progress.setText('Loading resulting layers')
50-
i = 0
51-
for out in alg.outputs:
52-
progress.setPercentage(100 * i / float(len(alg.outputs)))
53-
if out.hidden or not out.open:
54-
continue
55-
if isinstance(out, (OutputRaster, OutputVector, OutputTable)):
56-
try:
57-
if out.value.startswith('memory:'):
58-
layer = out.memoryLayer
59-
QgsMapLayerRegistry.instance().addMapLayers([layer])
42+
def handleAlgorithmResults(alg, progress, showResults=True):
43+
wrongLayers = []
44+
htmlResults = False
45+
progress.setText('Loading resulting layers')
46+
i = 0
47+
for out in alg.outputs:
48+
progress.setPercentage(100 * i / float(len(alg.outputs)))
49+
if out.hidden or not out.open:
50+
continue
51+
if isinstance(out, (OutputRaster, OutputVector, OutputTable)):
52+
try:
53+
if out.value.startswith('memory:'):
54+
layer = out.memoryLayer
55+
QgsMapLayerRegistry.instance().addMapLayers([layer])
56+
else:
57+
if ProcessingConfig.getSetting(
58+
ProcessingConfig.USE_FILENAME_AS_LAYER_NAME):
59+
name = os.path.basename(out.value)
6060
else:
61-
if ProcessingConfig.getSetting(
62-
ProcessingConfig.USE_FILENAME_AS_LAYER_NAME):
63-
name = os.path.basename(out.value)
64-
else:
65-
name = out.description
66-
dataobjects.load(out.value, name, alg.crs,
67-
RenderingStyles.getStyle(alg.commandLineName(),
68-
out.name))
69-
except Exception, e:
70-
wrongLayers.append(out)
71-
elif isinstance(out, OutputHTML):
72-
ProcessingResults.addResult(out.description, out.value)
73-
htmlResults = True
74-
i += 1
75-
if wrongLayers:
76-
QApplication.restoreOverrideCursor()
77-
dlg = CouldNotLoadResultsDialog(wrongLayers, alg)
78-
dlg.exec_()
61+
name = out.description
62+
dataobjects.load(out.value, name, alg.crs,
63+
RenderingStyles.getStyle(alg.commandLineName(),
64+
out.name))
65+
except Exception, e:
66+
wrongLayers.append(out)
67+
elif isinstance(out, OutputHTML):
68+
ProcessingResults.addResult(out.description, out.value)
69+
htmlResults = True
70+
i += 1
71+
if wrongLayers:
72+
QApplication.restoreOverrideCursor()
73+
dlg = CouldNotLoadResultsDialog(wrongLayers, alg)
74+
dlg.exec_()
7975

80-
if showResults and htmlResults and not wrongLayers:
81-
QApplication.restoreOverrideCursor()
82-
dlg = ResultsDialog()
83-
dlg.exec_()
76+
if showResults and htmlResults and not wrongLayers:
77+
QApplication.restoreOverrideCursor()
78+
dlg = ResultsDialog()
79+
dlg.exec_()

python/plugins/processing/gui/UnthreadedAlgorithmExecutor.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from processing.core.ProcessingLog import ProcessingLog
3333
from processing.core.GeoAlgorithmExecutionException import \
3434
GeoAlgorithmExecutionException
35-
from processing.gui.Postprocessing import Postprocessing
35+
from processing.gui.Postprocessing import handleAlgorithmResults
3636
from processing.tools import dataobjects
3737
from processing.tools.system import *
3838
from processing.tools import vector
@@ -87,9 +87,8 @@ def runalgIterating(alg, paramToIter, progress):
8787
for out in alg.outputs:
8888
outputs[out.name] = out.value
8989

90-
# now run all the algorithms
91-
i = 1
92-
for f in filelist:
90+
# now run all the algorithms
91+
for i,f in enumerate(filelist):
9392
alg.setParameterValue(paramToIter, f)
9493
for out in alg.outputs:
9594
filename = outputs[out.name]
@@ -101,9 +100,7 @@ def runalgIterating(alg, paramToIter, progress):
101100
+ str(len(filelist)) + '...')
102101
progress.setPercentage(i * 100 / len(filelist))
103102
if UnthreadedAlgorithmExecutor.runalg(alg, SilentProgress()):
104-
Postprocessing.handleAlgorithmResults(alg, SilentProgress(),
105-
False)
106-
i += 1
103+
handleAlgorithmResults(alg, SilentProgress(), False)
107104
else:
108105
return False
109106

python/plugins/processing/tools/general.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
from qgis.core import *
2929
from processing.core.Processing import Processing
30-
from processing.gui.Postprocessing import Postprocessing
30+
from processing.gui.Postprocessing import handleAlgorithmResults
3131
from processing.parameters.ParameterSelection import ParameterSelection
3232

3333

@@ -74,6 +74,4 @@ def runalg(algOrName, *args):
7474

7575

7676
def runandload(name, *args):
77-
return Processing.runAlgorithm(name,
78-
Postprocessing.handleAlgorithmResults,
79-
*args)
77+
return Processing.runAlgorithm(name, handleAlgorithmResults, *args)

0 commit comments

Comments
 (0)