Skip to content

Commit 9d07a8f

Browse files
committedAug 27, 2018
[processing] Accept geometry-less layers in more algorithms
Fixes #19685 (cherry picked from commit 83feea4)
1 parent d416e14 commit 9d07a8f

12 files changed

+132
-67
lines changed
 

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

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525

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

28-
from qgis.core import (QgsProcessingException,
28+
from qgis.core import (QgsProcessing,
29+
QgsProcessingException,
2930
QgsProcessingParameterFeatureSource,
3031
QgsProcessingParameterString,
3132
QgsProcessingParameterEnum,
@@ -41,11 +42,11 @@
4142

4243

4344
class OgrToPostGis(GdalAlgorithm):
44-
4545
INPUT = 'INPUT'
4646
SHAPE_ENCODING = 'SHAPE_ENCODING'
4747
GTYPE = 'GTYPE'
48-
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
48+
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT',
49+
'MULTIPOLYGON', 'MULTILINESTRING']
4950
S_SRS = 'S_SRS'
5051
T_SRS = 'T_SRS'
5152
A_SRS = 'A_SRS'
@@ -82,15 +83,18 @@ def __init__(self):
8283

8384
def initAlgorithm(self, config=None):
8485
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
85-
self.tr('Input layer')))
86+
self.tr('Input layer'),
87+
types=[QgsProcessing.TypeVector]))
8688
self.addParameter(QgsProcessingParameterString(self.SHAPE_ENCODING,
8789
self.tr('Shape encoding'), "", optional=True))
8890
self.addParameter(QgsProcessingParameterEnum(self.GTYPE,
89-
self.tr('Output geometry type'), options=self.GEOMTYPE, defaultValue=0))
91+
self.tr('Output geometry type'), options=self.GEOMTYPE,
92+
defaultValue=0))
9093
self.addParameter(QgsProcessingParameterCrs(self.A_SRS,
9194
self.tr('Assign an output CRS'), defaultValue='', optional=True))
9295
self.addParameter(QgsProcessingParameterCrs(self.T_SRS,
93-
self.tr('Reproject to this CRS on output '), defaultValue='', optional=True))
96+
self.tr('Reproject to this CRS on output '), defaultValue='',
97+
optional=True))
9498
self.addParameter(QgsProcessingParameterCrs(self.S_SRS,
9599
self.tr('Override source CRS'), defaultValue='', optional=True))
96100
self.addParameter(QgsProcessingParameterString(self.HOST,
@@ -109,26 +113,35 @@ def initAlgorithm(self, config=None):
109113
self.tr('Table name, leave blank to use input name'),
110114
defaultValue='', optional=True))
111115
self.addParameter(QgsProcessingParameterString(self.PK,
112-
self.tr('Primary key (new field)'), defaultValue='id', optional=True))
116+
self.tr('Primary key (new field)'), defaultValue='id',
117+
optional=True))
113118
self.addParameter(QgsProcessingParameterField(self.PRIMARY_KEY,
114-
self.tr('Primary key (existing field, used if the above option is left empty)'), parentLayerParameterName=self.INPUT, optional=True))
119+
self.tr(
120+
'Primary key (existing field, used if the above option is left empty)'),
121+
parentLayerParameterName=self.INPUT, optional=True))
115122
self.addParameter(QgsProcessingParameterString(self.GEOCOLUMN,
116-
self.tr('Geometry column name'), defaultValue='geom', optional=True))
123+
self.tr('Geometry column name'), defaultValue='geom',
124+
optional=True))
117125
self.addParameter(QgsProcessingParameterEnum(self.DIM,
118-
self.tr('Vector dimensions'), options=self.DIMLIST, defaultValue=0))
126+
self.tr('Vector dimensions'), options=self.DIMLIST,
127+
defaultValue=0))
119128
self.addParameter(QgsProcessingParameterString(self.SIMPLIFY,
120129
self.tr('Distance tolerance for simplification'),
121130
defaultValue='', optional=True))
122131
self.addParameter(QgsProcessingParameterString(self.SEGMENTIZE,
123132
self.tr('Maximum distance between 2 nodes (densification)'),
124133
defaultValue='', optional=True))
125134
self.addParameter(QgsProcessingParameterExtent(self.SPAT,
126-
self.tr('Select features by extent (defined in input layer CRS)'), optional=True))
135+
self.tr(
136+
'Select features by extent (defined in input layer CRS)'),
137+
optional=True))
127138
self.addParameter(QgsProcessingParameterBoolean(self.CLIP,
128-
self.tr('Clip the input layer using the above (rectangle) extent'),
139+
self.tr(
140+
'Clip the input layer using the above (rectangle) extent'),
129141
defaultValue=False))
130142
self.addParameter(QgsProcessingParameterString(self.WHERE,
131-
self.tr('Select features using a SQL "WHERE" statement (Ex: column=\'value\')'),
143+
self.tr(
144+
'Select features using a SQL "WHERE" statement (Ex: column=\'value\')'),
132145
defaultValue='', optional=True))
133146
self.addParameter(QgsProcessingParameterString(self.GT,
134147
self.tr('Group N features per transaction (Default: 20000)'),
@@ -138,21 +151,26 @@ def initAlgorithm(self, config=None):
138151
self.addParameter(QgsProcessingParameterBoolean(self.APPEND,
139152
self.tr('Append to existing table'), defaultValue=False))
140153
self.addParameter(QgsProcessingParameterBoolean(self.ADDFIELDS,
141-
self.tr('Append and add new fields to existing table'), defaultValue=False))
154+
self.tr('Append and add new fields to existing table'),
155+
defaultValue=False))
142156
self.addParameter(QgsProcessingParameterBoolean(self.LAUNDER,
143-
self.tr('Do not launder columns/table names'), defaultValue=False))
157+
self.tr('Do not launder columns/table names'),
158+
defaultValue=False))
144159
self.addParameter(QgsProcessingParameterBoolean(self.INDEX,
145160
self.tr('Do not create spatial index'), defaultValue=False))
146161
self.addParameter(QgsProcessingParameterBoolean(self.SKIPFAILURES,
147-
self.tr('Continue after a failure, skipping the failed feature'), defaultValue=False))
162+
self.tr(
163+
'Continue after a failure, skipping the failed feature'),
164+
defaultValue=False))
148165
self.addParameter(QgsProcessingParameterBoolean(self.PROMOTETOMULTI,
149166
self.tr('Promote to Multipart'),
150167
defaultValue=True))
151168
self.addParameter(QgsProcessingParameterBoolean(self.PRECISION,
152169
self.tr('Keep width and precision of input attributes'),
153170
defaultValue=True))
154171
self.addParameter(QgsProcessingParameterString(self.OPTIONS,
155-
self.tr('Additional creation options'), defaultValue='', optional=True))
172+
self.tr('Additional creation options'), defaultValue='',
173+
optional=True))
156174

