@@ -57,7 +57,7 @@ class Parameter:
5757 take as input.
5858 """
5959
60- def __init__ (self , name = '' , description = '' ):
60+ def __init__ (self , name = '' , description = '' , optional = False ):
6161 self .name = name
6262 self .description = description
6363 self .value = None
@@ -68,6 +68,7 @@ def __init__(self, name='', description=''):
6868 # It can be used as any other parameter, but it will not be
6969 # shown to the user
7070 self .hidden = False
71+ self .optional = optional
7172
7273 def setValue (self , obj ):
7374 """
@@ -109,8 +110,8 @@ def tr(self, string, context=''):
109110
110111class ParameterBoolean (Parameter ):
111112
112- def __init__ (self , name = '' , description = '' , default = True ):
113- Parameter .__init__ (self , name , description )
113+ def __init__ (self , name = '' , description = '' , default = True , optional = False ):
114+ Parameter .__init__ (self , name , description , optional )
114115 self .default = parseBool (default )
115116 self .value = None
116117
@@ -129,12 +130,12 @@ def setValue(self, value):
129130
130131class ParameterCrs (Parameter ):
131132
132- def __init__ (self , name = '' , description = '' , default = 'EPSG:4326' ):
133+ def __init__ (self , name = '' , description = '' , default = 'EPSG:4326' , optional = False ):
133134 '''The value is a string that uniquely identifies the
134135 coordinate reference system. Typically it is the auth id of the CRS
135136 (if the authority is EPSG) or proj4 string of the CRS (in case
136137 of other authorities or user defined projections).'''
137- Parameter .__init__ (self , name , description )
138+ Parameter .__init__ (self , name , description , optional )
138139 self .value = None
139140 self .default = default
140141
@@ -168,8 +169,8 @@ class ParameterExtent(Parameter):
168169
169170 USE_MIN_COVERING_EXTENT = 'USE_MIN_COVERING_EXTENT'
170171
171- def __init__ (self , name = '' , description = '' , default = '0,1,0,1' ):
172- Parameter .__init__ (self , name , description )
172+ def __init__ (self , name = '' , description = '' , default = '0,1,0,1' , optional = False ):
173+ Parameter .__init__ (self , name , description , optional )
173174 self .default = default
174175 # The value is a string in the form "xmin, xmax, ymin, ymax"
175176 self .value = None
@@ -200,11 +201,10 @@ def getValueAsCommandLineParameter(self):
200201class ParameterFile (Parameter ):
201202
202203 def __init__ (self , name = '' , description = '' , isFolder = False , optional = True , ext = None ):
203- Parameter .__init__ (self , name , description )
204+ Parameter .__init__ (self , name , description , parseBool ( optional ) )
204205 self .value = None
205206 self .ext = ext
206207 self .isFolder = parseBool (isFolder )
207- self .optional = parseBool (optional )
208208
209209 def getValueAsCommandLineParameter (self ):
210210 return '"' + unicode (self .value ) + '"'
@@ -229,8 +229,8 @@ def typeName(self):
229229class ParameterFixedTable (Parameter ):
230230
231231 def __init__ (self , name = '' , description = '' , numRows = 3 ,
232- cols = ['value' ], fixedNumOfRows = False ):
233- Parameter .__init__ (self , name , description )
232+ cols = ['value' ], fixedNumOfRows = False , optional = False ):
233+ Parameter .__init__ (self , name , description , optional )
234234 self .cols = cols
235235 if isinstance (cols , basestring ):
236236 self .cols = self .cols .split (";" )
@@ -282,9 +282,8 @@ class ParameterMultipleInput(ParameterDataObject):
282282 TYPE_FILE = 4
283283
284284 def __init__ (self , name = '' , description = '' , datatype = - 1 , optional = False ):
285- ParameterDataObject .__init__ (self , name , description )
285+ ParameterDataObject .__init__ (self , name , description , optional )
286286 self .datatype = int (float (datatype ))
287- self .optional = parseBool (optional )
288287 self .value = None
289288 self .exported = None
290289
@@ -411,8 +410,8 @@ def dataType(self):
411410class ParameterNumber (Parameter ):
412411
413412 def __init__ (self , name = '' , description = '' , minValue = None , maxValue = None ,
414- default = 0.0 ):
415- Parameter .__init__ (self , name , description )
413+ default = 0.0 , optional = False ):
414+ Parameter .__init__ (self , name , description , optional )
416415 try :
417416 self .default = int (unicode (default ))
418417 self .isInteger = True
@@ -433,7 +432,7 @@ def setValue(self, n):
433432 if n is None :
434433 if not self .optional :
435434 return False
436- self .value = None
435+ self .value = self . default
437436 return True
438437 try :
439438 if float (n ) - int (float (n )) == 0 :
@@ -454,8 +453,8 @@ def setValue(self, n):
454453
455454class ParameterRange (Parameter ):
456455
457- def __init__ (self , name = '' , description = '' , default = '0,1' ):
458- Parameter .__init__ (self , name , description )
456+ def __init__ (self , name = '' , description = '' , default = '0,1' , optional = False ):
457+ Parameter .__init__ (self , name , description , optional )
459458 self .default = default
460459 self .value = None
461460
@@ -491,9 +490,8 @@ def getValueAsCommandLineParameter(self):
491490class ParameterRaster (ParameterDataObject ):
492491
493492 def __init__ (self , name = '' , description = '' , optional = False , showSublayersDialog = True ):
494- ParameterDataObject .__init__ (self , name , description )
493+ ParameterDataObject .__init__ (self , name , description , optional )
495494 self .showSublayersDialog = parseBool (showSublayersDialog )
496- self .optional = parseBool (optional )
497495 self .value = None
498496 self .exported = None
499497
@@ -548,8 +546,9 @@ def getFileFilter(self):
548546
549547class ParameterSelection (Parameter ):
550548
551- def __init__ (self , name = '' , description = '' , options = [], default = 0 , isSource = False ):
552- Parameter .__init__ (self , name , description )
549+ def __init__ (self , name = '' , description = '' , options = [], default = 0 , isSource = False ,
550+ optional = False ):
551+ Parameter .__init__ (self , name , description , optional )
553552 self .options = options
554553 if isSource :
555554 self .options = []
@@ -588,16 +587,15 @@ class ParameterString(Parameter):
588587
589588 def __init__ (self , name = '' , description = '' , default = '' , multiline = False ,
590589 optional = False ):
591- Parameter .__init__ (self , name , description )
590+ Parameter .__init__ (self , name , description , optional )
592591 self .default = default
593592 self .value = None
594593 self .multiline = parseBool (multiline )
595- self .optional = parseBool (optional )
596594
597595 def setValue (self , obj ):
598596 if obj is None :
599597 if not self .optional :
600- return false
598+ return False
601599 self .value = ''
602600 return True
603601 self .value = unicode (obj ).replace (
@@ -614,8 +612,7 @@ def getValueAsCommandLineParameter(self):
614612class ParameterTable (ParameterDataObject ):
615613
616614 def __init__ (self , name = '' , description = '' , optional = False ):
617- ParameterDataObject .__init__ (self , name , description )
618- self .optional = parseBool (optional )
615+ ParameterDataObject .__init__ (self , name , description , optional )
619616 self .value = None
620617 self .exported = None
621618
@@ -685,11 +682,10 @@ class ParameterTableField(Parameter):
685682
686683 def __init__ (self , name = '' , description = '' , parent = None , datatype = - 1 ,
687684 optional = False ):
688- Parameter .__init__ (self , name , description )
685+ Parameter .__init__ (self , name , description , optional )
689686 self .parent = parent
690687 self .value = None
691688 self .datatype = int (datatype )
692- self .optional = parseBool (optional )
693689
694690 def getValueAsCommandLineParameter (self ):
695691 return '"' + unicode (self .value ) + '"'
@@ -728,8 +724,7 @@ class ParameterVector(ParameterDataObject):
728724
729725 def __init__ (self , name = '' , description = '' , shapetype = [- 1 ],
730726 optional = False ):
731- ParameterDataObject .__init__ (self , name , description )
732- self .optional = parseBool (optional )
727+ ParameterDataObject .__init__ (self , name , description , optional )
733728 if isinstance (shapetype , int ):
734729 shapetype = [shapetype ]
735730 elif isinstance (shapetype , basestring ):
@@ -818,12 +813,11 @@ class ParameterGeometryPredicate(Parameter):
818813
819814 def __init__ (self , name = '' , description = '' , left = None , right = None ,
820815 optional = False , enabledPredicates = None ):
821- Parameter .__init__ (self , name , description )
816+ Parameter .__init__ (self , name , description , optional )
822817 self .left = left
823818 self .right = right
824819 self .value = None
825820 self .default = []
826- self .optional = parseBool (optional )
827821 self .enabledPredicates = enabledPredicates
828822 if self .enabledPredicates is None :
829823 self .enabledPredicates = self .predicates
0 commit comments