zoom.validators module¶
zoom.validators
-
class
zoom.validators.Cleaner(transformer)¶ Bases:
objectA content cleaner.
>>> Cleaner(str.lower).clean('Test') 'test'
>>> import decimal >>> Cleaner(decimal.Decimal).clean('10') Decimal('10')
-
clean(value)¶ cleans up a value
-
valid(value)¶ tests validity of a value
-
-
class
zoom.validators.DateValidator(date_format='%b %d, %Y')¶ Bases:
zoom.validators.ValidatorDate validator
>>> v = DateValidator() >>> v.valid('asdf') False >>> v.msg 'enter valid date in "Jan 31, 2016" format'
>>> v.valid('Jan 1, 2016') True
>>> v.valid('Jan 41, 2016') False
>>> v.valid('2016-01-14') True
>>> v.valid('2016-01-41') False
>>> v.valid(datetime.date(2016, 1, 14)) True
-
class
zoom.validators.MaximumValue(max_value, empty_allowed=True)¶ Bases:
zoom.validators.ValidatorMaximum value validator
>>> v = MaximumValue(100) >>> v.valid(50) True >>> v.valid(120) False
>>> from datetime import date >>> v = MaximumValue(date(2015,1,1)) >>> v.valid(date(2015,1,1)) True >>> v.valid(date(2015,1,2)) False >>> v.msg 'value must be at most 2015-01-01'
-
class
zoom.validators.MinimumLength(min_length, empty_allowed=False)¶ Bases:
zoom.validators.ValidatorA minimum length validator
>>> v = MinimumLength(2) >>> v.test('') False >>> v.test(' ') False >>> v.test(' ') False >>> v.test('t') False >>> v.msg 'minimum length 2' >>> v.test('te') True
>>> v = MinimumLength(2, True) >>> v.test('') True >>> v.test(' ') True >>> v.test(' ') True >>> v.test('t') False >>> v.test('te') True
-
class
zoom.validators.MinimumValue(min_value, empty_allowed=True)¶ Bases:
zoom.validators.ValidatorMinimum value validator
>>> v = MinimumValue(100) >>> v.valid(50) False >>> v.valid(120) True
-
class
zoom.validators.PostalCodeValidator¶ Bases:
zoom.validators.RegexValidatorA Postal Code Validator
>>> validator = PostalCodeValidator() >>> validator.valid('V8X 1G1') True
>>> validator = PostalCodeValidator() >>> validator.valid('V8X1G1') True
>>> validator = PostalCodeValidator() >>> validator.valid('V8X XG1') False
>>> validator = PostalCodeValidator() >>> validator.valid('8X XG1') False
>>> validator = PostalCodeValidator() >>> validator.valid('V8X 1g1') True
-
class
zoom.validators.RegexValidator(msg, regex, options=0)¶ Bases:
zoom.validators.ValidatorA regular expression validator
>>> validator = RegexValidator('invalid input', r'^[a-zA-Z0-9]+$') >>> validator.valid('1') True
>>> validator = RegexValidator('invalid input', r'^[a-zA-Z0-9]+$') >>> validator.valid('') True
>>> is_valid = RegexValidator('invalid input', r'^[a-zA-Z0-9]+$') >>> is_valid('') True >>> is_valid('*') False
>>> validator = RegexValidator('invalid input', r'^[a-zA-Z0-9]+$') >>> validator.valid('-') False >>> validator.msg 'invalid input'
-
valid(value)¶ tests validity of a value
-
-
class
zoom.validators.TimeValidator(time_format='%I:%M %p')¶ Bases:
zoom.validators.ValidatorTime validator
Validates a time in a variety of formats with time_format being the preferred format.
>>> import locale >>> locale.setlocale(locale.LC_ALL, 'C') 'C'
>>> v = TimeValidator() >>> v.valid('asdf') False >>> v.msg 'enter valid time in 12 hour "02:20 PM" format'
>>> v.valid('10:20') True
>>> v.valid('07:20') True
>>> v.valid('7:20') True
>>> v.valid('10:70') False
>>> v.valid('14:20') True
>>> v.valid('10:20 PM') True
>>> v.valid('14:70') False
>>> v.valid('10:20:10') True
>>> v.valid('10:20:70') False
>>> v.valid('10:70:20') False
>>> v.valid(datetime.time(10, 20)) True
>>> v.valid(datetime.time(10, 20, 30)) True
-
valid_formats= ['%I:%M %p', '%I:%M:%S %p', '%H:%M', '%H:%M:%S']¶
-
-
class
zoom.validators.URLValidator¶ Bases:
zoom.validators.RegexValidatorA URL Validator
>>> validator = URLValidator() >>> validator.valid('http://google.com') True
>>> validator = URLValidator() >>> validator.valid('test123') False
-
class
zoom.validators.Validator(msg, test)¶ Bases:
objectA content validator.
>>> is_true = Validator('not true', bool) >>> is_true.valid(1) True
>>> is_true.valid([]) False
>>> is_true.msg 'not true'
>>> is_true.clean({}) {}
-
clean(value)¶ cleans up a value
-
valid(value)¶ tests validity of a value
-
-
zoom.validators.email_valid(email)¶ test for valid email address
>>> email_valid('test@testco.com') True
>>> email_valid('test@@testco.com') False
>>> email_valid('test@testco') False
-
zoom.validators.empty(value)¶ test if a value is empty
>>> empty('') True
>>> empty(' ') True
>>> empty('\n') True
>>> empty('x') False
>>> empty(1) False
-
zoom.validators.image_mime_type_valid(data)¶ check data against the more commonly browser supported mime types
-
zoom.validators.is_present(value)¶ test if a value is present
>>> is_present('') False
>>> is_present('x') True
-
zoom.validators.latitude_valid(value)¶ test for valid latitude
>>> latitude_valid(45) True
>>> latitude_valid(100) False
>>> latitude_valid('x') False
-
zoom.validators.longitude_valid(value)¶ test for valid longitude
>>> longitude_valid(145) True
>>> longitude_valid(200) False
>>> longitude_valid('x') False
-
zoom.validators.number_valid(value)¶ Test for valid number
>>> number_valid(0) True >>> number_valid(-1) True >>> number_valid(1.12039123) True >>> number_valid('1.12039123') True >>> number_valid('x1.12039123') False >>> number_valid('t') False >>> number_valid('') True >>> number_valid(False) # not sure if this is what's we want True