157175
def name(self):
158176
return 'importvectorintopostgisdatabasenewconnection'

‎python/plugins/processing/algs/gdal/ogr2ogr.py

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

2828
import os
2929

30-
from qgis.core import (QgsProcessingException,
30+
from qgis.core import (QgsProcessing,
31+
QgsProcessingException,
3132
QgsProcessingParameterDefinition,
3233
QgsProcessingParameterFeatureSource,
3334
QgsProcessingParameterString,
@@ -37,7 +38,6 @@
3738

3839

3940
class ogr2ogr(GdalAlgorithm):
40-
4141
INPUT = 'INPUT'
4242
OPTIONS = 'OPTIONS'
4343
OUTPUT = 'OUTPUT'
@@ -47,7 +47,8 @@ def __init__(self):
4747

4848
def initAlgorithm(self, config=None):
4949
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
50-
self.tr('Input layer')))
50+
self.tr('Input layer'),
51+
types=[QgsProcessing.TypeVector]))
5152

5253
options_param = QgsProcessingParameterString(self.OPTIONS,
5354
self.tr('Additional creation options'),

‎python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py

Lines changed: 35 additions & 17 deletions
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 (QgsProcessing,
29+
QgsProcessingParameterFeatureSource,
2930
QgsProcessingParameterString,
3031
QgsProcessingParameterEnum,
3132
QgsProcessingParameterCrs,
@@ -41,12 +42,12 @@
4142

4243

4344
class Ogr2OgrToPostGisList(GdalAlgorithm):
44-
4545
DATABASE = 'DATABASE'
4646
INPUT = 'INPUT'
4747
SHAPE_ENCODING = 'SHAPE_ENCODING'
4848
GTYPE = 'GTYPE'
49-
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
49+
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT',
50+
'MULTIPOLYGON', 'MULTILINESTRING']
5051
S_SRS = 'S_SRS'
5152
T_SRS = 'T_SRS'
5253
A_SRS = 'A_SRS'
@@ -91,15 +92,18 @@ def initAlgorithm(self, config=None):
9192
'class': 'processing.gui.wrappers_postgis.ConnectionWidgetWrapper'}})
9293
self.addParameter(db_param)
9394
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
94-
self.tr('Input layer')))
95+
self.tr('Input layer'),
96+
types=[QgsProcessing.TypeVector]))
9597
self.addParameter(QgsProcessingParameterString(self.SHAPE_ENCODING,
9698
self.tr('Shape encoding'), "", optional=True))
9799
self.addParameter(QgsProcessingParameterEnum(self.GTYPE,
98-
self.tr('Output geometry type'), options=self.GEOMTYPE, defaultValue=0))
100+
self.tr('Output geometry type'), options=self.GEOMTYPE,
101+
defaultValue=0))
99102
self.addParameter(QgsProcessingParameterCrs(self.A_SRS,
100103
self.tr('Assign an output CRS'), defaultValue='', optional=False))
101104
self.addParameter(QgsProcessingParameterCrs(self.T_SRS,
102-
self.tr('Reproject to this CRS on output '), defaultValue='', optional=True))
105+
self.tr('Reproject to this CRS on output '), defaultValue='',
106+
optional=True))
103107
self.addParameter(QgsProcessingParameterCrs(self.S_SRS,
104108
self.tr('Override source CRS'), defaultValue='', optional=True))
105109

