Skip to content

Commit 249dca7

Browse files
committed
[processing] Consist helpful error messages when sinks cannot be created
And throw exceptions always when sinks are not created to avoid generic errors
1 parent 5339d62 commit 249dca7

File tree

73 files changed

+148
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+148
-20
lines changed

python/plugins/processing/algs/qgis/Aggregate.py

+2
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,8 @@ def processAlgorithm(self, parameters, context, feedback):
224224
self.fields,
225225
QgsWkbTypes.multiType(source.wkbType()),
226226
source.sourceCrs())
227+
if sink is None:
228+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
227229

228230
# Calculate aggregates on memory layers
229231
if len(keys):

python/plugins/processing/algs/qgis/ConcaveHull.py

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ def processAlgorithm(self, parameters, context, feedback):
144144

145145
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
146146
layer.fields(), QgsWkbTypes.Polygon, layer.sourceCrs())
147+
if sink is None:
148+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
147149

148150
geom = feat.geometry()
149151
if no_multigeom and geom.isMultipart():

python/plugins/processing/algs/qgis/Delaunay.py

+2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ def processAlgorithm(self, parameters, context, feedback):
8989

9090
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9191
fields, QgsWkbTypes.Polygon, source.sourceCrs())
92+
if sink is None:
93+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
9294

9395
pts = []
9496
ptDict = {}

python/plugins/processing/algs/qgis/DeleteDuplicateGeometries.py

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def processAlgorithm(self, parameters, context, feedback):
6565

6666
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
6767
source.fields(), source.wkbType(), source.sourceCrs())
68+
if sink is None:
69+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
6870

6971
features = source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]))
7072
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/EliminateSelection.py

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ def processAlgorithm(self, parameters, context, feedback):
103103

104104
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
105105
inLayer.fields(), inLayer.wkbType(), inLayer.sourceCrs())
106+
if sink is None:
107+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
106108

107109
for aFeat in inLayer.getFeatures():
108110
if feedback.isCanceled():

python/plugins/processing/algs/qgis/ExecuteSQL.py

+2
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ def processAlgorithm(self, parameters, context, feedback):
158158

159159
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
160160
vLayer.fields(), vLayer.wkbType() if geometry_type != 1 else 1, vLayer.crs())
161+
if sink is None:
162+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
161163

162164
features = vLayer.getFeatures()
163165
total = 100.0 / vLayer.featureCount() if vLayer.featureCount() else 0

python/plugins/processing/algs/qgis/ExportGeometryInfo.py

+2
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ def processAlgorithm(self, parameters, context, feedback):
123123
fields = QgsProcessingUtils.combineFields(fields, new_fields)
124124
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
125125
fields, wkb_type, source.sourceCrs())
126+
if sink is None:
127+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
126128

127129
coordTransform = None
128130

python/plugins/processing/algs/qgis/ExtentFromLayer.py

+3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
QgsFeature,
3737
QgsWkbTypes,
3838
QgsProcessing,
39+
QgsProcessingException,
3940
QgsProcessingParameterMapLayer,
4041
QgsProcessingParameterFeatureSink,
4142
QgsFields)
@@ -94,6 +95,8 @@ def processAlgorithm(self, parameters, context, feedback):
9495

9596
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9697
fields, QgsWkbTypes.Polygon, layer.crs())
98+
if sink is None:
99+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
97100

98101
try:
99102
# may not be possible

python/plugins/processing/algs/qgis/ExtractSpecificVertices.py

+2
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ def processAlgorithm(self, parameters, context, feedback):
9898

9999
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
100100
fields, wkb_type, source.sourceCrs())
101+
if sink is None:
102+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
101103

102104
vertex_indices_string = self.parameterAsString(parameters, self.VERTICES, context)
103105
indices = []

python/plugins/processing/algs/qgis/FieldPyculator.py

+2
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ def processAlgorithm(self, parameters, context, feedback):
108108

109109
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
110110
fields, source.wkbType(), source.sourceCrs())
111+
if sink is None:
112+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
111113

112114
# Run global code
113115
if globalExpression.strip() != '':

python/plugins/processing/algs/qgis/FieldsCalculator.py

+2
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ def processAlgorithm(self, parameters, context, feedback):
121121

122122
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
123123
fields, source.wkbType(), source.sourceCrs())
124+
if sink is None:
125+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
124126

125127
exp_context = self.createExpressionContext(parameters, context)
126128
if layer is not None:

python/plugins/processing/algs/qgis/FindProjection.py

+2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ def processAlgorithm(self, parameters, context, feedback):
100100

101101
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
102102
fields, QgsWkbTypes.NoGeometry, QgsCoordinateReferenceSystem())
103+
if sink is None:
104+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
103105

104106
# make intersection tests nice and fast
105107
engine = QgsGeometry.createGeometryEngine(target_geom.constGet())

python/plugins/processing/algs/qgis/GeometryConvert.py

+2
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ def processAlgorithm(self, parameters, context, feedback):
111111

112112
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
113113
source.fields(), newType, source.sourceCrs())
114+
if sink is None:
115+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
114116

115117
features = source.getFeatures()
116118
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/Grid.py

