@@ -106,10 +106,8 @@ class Parameter:
106
106
take as input.
107
107
"""
108
108
109
- default_metadata = {
110
- 'widget_wrapper' : 'processing.gui.wrappers.BasicWidgetWrapper'
111
- }
112
-
109
+ default_metadata = {}
110
+
113
111
def __init__ (self , name = '' , description = '' , default = None , optional = False ,
114
112
metadata = {}):
115
113
self .name = name
@@ -809,8 +807,7 @@ def setValue(self, n):
809
807
if isinstance (n , basestring ):
810
808
try :
811
809
v = self ._evaluate (n )
812
- float (v )
813
- self .value = n
810
+ self .value = float (v )
814
811
return True
815
812
except :
816
813
return False
@@ -846,8 +843,8 @@ def fromScriptCode(self, line):
846
843
default = definition .strip ()[len ('number' ) + 1 :] or None
847
844
return ParameterNumber (name , descName , default = default , optional = isOptional )
848
845
849
- def _evaluate (self , v ):
850
- exp = QgsExpression (v )
846
+ def _evaluate (self ):
847
+ exp = QgsExpression (self . value )
851
848
if exp .hasParserError ():
852
849
raise ValueError (self .tr ("Error in parameter expression: " ) + exp .parserErrorString ())
853
850
result = exp .evaluate (_expressionContext ())
@@ -856,8 +853,7 @@ def _evaluate(self, v):
856
853
return result
857
854
858
855
def evaluate (self , alg ):
859
- if isinstance (self .value , basestring ):
860
- self .value = self ._evaluate (self .value )
856
+ self .value = self ._evaluate (self .value )
861
857
862
858
def expressionContext (self ):
863
859
return _expressionContext ()
@@ -866,17 +862,12 @@ def getValueAsCommandLineParameter(self):
866
862
if self .value is None :
867
863
return str (None )
868
864
if isinstance (self .value , basestring ):
869
- return '"%s"' % self .value
865
+ return '"%s"' + self .value
870
866
return str (self .value )
871
867
872
868
873
869
874
870
class ParameterRange (Parameter ):
875
-
876
- default_metadata = {
877
- 'widget_wrapper' : 'processing.gui.wrappers.BasicWidgetWrapper'
878
- }
879
-
880
871
881
872
def __init__ (self , name = '' , description = '' , default = None , optional = False ):
882
873
Parameter .__init__ (self , name , description , default , optional )
@@ -1226,24 +1217,28 @@ class ParameterTableField(Parameter):
1226
1217
DATA_TYPE_ANY = - 1
1227
1218
1228
1219
def __init__ (self , name = '' , description = '' , parent = None , datatype = - 1 ,
1229
- optional = False ):
1220
+ optional = False , multiple = False ):
1230
1221
Parameter .__init__ (self , name , description , None , optional )
1231
1222
self .parent = parent
1223
+ self .multiple = True
1232
1224
self .datatype = int (datatype )
1233
1225
1234
1226
def getValueAsCommandLineParameter (self ):
1235
1227
return '"' + str (self .value ) + '"' if self .value is not None else str (None )
1236
1228
1237
1229
def setValue (self , value ):
1238
- if value is None :
1230
+ if not bool ( value ) :
1239
1231
if not self .optional :
1240
1232
return False
1241
1233
self .value = None
1242
1234
return True
1243
-
1244
- elif len (value ) == 0 and not self .optional :
1245
- return False
1246
- self .value = str (value )
1235
+ if isinstance (value , list ):
1236
+ if not self .multiple and len (value ) > 1 :
1237
+ return False
1238
+ self .value = ";" .join (value )
1239
+ return True
1240
+ else :
1241
+ self .value = str (value )
1247
1242
return True
1248
1243
1249
1244
def __str__ (self ):
@@ -1284,97 +1279,12 @@ def fromScriptCode(self, line):
1284
1279
return ParameterTableField (name , descName , parent , datatype , isOptional )
1285
1280
1286
1281
1287
- class ParameterTableMultipleField (Parameter ):
1288
-
1289
- """A parameter representing several table fields.
1290
- Its value is a string with items separated by semicolons, each of
1291
- which represents the name of each field.
1292
-
1293
- In a script you can use it with
1294
- ##Fields=[optional] multiple field [number|string] Parentinput
1295
-
1296
- In the batch runner simply use a string with items separated by
1297
- semicolons, each of which represents the name of each field.
1298
-
1299
- see algs.qgis.DeleteColumn.py for an usage example
1300
- """
1301
-
1302
- DATA_TYPE_NUMBER = 0
1303
- DATA_TYPE_STRING = 1
1304
- DATA_TYPE_ANY = - 1
1305
-
1306
- def __init__ (self , name = '' , description = '' , parent = None , datatype = - 1 ,
1307
- optional = False ):
1308
- Parameter .__init__ (self , name , description , None , optional )
1309
- self .parent = parent
1310
- self .datatype = int (datatype )
1311
-
1312
- def getValueAsCommandLineParameter (self ):
1313
- return '"' + str (self .value ) + '"' if self .value is not None else str (None )
1314
-
1315
- def setValue (self , obj ):
1316
- if obj is None :
1317
- if self .optional :
1318
- self .value = None
1319
- return True
1320
- return False
1321
-
1322
- if isinstance (obj , list ):
1323
- if len (obj ) == 0 :
1324
- if self .optional :
1325
- self .value = None
1326
- return True
1327
- return False
1328
- self .value = ";" .join (obj )
1329
- return True
1330
- else :
1331
- self .value = str (obj )
1332
- return True
1333
-
1334
- def __str__ (self ):
1335
- return self .name + ' <' + self .__module__ .split ('.' )[- 1 ] + ' from ' \
1336
- + self .parent + '>'
1337
-
1338
- def dataType (self ):
1339
- if self .datatype == self .DATA_TYPE_NUMBER :
1340
- return 'numeric'
1341
- elif self .datatype == self .DATA_TYPE_STRING :
1342
- return 'string'
1343
- else :
1344
- return 'any'
1345
-
1346
- def getAsScriptCode (self ):
1347
- param_type = ''
1348
- if self .optional :
1349
- param_type += 'optional '
1350
- param_type += 'multiple field '
1351
- return '##' + self .name + '=' + param_type + self .parent
1352
-
1353
- @classmethod
1354
- def fromScriptCode (self , line ):
1355
- isOptional , name , definition = _splitParameterOptions (line )
1356
- if definition .lower ().strip ().startswith ('multiple field' ):
1357
- descName = _createDescriptiveName (name )
1358
- if definition .lower ().strip ().startswith ('multiple field number' ):
1359
- field = definition .strip ()[len ('multiple field number' ) + 1 :]
1360
- datatype = ParameterTableMultipleField .DATA_TYPE_NUMBER
1361
- elif definition .lower ().strip ().startswith ('multiple field string' ):
1362
- field = definition .strip ()[len ('multiple field string' ) + 1 :]
1363
- datatype = ParameterTableMultipleField .DATA_TYPE_STRING
1364
- else :
1365
- field = definition .strip ()[len ('multiple field' ) + 1 :]
1366
- datatype = ParameterTableMultipleField .DATA_TYPE_ANY
1367
-
1368
- return ParameterTableMultipleField (name , descName , field , datatype , isOptional )
1369
-
1370
-
1371
1282
class ParameterVector (ParameterDataObject ):
1372
1283
1373
1284
default_metadata = {
1374
1285
'widget_wrapper' : 'processing.gui.wrappers.VectorWidgetWrapper'
1375
1286
}
1376
1287
1377
-
1378
1288
def __init__ (self , name = '' , description = '' , datatype = [- 1 ],
1379
1289
optional = False ):
1380
1290
ParameterDataObject .__init__ (self , name , description , None , optional )
@@ -1468,10 +1378,6 @@ def fromScriptCode(self, line):
1468
1378
1469
1379
class ParameterGeometryPredicate (Parameter ):
1470
1380
1471
- default_metadata = {
1472
- 'widget_wrapper' : 'processing.gui.wrappers.BasicWidgetWrapper'
1473
- }
1474
-
1475
1381
predicates = ('intersects' ,
1476
1382
'contains' ,
1477
1383
'disjoint' ,
0 commit comments