@@ -122,26 +126,35 @@ def initAlgorithm(self, config=None):
122126
self.addParameter(table_param)
123127

124128
self.addParameter(QgsProcessingParameterString(self.PK,
125-
self.tr('Primary key (new field)'), defaultValue='id', optional=True))
129+
self.tr('Primary key (new field)'), defaultValue='id',
130+
optional=True))
126131
self.addParameter(QgsProcessingParameterField(self.PRIMARY_KEY,
127-
self.tr('Primary key (existing field, used if the above option is left empty)'), parentLayerParameterName=self.INPUT, optional=True))
132+
self.tr(
133+
'Primary key (existing field, used if the above option is left empty)'),
134+
parentLayerParameterName=self.INPUT, optional=True))
128135
self.addParameter(QgsProcessingParameterString(self.GEOCOLUMN,
129-
self.tr('Geometry column name'), defaultValue='geom', optional=True))
136+
self.tr('Geometry column name'), defaultValue='geom',
137+
optional=True))
130138
self.addParameter(QgsProcessingParameterEnum(self.DIM,
131-
self.tr('Vector dimensions'), options=self.DIMLIST, defaultValue=0))
139+
self.tr('Vector dimensions'), options=self.DIMLIST,
140+
defaultValue=0))
132141
self.addParameter(QgsProcessingParameterString(self.SIMPLIFY,
133142
self.tr('Distance tolerance for simplification'),
134143
defaultValue='', optional=True))
135144
self.addParameter(QgsProcessingParameterString(self.SEGMENTIZE,
136145
self.tr('Maximum distance between 2 nodes (densification)'),
137146
defaultValue='', optional=True))
138147
self.addParameter(QgsProcessingParameterExtent(self.SPAT,
139-
self.tr('Select features by extent (defined in input layer CRS)'), optional=True))
148+
self.tr(
149+
'Select features by extent (defined in input layer CRS)'),
150+
optional=True))
140151
self.addParameter(QgsProcessingParameterBoolean(self.CLIP,
141-
self.tr('Clip the input layer using the above (rectangle) extent'),
152+
self.tr(
153+
'Clip the input layer using the above (rectangle) extent'),
142154
defaultValue=False))
143155
self.addParameter(QgsProcessingParameterString(self.WHERE,
144-
self.tr('Select features using a SQL "WHERE" statement (Ex: column=\'value\')'),
156+
self.tr(
157+
'Select features using a SQL "WHERE" statement (Ex: column=\'value\')'),
145158
defaultValue='', optional=True))
146159
self.addParameter(QgsProcessingParameterString(self.GT,
147160
self.tr('Group N features per transaction (Default: 20000)'),
@@ -151,21 +164,26 @@ def initAlgorithm(self, config=None):
151164
self.addParameter(QgsProcessingParameterBoolean(self.APPEND,
152165
self.tr('Append to existing table'), defaultValue=False))
153166
self.addParameter(QgsProcessingParameterBoolean(self.ADDFIELDS,
154-
self.tr('Append and add new fields to existing table'), defaultValue=False))
167+
self.tr('Append and add new fields to existing table'),
168+
defaultValue=False))
155169
self.addParameter(QgsProcessingParameterBoolean(self.LAUNDER,
156-
self.tr('Do not launder columns/table names'), defaultValue=False))
170+
self.tr('Do not launder columns/table names'),
171+
defaultValue=False))
157172
self.addParameter(QgsProcessingParameterBoolean(self.INDEX,
158173
self.tr('Do not create spatial index'), defaultValue=False))
159174
self.addParameter(QgsProcessingParameterBoolean(self.SKIPFAILURES,
160-
self.tr('Continue after a failure, skipping the failed feature'), defaultValue=False))
175+
self.tr(
176+
'Continue after a failure, skipping the failed feature'),
177+
defaultValue=False))
161178
self.addParameter(QgsProcessingParameterBoolean(self.PROMOTETOMULTI,
162179
self.tr('Promote to Multipart'),
163180
defaultValue=True))
164181
self.addParameter(QgsProcessingParameterBoolean(self.PRECISION,
165182
self.tr('Keep width and precision of input attributes'),
166183
defaultValue=True))
167184
self.addParameter(QgsProcessingParameterString(self.OPTIONS,
168-
self.tr('Additional creation options'), defaultValue='', optional=True))
185+
self.tr('Additional creation options'), defaultValue='',
186+
optional=True))
169187