+2
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ def processAlgorithm(self, parameters, context, feedback):
156156
outputWkb = QgsWkbTypes.Polygon
157157
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
158158
fields, outputWkb, crs)
159+
if sink is None:
160+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
159161

160162
if idx == 0:
161163
self._pointGrid(

python/plugins/processing/algs/qgis/HubDistanceLines.py

+2
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ def processAlgorithm(self, parameters, context, feedback):
119119

120120
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
121121
fields, QgsWkbTypes.LineString, point_source.sourceCrs())
122+
if sink is None:
123+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
122124

123125
index = QgsSpatialIndex(hub_source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]).setDestinationCrs(point_source.sourceCrs(), context.transformContext())))
124126

python/plugins/processing/algs/qgis/HubDistancePoints.py

+2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ def processAlgorithm(self, parameters, context, feedback):
115115

116116
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
117117
fields, QgsWkbTypes.Point, point_source.sourceCrs())
118+
if sink is None:
119+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
118120

119121
index = QgsSpatialIndex(hub_source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]).setDestinationCrs(point_source.sourceCrs(), context.transformContext())))
120122

python/plugins/processing/algs/qgis/KeepNBiggestParts.py

+2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ def processAlgorithm(self, parameters, context, feedback):
8181
fields = source.fields()
8282
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
8383
source.fields(), source.wkbType(), source.sourceCrs())
84+
if sink is None:
85+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
8486

8587
features = source.getFeatures()
8688
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/MinimumBoundingGeometry.py

+2
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ def processAlgorithm(self, parameters, context, feedback):
141141

142142
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
143143
fields, QgsWkbTypes.Polygon, source.sourceCrs())
144+
if sink is None:
145+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
144146

145147
if field_index >= 0:
146148
geometry_dict = {}

python/plugins/processing/algs/qgis/PointDistance.py

+4
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ def linearMatrix(self, parameters, context, source, inField, target_source, targ
167167
out_wkb = QgsWkbTypes.multiType(source.wkbType()) if matType == 0 else source.wkbType()
168168
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
169169
fields, out_wkb, source.sourceCrs())
170+
if sink is None:
171+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
170172

171173
index = QgsSpatialIndex(target_source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]).setDestinationCrs(source.sourceCrs(), context.transformContext())), feedback)
172174

@@ -256,6 +258,8 @@ def regularMatrix(self, parameters, context, source, inField, target_source, tar
256258

257259
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
258260
fields, source.wkbType(), source.sourceCrs())
261+
if sink is None:
262+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
259263

260264
data = [inFeat[inField]]
261265
for target in target_source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]).setFilterFids(featList).setDestinationCrs(source.sourceCrs(), context.transformContext())):

python/plugins/processing/algs/qgis/PointsAlongGeometry.py

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ def processAlgorithm(self, parameters, context, feedback):
104104

105105
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
106106
fields, QgsWkbTypes.Point, source.sourceCrs())
107+
if sink is None:
108+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
107109

108110
features = source.getFeatures()
109111
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/PointsDisplacement.py

+2
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ def processAlgorithm(self, parameters, context, feedback):
8888

8989
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9090
source.fields(), source.wkbType(), source.sourceCrs())
91+
if sink is None:
92+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
9193

9294
features = source.getFeatures()
9395

python/plugins/processing/algs/qgis/PointsFromLines.py

+2
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ def processAlgorithm(self, parameters, context, feedback):
9292

9393
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9494
fields, QgsWkbTypes.Point, raster_layer.crs())
95+
if sink is None:
96+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
9597

9698
outFeature = QgsFeature()
9799
outFeature.setFields(fields)

python/plugins/processing/algs/qgis/PointsFromPolygons.py

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ def processAlgorithm(self, parameters, context, feedback):
9191

9292
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9393
fields, QgsWkbTypes.Point, raster_layer.crs())
94+
if sink is None:
95+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
9496

9597
outFeature = QgsFeature()
9698
outFeature.setFields(fields)

python/plugins/processing/algs/qgis/PointsInPolygon.py

+2
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ def processAlgorithm(self, parameters, context, feedback):
118118

119119
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
120120
fields, poly_source.wkbType(), poly_source.sourceCrs())
121+
if sink is None:
122+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
121123

122124
spatialIndex = QgsSpatialIndex(point_source.getFeatures(
123125
QgsFeatureRequest().setSubsetOfAttributes([]).setDestinationCrs(poly_source.sourceCrs(), context.transformContext())), feedback)

python/plugins/processing/algs/qgis/PointsLayerFromTable.py

+2
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ def processAlgorithm(self, parameters, context, feedback):
110110

111111
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
112112
fields, wkb_type, target_crs)
113+
if sink is None:
114+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
113115

114116
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)
115117
features = source.getFeatures(QgsFeatureRequest(), QgsProcessingFeatureSource.FlagSkipGeometryValidityChecks)

python/plugins/processing/algs/qgis/PointsToPaths.py

+2
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ def processAlgorithm(self, parameters, context, feedback):
129129

130130
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
131131
fields, output_wkb, source.sourceCrs())
132+
if sink is None:
133+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
132134

