@@ -140,15 +140,25 @@ def validate_integer(option, value):
140
140
141
141
142
142
def validate_positive_integer (option , value ):
143
- """Validate that 'value' is a positive integer.
143
+ """Validate that 'value' is a positive integer, which does not include 0 .
144
144
"""
145
145
val = validate_integer (option , value )
146
- if val < 0 :
146
+ if val <= 0 :
147
147
raise ValueError ("The value of %s must be "
148
148
"a positive integer" % (option ,))
149
149
return val
150
150
151
151
152
+ def validate_non_negative_integer (option , value ):
153
+ """Validate that 'value' is a positive integer or 0.
154
+ """
155
+ val = validate_integer (option , value )
156
+ if val < 0 :
157
+ raise ValueError ("The value of %s must be "
158
+ "a non negative integer" % (option ,))
159
+ return val
160
+
161
+
152
162
def validate_readable (option , value ):
153
163
"""Validates that 'value' is file-like and readable.
154
164
"""
@@ -169,6 +179,14 @@ def validate_positive_integer_or_none(option, value):
169
179
return validate_positive_integer (option , value )
170
180
171
181
182
+ def validate_non_negative_integer_or_none (option , value ):
183
+ """Validate that 'value' is a positive integer or 0 or None.
184
+ """
185
+ if value is None :
186
+ return value
187
+ return validate_non_negative_integer (option , value )
188
+
189
+
172
190
def validate_string (option , value ):
173
191
"""Validates that 'value' is an instance of `basestring` for Python 2
174
192
or `str` for Python 3.
@@ -392,7 +410,7 @@ def validate_ok_for_update(update):
392
410
'socketkeepalive' : validate_boolean_or_string ,
393
411
'sockettimeoutms' : validate_timeout_or_none ,
394
412
'waitqueuetimeoutms' : validate_timeout_or_none ,
395
- 'waitqueuemultiple' : validate_positive_integer_or_none ,
413
+ 'waitqueuemultiple' : validate_non_negative_integer_or_none ,
396
414
'ssl' : validate_boolean_or_string ,
397
415
'ssl_keyfile' : validate_readable ,
398
416
'ssl_certfile' : validate_readable ,
0 commit comments