170188
def name(self):
171189
return 'importvectorintopostgisdatabaseavailableconnections'

‎python/plugins/processing/algs/qgis/BasicStatistics.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
QgsStringStatisticalSummary,
3737
QgsDateTimeStatisticalSummary,
3838
QgsFeatureRequest,
39+
QgsProcessing,
3940
QgsProcessingException,
4041
QgsProcessingParameterFeatureSource,
4142
QgsProcessingParameterField,
@@ -49,7 +50,6 @@
4950

5051

5152
class BasicStatisticsForField(QgisAlgorithm):
52-
5353
INPUT_LAYER = 'INPUT_LAYER'
5454
FIELD_NAME = 'FIELD_NAME'
5555
OUTPUT_HTML_FILE = 'OUTPUT_HTML_FILE'
@@ -82,8 +82,9 @@ def svgIconPath(self):
8282
return QgsApplication.iconPath("/algorithms/mAlgorithmBasicStatistics.svg")
8383

8484
def tags(self):
85-
return self.tr('stats,statistics,date,time,datetime,string,number,text,table,layer,sum,maximum,minimum,mean,average,standard,deviation,'
86-
'count,distinct,unique,variance,median,quartile,range,majority,minority,summary').split(',')
85+
return self.tr(
86+
'stats,statistics,date,time,datetime,string,number,text,table,layer,sum,maximum,minimum,mean,average,standard,deviation,'
87+
'count,distinct,unique,variance,median,quartile,range,majority,minority,summary').split(',')
8788

