Skip to content

Commit f4599f1

Browse files
committed
[processing][gdal] Better error messages when invalid parameters are passed
1 parent 787dd34 commit f4599f1

28 files changed

+142
-34
lines changed

python/plugins/processing/algs/gdal/AssignProjection.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929

3030
from qgis.PyQt.QtGui import QIcon
3131

32-
from qgis.core import (QgsProcessingParameterRasterLayer,
32+
from qgis.core import (QgsProcessingException,
33+
QgsProcessingParameterRasterLayer,
3334
QgsProcessingParameterCrs,
3435
QgsProcessingOutputRasterLayer)
3536
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
@@ -78,6 +79,9 @@ def commandName(self):
7879

7980
def getConsoleCommands(self, parameters, context, feedback, executing=True):
8081
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
82+
if inLayer is None:
83+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
84+
8185
fileName = inLayer.source()
8286

8387
crs = self.parameterAsCrs(parameters, self.CRS, context).authid()

python/plugins/processing/algs/gdal/ClipRasterByExtent.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from qgis.PyQt.QtGui import QIcon
3131

3232
from qgis.core import (QgsRasterFileWriter,
33+
QgsProcessingException,
3334
QgsProcessingParameterDefinition,
3435
QgsProcessingParameterRasterLayer,
3536
QgsProcessingParameterEnum,
@@ -110,6 +111,9 @@ def commandName(self):
110111

111112
def getConsoleCommands(self, parameters, context, feedback, executing=True):
112113
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
114+
if inLayer is None:
115+
raise QgsProcessingException('Invalid input layer {}'.format(parameters[self.INPUT] if self.INPUT in parameters else 'INPUT'))
116+
113117
bbox = self.parameterAsExtent(parameters, self.EXTENT, context, inLayer.crs())
114118
if self.NODATA in parameters and parameters[self.NODATA] is not None:
115119
nodata = self.parameterAsDouble(parameters, self.NODATA, context)

python/plugins/processing/algs/gdal/ClipRasterByMask.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
from qgis.core import (QgsRasterFileWriter,
3333
QgsProcessing,
34+
QgsProcessingException,
3435
QgsProcessingParameterDefinition,
3536
QgsProcessingParameterFeatureSource,
3637
QgsProcessingParameterRasterLayer,
@@ -124,6 +125,8 @@ def commandName(self):
124125

125126
def getConsoleCommands(self, parameters, context, feedback, executing=True):
126127
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
128+
if inLayer is None:
129+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
127130

128131
maskLayer, maskLayerName = self.getOgrCompatibleSource(self.MASK, parameters, context, feedback, executing)
129132

python/plugins/processing/algs/gdal/ColorRelief.py

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

2828
import os
2929
from qgis.core import (QgsRasterFileWriter,
30+
QgsProcessingException,
3031
QgsProcessingParameterDefinition,
3132
QgsProcessingParameterRasterLayer,
3233
QgsProcessingParameterBand,
@@ -102,6 +103,9 @@ def commandName(self):
102103
def getConsoleCommands(self, parameters, context, feedback, executing=True):
103104
arguments = ['color-relief']
104105
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
106+
if inLayer is None:
107+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
108+
105109
arguments.append(inLayer.source())
106110
arguments.append(self.parameterAsFile(parameters, self.COLOR_TABLE, context))
107111

python/plugins/processing/algs/gdal/OgrToPostGis.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525

2626
__revision__ = '$Format:%H$'
2727

28-
from qgis.core import (QgsProcessingParameterFeatureSource,
28+
from qgis.core import (QgsProcessingException,
29+
QgsProcessingParameterFeatureSource,
2930
QgsProcessingParameterString,
3031
QgsProcessingParameterEnum,
3132
QgsProcessingParameterCrs,
@@ -189,6 +190,9 @@ def getConnectionString(self, parameters, context):
189190

190191
def getConsoleCommands(self, parameters, context, feedback, executing=True):
191192
ogrLayer, layername = self.getOgrCompatibleSource(self.INPUT, parameters, context, feedback, executing)
193+
if not layername:
194+
raise QgsProcessingException(self.invalidSourceError(parameters, self.INPUT))
195+
192196
shapeEncoding = self.parameterAsString(parameters, self.SHAPE_ENCODING, context)
193197
ssrs = self.parameterAsCrs(parameters, self.S_SRS, context).authid()
194198
tsrs = self.parameterAsCrs(parameters, self.T_SRS, context).authid()

python/plugins/processing/algs/gdal/aspect.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727

2828
import os
2929

30-
from qgis.core import (QgsRasterFileWriter,
30+
from qgis.core import (QgsProcessingException,
31+
QgsRasterFileWriter,
3132
QgsProcessingParameterDefinition,
3233
QgsProcessingParameterRasterLayer,
3334
QgsProcessingParameterBand,
@@ -102,6 +103,8 @@ def commandName(self):
102103
def getConsoleCommands(self, parameters, context, feedback, executing=True):
103104
arguments = ['aspect']
104105
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
106+
if inLayer is None:
107+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
105108
arguments.append(inLayer.source())
106109

107110
out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)

python/plugins/processing/algs/gdal/contour.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from qgis.PyQt.QtGui import QIcon
3131

3232
from qgis.core import (QgsProcessing,
33+
QgsProcessingException,
3334
QgsProcessingParameterDefinition,
3435
QgsProcessingParameterRasterLayer,
3536
QgsProcessingParameterBand,
@@ -126,6 +127,9 @@ def commandName(self):
126127

127128
def getConsoleCommands(self, parameters, context, feedback, executing=True):
128129
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
130+
if inLayer is None:
131+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
132+
129133
fieldName = self.parameterAsString(parameters, self.FIELD_NAME, context)
130134
if self.NODATA in parameters and parameters[self.NODATA] is not None:
131135
nodata = self.parameterAsDouble(parameters, self.NODATA, context)

python/plugins/processing/algs/gdal/fillnodata.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import os
2929

3030
from qgis.core import (QgsRasterFileWriter,
31+
QgsProcessingException,
3132
QgsProcessingParameterRasterLayer,
3233
QgsProcessingParameterBand,
3334
QgsProcessingParameterNumber,
@@ -116,7 +117,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
116117
arguments.append('-of')
117118
arguments.append(QgsRasterFileWriter.driverForExtension(os.path.splitext(out)[1]))
118119

119-
arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
120+
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
121+
if raster is None:
122+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
123+
124+
arguments.append(raster.source())
120125
arguments.append(out)
121126

122127
commands = []

python/plugins/processing/algs/gdal/gdal2tiles.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
__revision__ = '$Format:%H$'
2727

2828

29-
from qgis.core import (QgsProcessingParameterDefinition,
29+
from qgis.core import (QgsProcessingException,
30+
QgsProcessingParameterDefinition,
3031
QgsProcessingParameterRasterLayer,
3132
QgsProcessingParameterCrs,
3233
QgsProcessingParameterEnum,
@@ -219,6 +220,9 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
219220
arguments.append('-n')
220221

221222
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
223+
if inLayer is None:
224+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
225+
222226
arguments.append(inLayer.source())
223227
arguments.append(self.parameterAsString(parameters, self.OUTPUT, context))
224228

python/plugins/processing/algs/gdal/gdal2xyz.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
__revision__ = '$Format:%H$'
2727

2828
from qgis.core import (QgsProcessing,
29+
QgsProcessingException,
2930
QgsProcessingParameterRasterLayer,
3031
QgsProcessingParameterBand,
3132
QgsProcessingParameterBoolean,
@@ -82,7 +83,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
8283
if self.parameterAsBool(parameters, self.CSV, context):
8384
arguments.append('-csv')
8485

85-
arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
86+
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
87+
if raster is None:
88+
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
89+
90+
arguments.append(raster.source())
8691
arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))
8792

8893
commands = []

0 commit comments

Comments
 (0)