Validators¶
This module provides some validators and validator factories, intended mainly
for use in the validate parameter of Fields.
-
norman.validate.ifset(func)¶ Return a
Fieldvalidator returningfunc(value)if value is notNotSet. If value isNotSet, then it is returned andfuncis never called. This is normally used as a wrapper around another validator to permitNotSetvalues to pass. For example:>>> validator = ifset(istype(float)) >>> validator(4.3) 4.3 >>> validator(NotSet) NotSet >>> validator(None) Traceback (most recent call last): ... ValidationError: None
-
norman.validate.isfalse(func[, default])¶ Return a
Fieldvalidator which passes if func returnsFalse.Parameters: - func – A callable which returns
Falseif the value passes. - default – The value to return if func returns
True. If this is omitted, aValidationErroris raised.
- func – A callable which returns
-
norman.validate.istrue(func[, default])¶ Return a
Fieldvalidator which passes if func returnsTrue.Parameters: - func – A callable which returns
Trueif the value passes. - default – The value to return if func returns
False. If this is omitted, aValidationErroris raised.
- func – A callable which returns
-
norman.validate.istype(t[, t2[, t3[, ...]]])¶ Return a validator which raises a
ValidationErroron an invalid type.Parameters: t – The expected type, or types.
-
norman.validate.map(mapping)¶ Return a validator which maps values to new values.
Parameters: mapping – A dict mapping old values to new values. If a value is passed which has no mapping then it is accepted unchanged. For example:
>>> validator = map({1: 'one', 0: NotSet}) >>> validator(1) 'one' >>> validator(0) NotSet >>> validator(2) 2
-
norman.validate.settype(t, default)¶ Return a
Fieldvalidator which converts the value to type t.Parameters: - t – The required type.
- default – If the value cannot be converted, then use this value instead.
The following three functions return validators which convert a value to
a datetime object using a format string. See
strftime() and strptime() Behavior for more information of format strings.
-
norman.validate.todate([fmt])¶ Return a validator which converts a string to a
datetime.date. If fmt is omitted, the ISO representation used bydatetime.date.__str__is used, otherwise it should be a format string fordatetime.datetime.strptime.If the value passed to the validator is a
datetime.datetime, the date component is returned. If it is adatetime.dateit is returned unchanged.The return value is always a
datetime.dateobject. If the value cannot be converted aValidationErroris raised.
-
norman.validate.todatetime([fmt])¶ Return a validator which converts a string to a
datetime.datetime. If fmt is omitted, the ISO representation used bydatetime.datetime.__str__is used, otherwise it should be a format string fordatetime.datetime.strptime.If the value passed to the validator is a
datetime.datetimeit is returned unchanged. If it is adatetime.dateordatetime.time, it is converted to adatetime.datetime, replacing missing the missing information with1900-1-1or00:00:00.The return value is always a
datetime.datetimeobject. If the value cannot be converted aValidationErroris raised.
-
norman.validate.totime([fmt])¶ Return a validator which converts a string to a
datetime.time. If fmt is omitted, the ISO representation used bydatetime.time.__str__is used, otherwise it should be a format string fordatetime.datetime.strptime.If the value passed to the validator is a
datetime.datetime, the time component is returned. If it is adatetime.timeit is returned unchanged.The return value is always a
datetime.timeobject. If the value cannot be converted aValidationErroris raised.