8889
def group(self):
8990
return self.tr('Vector analysis')
@@ -96,13 +97,15 @@ def __init__(self):
9697

9798
def initAlgorithm(self, config=None):
9899
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT_LAYER,
99-
self.tr('Input layer')))
100+
self.tr('Input layer'),
101+
types=[QgsProcessing.TypeVector]))
100102

101103
self.addParameter(QgsProcessingParameterField(self.FIELD_NAME,
102104
self.tr('Field to calculate statistics on'),
103105
None, self.INPUT_LAYER, QgsProcessingParameterField.Any))
104106

105-
self.addParameter(QgsProcessingParameterFileDestination(self.OUTPUT_HTML_FILE, self.tr('Statistics'), self.tr('HTML files (*.html)'), None, True))
107+
self.addParameter(QgsProcessingParameterFileDestination(self.OUTPUT_HTML_FILE, self.tr('Statistics'),
108+
self.tr('HTML files (*.html)'), None, True))
106109

107110
self.addOutput(QgsProcessingOutputNumber(self.COUNT, self.tr('Count')))
108111
self.addOutput(QgsProcessingOutputNumber(self.UNIQUE, self.tr('Number of unique values')))
@@ -141,7 +144,8 @@ def processAlgorithm(self, parameters, context, feedback):
141144

142145
output_file = self.parameterAsFileOutput(parameters, self.OUTPUT_HTML_FILE, context)
143146

144-
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry).setSubsetOfAttributes([field_name], source.fields())
147+
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry).setSubsetOfAttributes([field_name],
148+
source.fields())
145149
features = source.getFeatures(request, QgsProcessingFeatureSource.FlagSkipGeometryValidityChecks)
146150
count = source.featureCount()
147151

@@ -267,8 +271,10 @@ def calcDateTimeStats(self, features, feedback, field, count):
267271
data.append(self.tr('Count: {}').format(count))
268272
data.append(self.tr('Unique values: {}').format(stat.countDistinct()))
269273
data.append(self.tr('NULL (missing) values: {}').format(stat.countMissing()))
270-
data.append(self.tr('Minimum value: {}').format(field.displayString(stat.statistic(QgsDateTimeStatisticalSummary.Min))))
271-
data.append(self.tr('Maximum value: {}').format(field.displayString(stat.statistic(QgsDateTimeStatisticalSummary.Max))))
274+
data.append(
275+
self.tr('Minimum value: {}').format(field.displayString(stat.statistic(QgsDateTimeStatisticalSummary.Min))))
276+
data.append(
277+
self.tr('Maximum value: {}').format(field.displayString(stat.statistic(QgsDateTimeStatisticalSummary.Max))))
272278

273279
return data, results
274280

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from qgis.core import (QgsProcessingException,
3232
QgsField,
3333
QgsFeatureSink,
34+
QgsProcessing,
3435
QgsProcessingParameterFeatureSource,
3536
QgsProcessingParameterString,
3637
QgsProcessingParameterEnum,
@@ -40,7 +41,6 @@
4041

4142

4243
class FieldsPyculator(QgisAlgorithm):
43-
4444
INPUT = 'INPUT'
4545
FIELD_NAME = 'FIELD_NAME'
4646
FIELD_TYPE = 'FIELD_TYPE'
@@ -67,15 +67,18 @@ def initAlgorithm(self, config=None):
6767
self.tr('Float'),
6868
self.tr('String')]
6969