133135
points = dict()
134136
features = source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([group_field_index, order_field_index]), QgsProcessingFeatureSource.FlagSkipGeometryValidityChecks)

python/plugins/processing/algs/qgis/PoleOfInaccessibility.py

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ def processAlgorithm(self, parameters, context, feedback):
9595
fields.append(QgsField('dist_pole', QVariant.Double))
9696
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
9797
fields, QgsWkbTypes.Point, source.sourceCrs())
98+
if sink is None:
99+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
98100

99101
features = source.getFeatures()
100102
total = 100.0 / source.featureCount() if source.featureCount() else 0

python/plugins/processing/algs/qgis/Polygonize.py

+2
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ def processAlgorithm(self, parameters, context, feedback):
8383

8484
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
8585
fields, QgsWkbTypes.Polygon, source.sourceCrs())
86+
if sink is None:
87+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
8688

8789
allLinesList = []
8890
features = source.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([]))

python/plugins/processing/algs/qgis/RandomExtract.py

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ def processAlgorithm(self, parameters, context, feedback):
103103

104104
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
105105
source.fields(), source.wkbType(), source.sourceCrs())
106+
if sink is None:
107+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
106108

107109
total = 100.0 / featureCount if featureCount else 1
108110
for i, feat in enumerate(features):

python/plugins/processing/algs/qgis/RandomExtractWithinSubsets.py

+2
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ def processAlgorithm(self, parameters, context, feedback):
111111

112112
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
113113
source.fields(), source.wkbType(), source.sourceCrs())
114+
if sink is None:
115+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
114116

115117
selran = []
116118
total = 100.0 / (featureCount * len(unique)) if featureCount else 1

python/plugins/processing/algs/qgis/RandomPointsAlongLines.py

+2
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ def processAlgorithm(self, parameters, context, feedback):
101101

102102
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
103103
fields, QgsWkbTypes.Point, source.sourceCrs())
104+
if sink is None:
105+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
104106

105107
nPoints = 0
106108
nIterations = 0

python/plugins/processing/algs/qgis/RandomPointsExtent.py

+2
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ def processAlgorithm(self, parameters, context, feedback):
108108

109109
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
110110
fields, QgsWkbTypes.Point, crs)
111+
if sink is None:
112+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
111113

112114
nPoints = 0
113115
nIterations = 0

python/plugins/processing/algs/qgis/RandomPointsLayer.py

+2
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ def processAlgorithm(self, parameters, context, feedback):
109109

110110
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
111111
fields, QgsWkbTypes.Point, source.sourceCrs())
112+
if sink is None:
113+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
112114

113115
nPoints = 0
114116
nIterations = 0

python/plugins/processing/algs/qgis/RandomPointsPolygons.py

+2
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ def processAlgorithm(self, parameters, context, feedback):
126126

127127
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
128128
fields, QgsWkbTypes.Point, source.sourceCrs())
129+
if sink is None:
130+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
129131

130132
da = QgsDistanceArea()
131133
da.setSourceCrs(source.sourceCrs(), context.transformContext())

python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsFixed.py

+2
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ def processAlgorithm(self, parameters, context, feedback):
105105

106106
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
107107
source.fields(), QgsWkbTypes.Polygon, source.sourceCrs())
108+
if sink is None:
109+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
108110

109111
if shape == 0:
110112
self.rectangles(sink, source, width, height, rotation, feedback)

python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsVariable.py

+2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ def processAlgorithm(self, parameters, context, feedback):
115115

116116
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
117117
source.fields(), QgsWkbTypes.Polygon, source.sourceCrs())
118+
if sink is None:
119+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
118120

119121
width = source.fields().lookupField(width_field)
120122
height = source.fields().lookupField(height_field)

python/plugins/processing/algs/qgis/RegularPoints.py

+3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
QgsGeometry,
4040
QgsPointXY,
4141
QgsProcessing,
42+
QgsProcessingException,
4243
QgsProcessingParameterDistance,
4344
QgsProcessingParameterExtent,
4445
QgsProcessingParameterNumber,
@@ -108,6 +109,8 @@ def processAlgorithm(self, parameters, context, feedback):
108109

109110
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
110111
fields, QgsWkbTypes.Point, crs)
112+
if sink is None:
113+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
111114

112115
if randomize:
113116
seed()

python/plugins/processing/algs/qgis/ShortestPathLayerToPoint.py

+2
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ def processAlgorithm(self, parameters, context, feedback):
190190

191191
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
192192
fields, QgsWkbTypes.LineString, network.sourceCrs())
193+
if sink is None:
194+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
193195

194196
directionField = -1
195197
if directionFieldName:

python/plugins/processing/algs/qgis/ShortestPathPointToLayer.py

+2
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ def processAlgorithm(self, parameters, context, feedback):
191191

192192
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
193193
fields, QgsWkbTypes.LineString, network.sourceCrs())
194+
if sink is None:
195+
raise QgsProcessingException(self.invalidSinkError(parameters, self.OUTPUT))
194196

195197
directionField = -1
196198
if directionFieldName:

0 commit comments

Comments
 (0)