annotate src/breadcrumbs/src/ValidateData.py @ 0:0de566f21448 draft default tip

v2
author sagun98
date Thu, 03 Jun 2021 18:13:32 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
sagun98
parents:
diff changeset
1 """
sagun98
parents:
diff changeset
2 Author: Timothy Tickle
sagun98
parents:
diff changeset
3 Description: Validate Data containing methods for testing variables.
sagun98
parents:
diff changeset
4 """
sagun98
parents:
diff changeset
5
sagun98
parents:
diff changeset
6 #####################################################################################
sagun98
parents:
diff changeset
7 #Copyright (C) <2012>
sagun98
parents:
diff changeset
8 #
sagun98
parents:
diff changeset
9 #Permission is hereby granted, free of charge, to any person obtaining a copy of
sagun98
parents:
diff changeset
10 #this software and associated documentation files (the "Software"), to deal in the
sagun98
parents:
diff changeset
11 #Software without restriction, including without limitation the rights to use, copy,
sagun98
parents:
diff changeset
12 #modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
sagun98
parents:
diff changeset
13 #and to permit persons to whom the Software is furnished to do so, subject to
sagun98
parents:
diff changeset
14 #the following conditions:
sagun98
parents:
diff changeset
15 #
sagun98
parents:
diff changeset
16 #The above copyright notice and this permission notice shall be included in all copies
sagun98
parents:
diff changeset
17 #or substantial portions of the Software.
sagun98
parents:
diff changeset
18 #
sagun98
parents:
diff changeset
19 #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
sagun98
parents:
diff changeset
20 #INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
sagun98
parents:
diff changeset
21 #PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
sagun98
parents:
diff changeset
22 #HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
sagun98
parents:
diff changeset
23 #OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
sagun98
parents:
diff changeset
24 #SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
sagun98
parents:
diff changeset
25 #####################################################################################
sagun98
parents:
diff changeset
26
sagun98
parents:
diff changeset
27 __author__ = "Timothy Tickle"
sagun98
parents:
diff changeset
28 __copyright__ = "Copyright 2012"
sagun98
parents:
diff changeset
29 __credits__ = ["Timothy Tickle"]
sagun98
parents:
diff changeset
30 __license__ = "MIT"
sagun98
parents:
diff changeset
31 __maintainer__ = "Timothy Tickle"
sagun98
parents:
diff changeset
32 __email__ = "ttickle@sph.harvard.edu"
sagun98
parents:
diff changeset
33 __status__ = "Development"
sagun98
parents:
diff changeset
34
sagun98
parents:
diff changeset
35 #Import local code
sagun98
parents:
diff changeset
36 from types import *
sagun98
parents:
diff changeset
37 import decimal
sagun98
parents:
diff changeset
38 import os
sagun98
parents:
diff changeset
39 import re
sagun98
parents:
diff changeset
40 import string
sagun98
parents:
diff changeset
41
sagun98
parents:
diff changeset
42 class ValidateData:
sagun98
parents:
diff changeset
43
sagun98
parents:
diff changeset
44 #Tested 5
sagun98
parents:
diff changeset
45 @staticmethod
sagun98
parents:
diff changeset
46 def funcIsValidBoolean(parameterValue):
sagun98
parents:
diff changeset
47 """
sagun98
parents:
diff changeset
48 Validates a parameter as a valid boolean.
sagun98
parents:
diff changeset
49
sagun98
parents:
diff changeset
50 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
51 :type Unknown
sagun98
parents:
diff changeset
52 :return Boolean: True indicates the parameter is a valid boolean.
sagun98
parents:
diff changeset
53 :type Boolean
sagun98
parents:
diff changeset
54 """
sagun98
parents:
diff changeset
55
sagun98
parents:
diff changeset
56 #Check to make sure it is not null
sagun98
parents:
diff changeset
57 if parameterValue == None:
sagun98
parents:
diff changeset
58 return False
sagun98
parents:
diff changeset
59
sagun98
parents:
diff changeset
60 #Check to make sure it is a string
sagun98
parents:
diff changeset
61 if not type(parameterValue) is BooleanType:
sagun98
parents:
diff changeset
62 return False
sagun98
parents:
diff changeset
63 return True
sagun98
parents:
diff changeset
64
sagun98
parents:
diff changeset
65 #Tested 6
sagun98
parents:
diff changeset
66 @staticmethod
sagun98
parents:
diff changeset
67 def funcIsTrue(parameterValue):
sagun98
parents:
diff changeset
68 """
sagun98
parents:
diff changeset
69 Validates a parameter as true.
sagun98
parents:
diff changeset
70
sagun98
parents:
diff changeset
71 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
72 :type Unknown
sagun98
parents:
diff changeset
73 :return Boolean: True indicates the parameter is True.
sagun98
parents:
diff changeset
74 :type Boolean
sagun98
parents:
diff changeset
75 """
sagun98
parents:
diff changeset
76
sagun98
parents:
diff changeset
77 if(ValidateData.funcIsValidBoolean(parameterValue)):
sagun98
parents:
diff changeset
78 if(parameterValue == True):
sagun98
parents:
diff changeset
79 return True
sagun98
parents:
diff changeset
80 return False
sagun98
parents:
diff changeset
81
sagun98
parents:
diff changeset
82 #Tested 6
sagun98
parents:
diff changeset
83 @staticmethod
sagun98
parents:
diff changeset
84 def funcIsFalse(parameterValue):
sagun98
parents:
diff changeset
85 """
sagun98
parents:
diff changeset
86 Validates a parameter as false.
sagun98
parents:
diff changeset
87
sagun98
parents:
diff changeset
88 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
89 :type Unknown
sagun98
parents:
diff changeset
90 :return Boolean: True indicates the parameter is False.
sagun98
parents:
diff changeset
91 :type Boolean
sagun98
parents:
diff changeset
92 """
sagun98
parents:
diff changeset
93
sagun98
parents:
diff changeset
94 if(ValidateData.funcIsValidBoolean(parameterValue)):
sagun98
parents:
diff changeset
95 if(parameterValue == False):
sagun98
parents:
diff changeset
96 return True
sagun98
parents:
diff changeset
97 return False
sagun98
parents:
diff changeset
98
sagun98
parents:
diff changeset
99 #Tested 5
sagun98
parents:
diff changeset
100 @staticmethod
sagun98
parents:
diff changeset
101 def funcIsValidInteger(parameterValue):
sagun98
parents:
diff changeset
102 """
sagun98
parents:
diff changeset
103 Validates a parameter as an integer.
sagun98
parents:
diff changeset
104
sagun98
parents:
diff changeset
105 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
106 :type Unknown
sagun98
parents:
diff changeset
107 :return Boolean: True indicates the parameter is an integer.
sagun98
parents:
diff changeset
108 :type Boolean
sagun98
parents:
diff changeset
109 """
sagun98
parents:
diff changeset
110
sagun98
parents:
diff changeset
111 #Check to make sure it is not null
sagun98
parents:
diff changeset
112 if (parameterValue == None):
sagun98
parents:
diff changeset
113 return False
sagun98
parents:
diff changeset
114
sagun98
parents:
diff changeset
115 #Check to make sure it is an integer
sagun98
parents:
diff changeset
116 if not type(parameterValue) is IntType:
sagun98
parents:
diff changeset
117 return False
sagun98
parents:
diff changeset
118
sagun98
parents:
diff changeset
119 return True
sagun98
parents:
diff changeset
120
sagun98
parents:
diff changeset
121 #Tested 5
sagun98
parents:
diff changeset
122 @staticmethod
sagun98
parents:
diff changeset
123 def funcIsValidPositiveInteger(parameterValue, tempZero = False):
sagun98
parents:
diff changeset
124 """
sagun98
parents:
diff changeset
125 Validates a parameter as false.
sagun98
parents:
diff changeset
126
sagun98
parents:
diff changeset
127 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
128 :type Unknown
sagun98
parents:
diff changeset
129 :param tempZero: Allows one to set what the value for zero should return.
sagun98
parents:
diff changeset
130 :type Boolean The return value for zero.
sagun98
parents:
diff changeset
131 :return Boolean: True indicates the parameter is a positive integer.
sagun98
parents:
diff changeset
132 :type Boolean
sagun98
parents:
diff changeset
133 """
sagun98
parents:
diff changeset
134
sagun98
parents:
diff changeset
135 #Check to make sure it is not null
sagun98
parents:
diff changeset
136 if not ValidateData.funcIsValidInteger(parameterValue):
sagun98
parents:
diff changeset
137 return False
sagun98
parents:
diff changeset
138
sagun98
parents:
diff changeset
139 #Check to see it is positive
sagun98
parents:
diff changeset
140 if (parameterValue < 0):
sagun98
parents:
diff changeset
141 return False
sagun98
parents:
diff changeset
142
sagun98
parents:
diff changeset
143 #Check for zero value
sagun98
parents:
diff changeset
144 if(parameterValue == 0):
sagun98
parents:
diff changeset
145 return tempZero
sagun98
parents:
diff changeset
146 return True
sagun98
parents:
diff changeset
147
sagun98
parents:
diff changeset
148 #Tested 14
sagun98
parents:
diff changeset
149 @staticmethod
sagun98
parents:
diff changeset
150 def funcIsValidNumeric(parameterValue):
sagun98
parents:
diff changeset
151 """
sagun98
parents:
diff changeset
152 Validates a parameter as an integer.
sagun98
parents:
diff changeset
153
sagun98
parents:
diff changeset
154 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
155 :type Unknown
sagun98
parents:
diff changeset
156 :return Boolean: True indicates the parameter is a numeric.
sagun98
parents:
diff changeset
157 :type Boolean
sagun98
parents:
diff changeset
158 """
sagun98
parents:
diff changeset
159
sagun98
parents:
diff changeset
160 #Check to make sure it is not null
sagun98
parents:
diff changeset
161 if (parameterValue == None):
sagun98
parents:
diff changeset
162 return False
sagun98
parents:
diff changeset
163 #Check to make sure it is an integer
sagun98
parents:
diff changeset
164 if((type(parameterValue) == IntType)or(type(parameterValue) == LongType)or(type(parameterValue) == FloatType)or(type(parameterValue) == ComplexType)or(str(type(parameterValue)) == "<type 'numpy.float64'>")):
sagun98
parents:
diff changeset
165 if(not type(parameterValue) == BooleanType):
sagun98
parents:
diff changeset
166 return True
sagun98
parents:
diff changeset
167 return False
sagun98
parents:
diff changeset
168
sagun98
parents:
diff changeset
169 #Tested 5
sagun98
parents:
diff changeset
170 @staticmethod
sagun98
parents:
diff changeset
171 def funcIsValidStringType(parameterValue):
sagun98
parents:
diff changeset
172 """
sagun98
parents:
diff changeset
173 Validates a parameter as a string. This allows the string to be blank or empty.
sagun98
parents:
diff changeset
174
sagun98
parents:
diff changeset
175 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
176 :type Unknown
sagun98
parents:
diff changeset
177 :return Boolean: True indicates the parameter is a string type.
sagun98
parents:
diff changeset
178 :type Boolean
sagun98
parents:
diff changeset
179 """
sagun98
parents:
diff changeset
180
sagun98
parents:
diff changeset
181 #Check to make sure it is not null
sagun98
parents:
diff changeset
182 if parameterValue == None:
sagun98
parents:
diff changeset
183 return False
sagun98
parents:
diff changeset
184
sagun98
parents:
diff changeset
185 #Check to make sure it is a string
sagun98
parents:
diff changeset
186 if not type(parameterValue) is StringType:
sagun98
parents:
diff changeset
187 return False
sagun98
parents:
diff changeset
188
sagun98
parents:
diff changeset
189 return True
sagun98
parents:
diff changeset
190
sagun98
parents:
diff changeset
191 #Tested 5
sagun98
parents:
diff changeset
192 @staticmethod
sagun98
parents:
diff changeset
193 def funcIsValidString(parameterValue):
sagun98
parents:
diff changeset
194 """
sagun98
parents:
diff changeset
195 Validates a parameter as a string. Does NOT allow string to be blank or empty.
sagun98
parents:
diff changeset
196
sagun98
parents:
diff changeset
197 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
198 :type Unknown
sagun98
parents:
diff changeset
199 :return Boolean: True indicates the parameter is a string.
sagun98
parents:
diff changeset
200 :type Boolean
sagun98
parents:
diff changeset
201 """
sagun98
parents:
diff changeset
202
sagun98
parents:
diff changeset
203 #Type check
sagun98
parents:
diff changeset
204 if not ValidateData.funcIsValidStringType(parameterValue):
sagun98
parents:
diff changeset
205 return False
sagun98
parents:
diff changeset
206
sagun98
parents:
diff changeset
207 #Check to see it is not blank
sagun98
parents:
diff changeset
208 if parameterValue.strip() == "":
sagun98
parents:
diff changeset
209 return False
sagun98
parents:
diff changeset
210 return True
sagun98
parents:
diff changeset
211
sagun98
parents:
diff changeset
212 @staticmethod
sagun98
parents:
diff changeset
213 def funcIsValidStringInt(parameterValue):
sagun98
parents:
diff changeset
214 """
sagun98
parents:
diff changeset
215 Validates a parameter that is a string as a format which is an integer.
sagun98
parents:
diff changeset
216
sagun98
parents:
diff changeset
217 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
218 :type Unknown
sagun98
parents:
diff changeset
219 """
sagun98
parents:
diff changeset
220
sagun98
parents:
diff changeset
221 #Type string check
sagun98
parents:
diff changeset
222 if not ValidateData.funcIsValidStringType(parameterValue):
sagun98
parents:
diff changeset
223 return False
sagun98
parents:
diff changeset
224
sagun98
parents:
diff changeset
225 #Check to see if the string can be converted to an integer
sagun98
parents:
diff changeset
226 try:
sagun98
parents:
diff changeset
227 int(parameterValue)
sagun98
parents:
diff changeset
228 except:
sagun98
parents:
diff changeset
229 return False
sagun98
parents:
diff changeset
230 return True
sagun98
parents:
diff changeset
231
sagun98
parents:
diff changeset
232 @staticmethod
sagun98
parents:
diff changeset
233 def funcIsValidStringFloat(parameterValue):
sagun98
parents:
diff changeset
234 """
sagun98
parents:
diff changeset
235 Validates a parameter that is a string as a format which is a numeric.
sagun98
parents:
diff changeset
236
sagun98
parents:
diff changeset
237 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
238 :type Unknown
sagun98
parents:
diff changeset
239 """
sagun98
parents:
diff changeset
240
sagun98
parents:
diff changeset
241 #Type string check
sagun98
parents:
diff changeset
242 if not ValidateData.funcIsValidStringType(parameterValue):
sagun98
parents:
diff changeset
243 return False
sagun98
parents:
diff changeset
244
sagun98
parents:
diff changeset
245 #Check to see if the string can be converted to a double
sagun98
parents:
diff changeset
246 try:
sagun98
parents:
diff changeset
247 float(parameterValue)
sagun98
parents:
diff changeset
248 except:
sagun98
parents:
diff changeset
249 return False
sagun98
parents:
diff changeset
250 return True
sagun98
parents:
diff changeset
251
sagun98
parents:
diff changeset
252 #Tested 6
sagun98
parents:
diff changeset
253 @staticmethod
sagun98
parents:
diff changeset
254 def funcIsValidFormatString(parameterValue):
sagun98
parents:
diff changeset
255 """
sagun98
parents:
diff changeset
256 Validates a parameter as a valid format string.
sagun98
parents:
diff changeset
257
sagun98
parents:
diff changeset
258 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
259 :type Unknown
sagun98
parents:
diff changeset
260 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
261 :type Boolean
sagun98
parents:
diff changeset
262 """
sagun98
parents:
diff changeset
263
sagun98
parents:
diff changeset
264 lettersValid = False
sagun98
parents:
diff changeset
265 if ValidateData.funcIsValidString(parameterValue):
sagun98
parents:
diff changeset
266 validChars = "BbcdfHhIiLlPpsx0123456789"
sagun98
parents:
diff changeset
267 for letter in parameterValue:
sagun98
parents:
diff changeset
268 lettersValid = letter in validChars
sagun98
parents:
diff changeset
269 if(not lettersValid):
sagun98
parents:
diff changeset
270 break
sagun98
parents:
diff changeset
271 return lettersValid
sagun98
parents:
diff changeset
272
sagun98
parents:
diff changeset
273 #Tested 5
sagun98
parents:
diff changeset
274 @staticmethod
sagun98
parents:
diff changeset
275 def funcIsValidChar(parameterValue):
sagun98
parents:
diff changeset
276 """
sagun98
parents:
diff changeset
277 Validates a parameter as a valid character.
sagun98
parents:
diff changeset
278
sagun98
parents:
diff changeset
279 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
280 :type Unknown
sagun98
parents:
diff changeset
281 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
282 :type Boolean
sagun98
parents:
diff changeset
283 """
sagun98
parents:
diff changeset
284
sagun98
parents:
diff changeset
285 return ValidateData.funcIsValidString(parameterValue)
sagun98
parents:
diff changeset
286
sagun98
parents:
diff changeset
287 #Tested 13
sagun98
parents:
diff changeset
288 @staticmethod
sagun98
parents:
diff changeset
289 def funcIsValidPositiveNumberChar(parameterValue):
sagun98
parents:
diff changeset
290 """
sagun98
parents:
diff changeset
291 Validates a parameter as a valid character representing a number.
sagun98
parents:
diff changeset
292
sagun98
parents:
diff changeset
293 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
294 :type Unknown
sagun98
parents:
diff changeset
295 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
296 :type Boolean
sagun98
parents:
diff changeset
297 """
sagun98
parents:
diff changeset
298
sagun98
parents:
diff changeset
299 #Check to make sure is a valid string
sagun98
parents:
diff changeset
300 if not ValidateData.funcIsValidString(parameterValue):
sagun98
parents:
diff changeset
301 return False
sagun98
parents:
diff changeset
302
sagun98
parents:
diff changeset
303 #Try to convert to decimal
sagun98
parents:
diff changeset
304 try:
sagun98
parents:
diff changeset
305 decimalConversion = decimal.Decimal(parameterValue)
sagun98
parents:
diff changeset
306 if decimalConversion < 0:
sagun98
parents:
diff changeset
307 return False
sagun98
parents:
diff changeset
308 except:
sagun98
parents:
diff changeset
309 return False
sagun98
parents:
diff changeset
310 return True
sagun98
parents:
diff changeset
311
sagun98
parents:
diff changeset
312 #Tested 9
sagun98
parents:
diff changeset
313 @staticmethod
sagun98
parents:
diff changeset
314 def funcIsValidFlagChar(parameterValue):
sagun98
parents:
diff changeset
315 """
sagun98
parents:
diff changeset
316 Validates a parameter as a valid character representing a boolean.
sagun98
parents:
diff changeset
317
sagun98
parents:
diff changeset
318 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
319 :type Unknown
sagun98
parents:
diff changeset
320 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
321 :type Boolean
sagun98
parents:
diff changeset
322 """
sagun98
parents:
diff changeset
323
sagun98
parents:
diff changeset
324 if parameterValue == '0' or parameterValue == "0" or parameterValue == '1' or parameterValue == "1":
sagun98
parents:
diff changeset
325 return True
sagun98
parents:
diff changeset
326 return False
sagun98
parents:
diff changeset
327
sagun98
parents:
diff changeset
328 #Tested 15
sagun98
parents:
diff changeset
329 @staticmethod
sagun98
parents:
diff changeset
330 def funcIsValidBoundedIntegerChar(parameterValue, iValueOne, iValueTwo):
sagun98
parents:
diff changeset
331 """
sagun98
parents:
diff changeset
332 Validates a parameter as a valid characater that represents an integer inclusively bounded by two given values.
sagun98
parents:
diff changeset
333
sagun98
parents:
diff changeset
334 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
335 :type Unknown
sagun98
parents:
diff changeset
336 :param iValueOne: One bound for the value.
sagun98
parents:
diff changeset
337 :type Integer
sagun98
parents:
diff changeset
338 :param iValueTwo: The other bound for the data.
sagun98
parents:
diff changeset
339 :type Integer
sagun98
parents:
diff changeset
340 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
341 :type Boolean
sagun98
parents:
diff changeset
342 """
sagun98
parents:
diff changeset
343
sagun98
parents:
diff changeset
344 #Check to make sure is a valid string
sagun98
parents:
diff changeset
345 if not ValidateData.funcIsValidString(parameterValue):
sagun98
parents:
diff changeset
346 return False
sagun98
parents:
diff changeset
347
sagun98
parents:
diff changeset
348 #Check to make sure is a valid integer
sagun98
parents:
diff changeset
349 if not ValidateData.funcIsValidInteger(iValueOne):
sagun98
parents:
diff changeset
350 return False
sagun98
parents:
diff changeset
351
sagun98
parents:
diff changeset
352 #Check to make sure is a valid integer
sagun98
parents:
diff changeset
353 if not ValidateData.funcIsValidInteger(iValueTwo):
sagun98
parents:
diff changeset
354 return False
sagun98
parents:
diff changeset
355
sagun98
parents:
diff changeset
356 #Try to convert to decimal
sagun98
parents:
diff changeset
357 try:
sagun98
parents:
diff changeset
358 intConversion = int(parameterValue)
sagun98
parents:
diff changeset
359 if(iValueOne < iValueTwo):
sagun98
parents:
diff changeset
360 if ((intConversion >= iValueOne) and (intConversion <= iValueTwo)):
sagun98
parents:
diff changeset
361 return True
sagun98
parents:
diff changeset
362 return False
sagun98
parents:
diff changeset
363 if(iValueTwo < iValueOne):
sagun98
parents:
diff changeset
364 if ((intConversion >= iValueTwo) and (intConversion <= iValueOne)):
sagun98
parents:
diff changeset
365 return True
sagun98
parents:
diff changeset
366 return False
sagun98
parents:
diff changeset
367 if(iValueOne == iValueTwo):
sagun98
parents:
diff changeset
368 if (intConversion == iValueOne):
sagun98
parents:
diff changeset
369 return True
sagun98
parents:
diff changeset
370 return False
sagun98
parents:
diff changeset
371 except:
sagun98
parents:
diff changeset
372 return False
sagun98
parents:
diff changeset
373
sagun98
parents:
diff changeset
374 #Tested 9
sagun98
parents:
diff changeset
375 @staticmethod
sagun98
parents:
diff changeset
376 def funcIsValidList(parameterValue):
sagun98
parents:
diff changeset
377 """
sagun98
parents:
diff changeset
378 Validates a parameter as a list.
sagun98
parents:
diff changeset
379
sagun98
parents:
diff changeset
380 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
381 :type Unknown
sagun98
parents:
diff changeset
382 :return Boolean: True indicates the parameter is a list
sagun98
parents:
diff changeset
383 :type Boolean
sagun98
parents:
diff changeset
384 """
sagun98
parents:
diff changeset
385
sagun98
parents:
diff changeset
386 #Check to make sure it is not null
sagun98
parents:
diff changeset
387 if parameterValue == None:
sagun98
parents:
diff changeset
388 return False
sagun98
parents:
diff changeset
389
sagun98
parents:
diff changeset
390 #Check to make sure it is a list
sagun98
parents:
diff changeset
391 if not type(parameterValue) is ListType:
sagun98
parents:
diff changeset
392 return False
sagun98
parents:
diff changeset
393
sagun98
parents:
diff changeset
394 #Check elements
sagun98
parents:
diff changeset
395 listSize = len(parameterValue)
sagun98
parents:
diff changeset
396 for i in range(0,listSize):
sagun98
parents:
diff changeset
397 if parameterValue[i] == None:
sagun98
parents:
diff changeset
398 return False
sagun98
parents:
diff changeset
399 if type(parameterValue[i]) is ListType:
sagun98
parents:
diff changeset
400 if ValidateData.funcIsValidList(parameterValue[i]) == False:
sagun98
parents:
diff changeset
401 return False
sagun98
parents:
diff changeset
402 return True
sagun98
parents:
diff changeset
403
sagun98
parents:
diff changeset
404 #Tested 9
sagun98
parents:
diff changeset
405 @staticmethod
sagun98
parents:
diff changeset
406 def funcIsValidTuple(parameterValue):
sagun98
parents:
diff changeset
407 """
sagun98
parents:
diff changeset
408 Validates a parameter as a tuple.
sagun98
parents:
diff changeset
409
sagun98
parents:
diff changeset
410 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
411 :type Unknown
sagun98
parents:
diff changeset
412 :return Boolean: True indicates the parameter is a tuple
sagun98
parents:
diff changeset
413 :type Boolean
sagun98
parents:
diff changeset
414 """
sagun98
parents:
diff changeset
415
sagun98
parents:
diff changeset
416 #Check to make sure it is not null
sagun98
parents:
diff changeset
417 if parameterValue == None:
sagun98
parents:
diff changeset
418 return False
sagun98
parents:
diff changeset
419
sagun98
parents:
diff changeset
420 #Check to make sure it is a string
sagun98
parents:
diff changeset
421 if not type(parameterValue) is TupleType:
sagun98
parents:
diff changeset
422 return False
sagun98
parents:
diff changeset
423
sagun98
parents:
diff changeset
424 #Check elements
sagun98
parents:
diff changeset
425 tupleSize = len(parameterValue)
sagun98
parents:
diff changeset
426 for i in range(0,tupleSize):
sagun98
parents:
diff changeset
427 if parameterValue[i] == None:
sagun98
parents:
diff changeset
428 return False
sagun98
parents:
diff changeset
429 if type(parameterValue[i]) is TupleType:
sagun98
parents:
diff changeset
430 if ValidateData.funcIsValidTuple(parameterValue[i]) == False:
sagun98
parents:
diff changeset
431 return False
sagun98
parents:
diff changeset
432 return True
sagun98
parents:
diff changeset
433
sagun98
parents:
diff changeset
434 #Tested 7
sagun98
parents:
diff changeset
435 @staticmethod
sagun98
parents:
diff changeset
436 def funcIsValidNumericList(parameterValue):
sagun98
parents:
diff changeset
437 """
sagun98
parents:
diff changeset
438 Validates a parameter as a list of numeric values.
sagun98
parents:
diff changeset
439
sagun98
parents:
diff changeset
440 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
441 :type Unknown
sagun98
parents:
diff changeset
442 :return Boolean: True indicates the parameter is a list of numeric values.
sagun98
parents:
diff changeset
443 :type Boolean
sagun98
parents:
diff changeset
444 """
sagun98
parents:
diff changeset
445
sagun98
parents:
diff changeset
446 #Check is valid list
sagun98
parents:
diff changeset
447 if(not ValidateData.funcIsValidList(parameterValue)):
sagun98
parents:
diff changeset
448 return False
sagun98
parents:
diff changeset
449
sagun98
parents:
diff changeset
450 #Check elements
sagun98
parents:
diff changeset
451 listSize = len(parameterValue)
sagun98
parents:
diff changeset
452 for i in xrange(0,listSize):
sagun98
parents:
diff changeset
453 if(not ValidateData.funcIsValidNumeric(parameterValue[i])):
sagun98
parents:
diff changeset
454 return False
sagun98
parents:
diff changeset
455 return True
sagun98
parents:
diff changeset
456
sagun98
parents:
diff changeset
457 #Tested 7
sagun98
parents:
diff changeset
458 @staticmethod
sagun98
parents:
diff changeset
459 def funcIsValidStringList(parameterValue):
sagun98
parents:
diff changeset
460 """
sagun98
parents:
diff changeset
461 Validates a parameter as a list of string values.
sagun98
parents:
diff changeset
462
sagun98
parents:
diff changeset
463 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
464 :type Unknown
sagun98
parents:
diff changeset
465 :return Boolean: True indicates the parameter is a list of string values.
sagun98
parents:
diff changeset
466 :type Boolean
sagun98
parents:
diff changeset
467 """
sagun98
parents:
diff changeset
468
sagun98
parents:
diff changeset
469 #Check is valid list
sagun98
parents:
diff changeset
470 if(not ValidateData.funcIsValidList(parameterValue)):
sagun98
parents:
diff changeset
471 return False
sagun98
parents:
diff changeset
472
sagun98
parents:
diff changeset
473 #Check elements
sagun98
parents:
diff changeset
474 listSize = len(parameterValue)
sagun98
parents:
diff changeset
475 for i in xrange(0,listSize):
sagun98
parents:
diff changeset
476 if(not ValidateData.funcIsValidString(parameterValue[i])):
sagun98
parents:
diff changeset
477 return False
sagun98
parents:
diff changeset
478 return True
sagun98
parents:
diff changeset
479
sagun98
parents:
diff changeset
480 #Tested 4
sagun98
parents:
diff changeset
481 @staticmethod
sagun98
parents:
diff changeset
482 def funcIsValidNPArray(parameterValue):
sagun98
parents:
diff changeset
483 """
sagun98
parents:
diff changeset
484 Validates a parameter as a numpy array.
sagun98
parents:
diff changeset
485
sagun98
parents:
diff changeset
486 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
487 :type Unknown
sagun98
parents:
diff changeset
488 :return Boolean: True indicates the parameter is a numpy array.
sagun98
parents:
diff changeset
489 :type Boolean
sagun98
parents:
diff changeset
490 """
sagun98
parents:
diff changeset
491
sagun98
parents:
diff changeset
492 #Check to make sure it is not null
sagun98
parents:
diff changeset
493 if parameterValue == None:
sagun98
parents:
diff changeset
494 return False
sagun98
parents:
diff changeset
495
sagun98
parents:
diff changeset
496 #Check to make sure it is a structure array
sagun98
parents:
diff changeset
497 if not str(type(parameterValue)) == "<type 'numpy.ndarray'>":
sagun98
parents:
diff changeset
498 return False
sagun98
parents:
diff changeset
499
sagun98
parents:
diff changeset
500 return True
sagun98
parents:
diff changeset
501
sagun98
parents:
diff changeset
502 #Tested 9
sagun98
parents:
diff changeset
503 @staticmethod
sagun98
parents:
diff changeset
504 def funcIsValidDictionary(parameterValue):
sagun98
parents:
diff changeset
505 """
sagun98
parents:
diff changeset
506 Validates a parameter as a dictionary.
sagun98
parents:
diff changeset
507
sagun98
parents:
diff changeset
508 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
509 :type Unknown
sagun98
parents:
diff changeset
510 :return Boolean: True indicates the parameter is a dictionary.
sagun98
parents:
diff changeset
511 :type Boolean
sagun98
parents:
diff changeset
512 """
sagun98
parents:
diff changeset
513
sagun98
parents:
diff changeset
514 #Check to make sure it is not null
sagun98
parents:
diff changeset
515 if parameterValue == None:
sagun98
parents:
diff changeset
516 return False
sagun98
parents:
diff changeset
517
sagun98
parents:
diff changeset
518 #Check to make sure it is a string
sagun98
parents:
diff changeset
519 if not type(parameterValue) is DictType:
sagun98
parents:
diff changeset
520 return False
sagun98
parents:
diff changeset
521
sagun98
parents:
diff changeset
522 #Check key elements
sagun98
parents:
diff changeset
523 keyList = parameterValue.keys()
sagun98
parents:
diff changeset
524 keyListSize = len(keyList)
sagun98
parents:
diff changeset
525 for i in range(0,keyListSize):
sagun98
parents:
diff changeset
526 if keyList[i] == None:
sagun98
parents:
diff changeset
527 return False
sagun98
parents:
diff changeset
528 if type(keyList[i]) is ListType:
sagun98
parents:
diff changeset
529 if validateData.funcIsValidList(keyList[i]) == False:
sagun98
parents:
diff changeset
530 return False
sagun98
parents:
diff changeset
531
sagun98
parents:
diff changeset
532 #Check key elements
sagun98
parents:
diff changeset
533 itemList = parameterValue.values()
sagun98
parents:
diff changeset
534 itemListSize = len(itemList)
sagun98
parents:
diff changeset
535
sagun98
parents:
diff changeset
536 for i in range(0,itemListSize):
sagun98
parents:
diff changeset
537 if itemList[i] == None:
sagun98
parents:
diff changeset
538 return False
sagun98
parents:
diff changeset
539 if type(itemList[i]) is ListType:
sagun98
parents:
diff changeset
540 if ValidateData.funcIsValidList(itemList[i]) == False:
sagun98
parents:
diff changeset
541 return False
sagun98
parents:
diff changeset
542 return True
sagun98
parents:
diff changeset
543
sagun98
parents:
diff changeset
544 #Tested 18
sagun98
parents:
diff changeset
545 @staticmethod
sagun98
parents:
diff changeset
546 def funcIsValidDNASequence(parameterValue):
sagun98
parents:
diff changeset
547 """
sagun98
parents:
diff changeset
548 Validates a parameter as a valid DNA sequence.
sagun98
parents:
diff changeset
549
sagun98
parents:
diff changeset
550 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
551 :type Unknown
sagun98
parents:
diff changeset
552 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
553 :type Boolean
sagun98
parents:
diff changeset
554 """
sagun98
parents:
diff changeset
555
sagun98
parents:
diff changeset
556 if ValidateData.funcIsValidString(parameterValue):
sagun98
parents:
diff changeset
557 expression = re.compile(r'[^atcgATCG]')
sagun98
parents:
diff changeset
558 if not None == expression.search(parameterValue):
sagun98
parents:
diff changeset
559 return False
sagun98
parents:
diff changeset
560 return True
sagun98
parents:
diff changeset
561 return False
sagun98
parents:
diff changeset
562
sagun98
parents:
diff changeset
563 #Tested 15
sagun98
parents:
diff changeset
564 @staticmethod
sagun98
parents:
diff changeset
565 def funcIsValidNucleotideBase(parameterValue):
sagun98
parents:
diff changeset
566 """
sagun98
parents:
diff changeset
567 Validates a parameter as a character which is a valid nucleotide representation.
sagun98
parents:
diff changeset
568
sagun98
parents:
diff changeset
569 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
570 :type Unknown
sagun98
parents:
diff changeset
571 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
572 :type Boolean
sagun98
parents:
diff changeset
573 """
sagun98
parents:
diff changeset
574
sagun98
parents:
diff changeset
575 if (ValidateData.funcIsValidDNASequence(parameterValue) or (parameterValue == 'u') or (parameterValue == "U")):
sagun98
parents:
diff changeset
576 if (len(parameterValue) == 1):
sagun98
parents:
diff changeset
577 return True
sagun98
parents:
diff changeset
578 return False
sagun98
parents:
diff changeset
579
sagun98
parents:
diff changeset
580 #Testing 4
sagun98
parents:
diff changeset
581 @staticmethod
sagun98
parents:
diff changeset
582 def funcIsValidFileName(parameterValue):
sagun98
parents:
diff changeset
583 """
sagun98
parents:
diff changeset
584 Validates a parameter as a valid file name.
sagun98
parents:
diff changeset
585
sagun98
parents:
diff changeset
586 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
587 :type Unknown
sagun98
parents:
diff changeset
588 :return Boolean: True indicates the parameter is a valid file path.
sagun98
parents:
diff changeset
589 :type Boolean
sagun98
parents:
diff changeset
590 """
sagun98
parents:
diff changeset
591
sagun98
parents:
diff changeset
592 if parameterValue is None:
sagun98
parents:
diff changeset
593 return False
sagun98
parents:
diff changeset
594 elif(ValidateData.funcIsValidString(parameterValue)):
sagun98
parents:
diff changeset
595 return os.path.exists(parameterValue)
sagun98
parents:
diff changeset
596 return False
sagun98
parents:
diff changeset
597
sagun98
parents:
diff changeset
598 #Tested 5
sagun98
parents:
diff changeset
599 @staticmethod
sagun98
parents:
diff changeset
600 def funcIsValidClass(parameterValue, strCorrectName):
sagun98
parents:
diff changeset
601 """
sagun98
parents:
diff changeset
602 Validates a parameter as a valid class (of a specifc type given by name).
sagun98
parents:
diff changeset
603
sagun98
parents:
diff changeset
604 :param parameterValue: Value to be evaluated.
sagun98
parents:
diff changeset
605 :type Unknown
sagun98
parents:
diff changeset
606 :param strCorrectName: Name of te class the parameter should be.
sagun98
parents:
diff changeset
607 :type Unknown
sagun98
parents:
diff changeset
608 :return Boolean: True indicates the parameter is a valid value.
sagun98
parents:
diff changeset
609 :type Boolean
sagun98
parents:
diff changeset
610 """
sagun98
parents:
diff changeset
611
sagun98
parents:
diff changeset
612 if(parameterValue==None):
sagun98
parents:
diff changeset
613 return False
sagun98
parents:
diff changeset
614 if not ValidateData.funcIsValidString(strCorrectName):
sagun98
parents:
diff changeset
615 return False
sagun98
parents:
diff changeset
616 classType = type(parameterValue).__name__
sagun98
parents:
diff changeset
617 if(classType == strCorrectName):
sagun98
parents:
diff changeset
618 return True
sagun98
parents:
diff changeset
619 if(classType == 'instance'):
sagun98
parents:
diff changeset
620 if(parameterValue.__class__.__name__==strCorrectName):
sagun98
parents:
diff changeset
621 return True
sagun98
parents:
diff changeset
622 else:
sagun98
parents:
diff changeset
623 return False
sagun98
parents:
diff changeset
624 return False