70-
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Input layer')))
70+
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Input layer'),
71+
types=[QgsProcessing.TypeVector]))
7172
self.addParameter(QgsProcessingParameterString(self.FIELD_NAME,
7273
self.tr('Result field name'), defaultValue='NewField'))
7374
self.addParameter(QgsProcessingParameterEnum(self.FIELD_TYPE,
7475
self.tr('Field type'), options=self.type_names))
7576
self.addParameter(QgsProcessingParameterNumber(self.FIELD_LENGTH,
76-
self.tr('Field length'), minValue=1, maxValue=255, defaultValue=10))
77+
self.tr('Field length'), minValue=1, maxValue=255,
78+
defaultValue=10))
7779
self.addParameter(QgsProcessingParameterNumber(self.FIELD_PRECISION,
78-
self.tr('Field precision'), minValue=0, maxValue=15, defaultValue=3))
80+
self.tr('Field precision'), minValue=0, maxValue=15,
81+
defaultValue=3))
7982
self.addParameter(QgsProcessingParameterString(self.GLOBAL,
8083
self.tr('Global expression'), multiLine=True, optional=True))
8184
self.addParameter(QgsProcessingParameterString(self.FORMULA,
@@ -118,7 +121,8 @@ def processAlgorithm(self, parameters, context, feedback):
118121
exec(bytecode, new_ns)
119122
except:
120123
raise QgsProcessingException(
121-
self.tr("FieldPyculator code execute error.Global code block can't be executed!\n{0}\n{1}").format(str(sys.exc_info()[0].__name__), str(sys.exc_info()[1])))
124+
self.tr("FieldPyculator code execute error.Global code block can't be executed!\n{0}\n{1}").format(
125+
str(sys.exc_info()[0].__name__), str(sys.exc_info()[1])))
122126

123127
# Replace all fields tags
124128
fields = source.fields()
@@ -141,7 +145,8 @@ def processAlgorithm(self, parameters, context, feedback):
141145
bytecode = compile(code, '<string>', 'exec')
142146
except:
143147
raise QgsProcessingException(
144-
self.tr("FieldPyculator code execute error. Field code block can't be executed!\n{0}\n{1}").format(str(sys.exc_info()[0].__name__), str(sys.exc_info()[1])))
148+
self.tr("FieldPyculator code execute error. Field code block can't be executed!\n{0}\n{1}").format(
149+
str(sys.exc_info()[0].__name__), str(sys.exc_info()[1])))
145150

146151
# Run
147152
features = source.getFeatures()

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
QgsFeatureSink,
3333
QgsField,
3434
QgsDistanceArea,
35+
QgsProcessing,
3536
QgsProcessingParameterFeatureSource,
3637
QgsProcessingParameterEnum,
3738
QgsProcessingParameterNumber,
@@ -71,7 +72,8 @@ def __init__(self):
7172
self.tr('Date')]
7273

7374
def initAlgorithm(self, config=None):
74-
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Input layer')))
75+
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Input layer'),
76+
types=[QgsProcessing.TypeVector]))
7577
self.addParameter(QgsProcessingParameterString(self.FIELD_NAME,
7678
self.tr('Result field name')))
7779
self.addParameter(QgsProcessingParameterEnum(self.FIELD_TYPE,

‎python/plugins/processing/algs/qgis/ImportIntoPostGIS.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from qgis.core import (QgsVectorLayerExporter,
2929
QgsSettings,
3030
QgsFeatureSink,
31+
QgsProcessing,
3132
QgsProcessingException,
3233
QgsProcessingParameterFeatureSource,
3334
QgsProcessingParameterString,
@@ -40,7 +41,6 @@
4041

4142

4243
class ImportIntoPostGIS(QgisAlgorithm):
43-
4444
DATABASE = 'DATABASE'
4545
TABLENAME = 'TABLENAME'
4646
SCHEMA = 'SCHEMA'
@@ -65,7 +65,8 @@ def __init__(self):
6565

6666
def initAlgorithm(self, config=None):
6767
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
68-
self.tr('Layer to import')))
68+
self.tr('Layer to import'),
69+
types=[QgsProcessing.TypeVector]))
6970

