The value can be supplied as a string - e.g. from a config file. In this case the check will also convert the value to the required type. This allows you to add validation as a transparent layer to access data stored as strings. The validation checks that the data is correct and converts it to the expected type.
Some standard checks are provided for basic data types. Additional checks are easy to write. They can be provided when the Validator
is instantiated or added afterwards.
The standard functions work with the following basic data types :
integers
floats
booleans
strings
ip_addr
plus lists of these datatypes
Adding additional checks is done through coding simple functions.
The full set of standard checks are :
'integer': matches integer values (including negative)
Takesoptional'min'and'max'arguments
Takes optional 'min' and 'max' arguments
'float': matches float values
Has the same parameters as the integer check.
'boolean': matches boolean values - True
or False
Acceptable string values for True are :
true, on, yes, 1
Acceptable string values for False are :
false, off, no, 0
Any other value raises an error.
'ip_addr': matches an Internet Protocol address, v.4, represented
by a dotted-quad string, i.e. '1.2.3.4'.
'string': matches any string.
Takes optional keyword args 'min' and 'max' to specify min and max lengths of the string.
'list': matches any list.
Takes optional keyword args 'min', and 'max' to specify min and max sizes of the list. (Always returns a list.)
'tuple': matches any tuple.
Takes optional keyword args 'min', and 'max' to specify min and max sizes of the tuple. (Always returns a tuple.)
'int_list': Matches a list of integers.
Takes the same arguments as list.
'float_list': Matches a list of floats.
Takes the same arguments as list.
'bool_list': Matches a list of boolean values.
Takes the same arguments as list.
'ip_addr_list': Matches a list of IP addresses.
Takes the same arguments as list.
'string_list': Matches a list of strings.
Takes the same arguments as list.
'mixed_list': Matches a list with different types in
specific positions. List size must match the number of arguments.
Each position can be one of : 'integer', 'float', 'ip_addr', 'string', 'boolean'
So to specify a list with two strings followed by two integers, you write the check as : :
mixed_list('string', 'string', 'integer', 'integer')
'pass': This check matches everything ! It never fails
and the value is unchanged.
It is also the default if no check is specified.
'option': This check matches any from a list of options.
Youspecifythischeckwith
You specify this check with
You can supply a default value (returned if no value is supplied) using the default keyword argument.
You specify a list argument for default using a list constructor syntax in the check : :
checkname(arg1, arg2, default=list('val 1', 'val 2', 'val 3'))
A badly formatted set of arguments will raise a VdtParamError
.
The Validator object is used to check that supplied values conform to a specification.
The Validator object is used to check that supplied values conform to a specification.
The value can be supplied as a string - e.g. from a config file. In this case the check will also convert the value to the required type. This allows you to add validation as a transparent layer to access data stored as strings. The validation checks that the data is correct and converts it to the expected type.
Some standard checks are provided for basic data types. Additional checks are easy to write. They can be provided when the Validator
is instantiated or added afterwards.
The standard functions work with the following basic data types :
integers
floats
booleans
strings
ip_addr
plus lists of these datatypes
Adding additional checks is done through coding simple functions.
The full set of standard checks are :
'integer': matches integer values (including negative)
Takesoptional'min'and'max'arguments
Takes optional 'min' and 'max' arguments
'float': matches float values
Has the same parameters as the integer check.
'boolean': matches boolean values - True
or False
Acceptable string values for True are :
true, on, yes, 1
Acceptable string values for False are :
false, off, no, 0
Any other value raises an error.
'ip_addr': matches an Internet Protocol address, v.4, represented
by a dotted-quad string, i.e. '1.2.3.4'.
'string': matches any string.
Takes optional keyword args 'min' and 'max' to specify min and max lengths of the string.
'list': matches any list.
Takes optional keyword args 'min', and 'max' to specify min and max sizes of the list. (Always returns a list.)
'tuple': matches any tuple.
Takes optional keyword args 'min', and 'max' to specify min and max sizes of the tuple. (Always returns a tuple.)
'int_list': Matches a list of integers.
Takes the same arguments as list.
'float_list': Matches a list of floats.
Takes the same arguments as list.
'bool_list': Matches a list of boolean values.
Takes the same arguments as list.
'ip_addr_list': Matches a list of IP addresses.
Takes the same arguments as list.
'string_list': Matches a list of strings.
Takes the same arguments as list.
'mixed_list': Matches a list with different types in
specific positions. List size must match the number of arguments.
Each position can be one of : 'integer', 'float', 'ip_addr', 'string', 'boolean'
So to specify a list with two strings followed by two integers, you write the check as : :
mixed_list('string', 'string', 'integer', 'integer')
'pass': This check matches everything ! It never fails
and the value is unchanged.
It is also the default if no check is specified.
'option': This check matches any from a list of options.
Youspecifythischeckwith
You specify this check with
You can supply a default value (returned if no value is supplied) using the default keyword argument.
You specify a list argument for default using a list constructor syntax in the check : :
checkname(arg1, arg2, default=list('val 1', 'val 2', 'val 3'))
A badly formatted set of arguments will raise a VdtParamError
.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them