7071
db_param = QgsProcessingParameterString(
7172
self.DATABASE,
@@ -94,7 +95,8 @@ def initAlgorithm(self, config=None):
9495
self.addParameter(table_param)
9596

9697
self.addParameter(QgsProcessingParameterField(self.PRIMARY_KEY,
97-
self.tr('Primary key field'), None, self.INPUT, QgsProcessingParameterField.Any, False, True))
98+
self.tr('Primary key field'), None, self.INPUT,
99+
QgsProcessingParameterField.Any, False, True))
98100
self.addParameter(QgsProcessingParameterString(self.GEOMETRY_COLUMN,
99101
self.tr('Geometry column'), 'geom'))
100102
self.addParameter(QgsProcessingParameterString(self.ENCODING,
@@ -109,7 +111,8 @@ def initAlgorithm(self, config=None):
109111
self.addParameter(QgsProcessingParameterBoolean(self.DROP_STRING_LENGTH,
110112
self.tr('Drop length constraints on character fields'), False))
111113
self.addParameter(QgsProcessingParameterBoolean(self.FORCE_SINGLEPART,
112-
self.tr('Create single-part geometries instead of multi-part'), False))
114+
self.tr('Create single-part geometries instead of multi-part'),
115+
False))
113116

114117
def name(self):
115118
return 'importintopostgis'

‎python/plugins/processing/algs/qgis/ImportIntoSpatialite.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
QgsFeatureSink,
3030
QgsProcessingAlgorithm,
3131
QgsVectorLayerExporter,
32+
QgsProcessing,
3233
QgsProcessingException,
3334
QgsProcessingParameterFeatureSource,
3435
QgsProcessingParameterVectorLayer,
@@ -42,7 +43,6 @@
4243

4344

4445
class ImportIntoSpatialite(QgisAlgorithm):
45-
4646
DATABASE = 'DATABASE'
4747
TABLENAME = 'TABLENAME'
4848
INPUT = 'INPUT'
@@ -65,17 +65,25 @@ def __init__(self):
6565
super().__init__()
6666

6767
def initAlgorithm(self, config=None):
68-
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Layer to import')))
68+
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.tr('Layer to import'),
69+
types=[QgsProcessing.TypeVector]))
6970
self.addParameter(QgsProcessingParameterVectorLayer(self.DATABASE, self.tr('File database'), optional=False))
70-
self.addParameter(QgsProcessingParameterString(self.TABLENAME, self.tr('Table to import to (leave blank to use layer name)'), optional=True))
71-
self.addParameter(QgsProcessingParameterField(self.PRIMARY_KEY, self.tr('Primary key field'), None, self.INPUT, QgsProcessingParameterField.Any, False, True))
71+
self.addParameter(
72+
QgsProcessingParameterString(self.TABLENAME, self.tr('Table to import to (leave blank to use layer name)'),
73+
optional=True))
74+
self.addParameter(QgsProcessingParameterField(self.PRIMARY_KEY, self.tr('Primary key field'), None, self.INPUT,
75+
QgsProcessingParameterField.Any, False, True))
7276
self.addParameter(QgsProcessingParameterString(self.GEOMETRY_COLUMN, self.tr('Geometry column'), 'geom'))
7377
self.addParameter(QgsProcessingParameterString(self.ENCODING, self.tr('Encoding'), 'UTF-8', optional=True))
7478
self.addParameter(QgsProcessingParameterBoolean(self.OVERWRITE, self.tr('Overwrite'), True))
7579
self.addParameter(QgsProcessingParameterBoolean(self.CREATEINDEX, self.tr('Create spatial index'), True))
76-
self.addParameter(QgsProcessingParameterBoolean(self.LOWERCASE_NAMES, self.tr('Convert field names to lowercase'), True))
77-
self.addParameter(QgsProcessingParameterBoolean(self.DROP_STRING_LENGTH, self.tr('Drop length constraints on character fields'), False))
78-
self.addParameter(QgsProcessingParameterBoolean(self.FORCE_SINGLEPART, self.tr('Create single-part geometries instead of multi-part'), False))
80+
self.addParameter(
81+
QgsProcessingParameterBoolean(self.LOWERCASE_NAMES, self.tr('Convert field names to lowercase'), True))
82+
self.addParameter(QgsProcessingParameterBoolean(self.DROP_STRING_LENGTH,
83+
self.tr('Drop length constraints on character fields'), False))
84+
self.addParameter(QgsProcessingParameterBoolean(self.FORCE_SINGLEPART,
85+
self.tr('Create single-part geometries instead of multi-part'),
86+
False))
7987

8088
def flags(self):
8189
return super().flags() | QgsProcessingAlgorithm.FlagNoThreading

‎src/analysis/processing/qgsalgorithmextractbyattribute.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ QString QgsExtractByAttributeAlgorithm::groupId() const
4646

4747
void QgsExtractByAttributeAlgorithm::initAlgorithm( const QVariantMap & )
4848
{
49-
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
49+
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ),
50+
QList< int >() << QgsProcessing::TypeVector ) );
5051
addParameter( new QgsProcessingParameterField( QStringLiteral( "FIELD" ), QObject::tr( "Selection attribute" ), QVariant(), QStringLiteral( "INPUT" ) ) );
5152
addParameter( new QgsProcessingParameterEnum( QStringLiteral( "OPERATOR" ), QObject::tr( "Operator" ), QStringList()
5253
<< QObject::tr( "=" )

‎src/analysis/processing/qgsalgorithmextractbyexpression.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ QString QgsExtractByExpressionAlgorithm::groupId() const
4646

4747
void QgsExtractByExpressionAlgorithm::initAlgorithm( const QVariantMap & )
4848
{
49-
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
49+
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ),
50+
QList< int >() << QgsProcessing::TypeVector ) );
5051
addParameter( new QgsProcessingParameterExpression( QStringLiteral( "EXPRESSION" ), QObject::tr( "Expression" ), QVariant(), QStringLiteral( "INPUT" ) ) );
5152

5253
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Matching features" ) ) );

‎src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ QgsProcessingAlgorithm::Flags QgsSaveSelectedFeatures::flags() const
2626

2727
void QgsSaveSelectedFeatures::initAlgorithm( const QVariantMap & )
2828
{
29-
addParameter( new QgsProcessingParameterVectorLayer( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
29+
addParameter( new QgsProcessingParameterVectorLayer( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ),
30+
QList< int >() << QgsProcessing::TypeVector ) );
3031
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Selected features" ), QgsProcessing::TypeVectorPoint ) );
3132
}
3233

‎src/analysis/processing/qgsalgorithmuniquevalueindex.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ QString QgsAddUniqueValueIndexAlgorithm::groupId() const
4646

4747
void QgsAddUniqueValueIndexAlgorithm::initAlgorithm( const QVariantMap & )
4848
{
49-
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
49+
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ),
50+
QList< int >() << QgsProcessing::TypeVector ) );
5051
addParameter( new QgsProcessingParameterField( QStringLiteral( "FIELD" ), QObject::tr( "Class field" ), QVariant(),
5152
QStringLiteral( "INPUT" ), QgsProcessingParameterField::Any ) );
5253
addParameter( new QgsProcessingParameterString( QStringLiteral( "FIELD_NAME" ),

0 commit comments

Comments
 (0)
Please sign in to comment.