File: //lib/python3.12/site-packages/configobj/__pycache__/validate.cpython-312.opt-1.pyc
�
�% gv� � � � d Z dZdZddlZddlZddlmZ ej dk reZne Zd� Z
eZ ej dej ej z � Z ej d ej ej z � Zd
Zdez Z e d
� Zd� Z G d� de� Z G d� de� Z G d� de� Z G d� de� Z G d� de� Z G d� de� Z G d� de� Z G d� de� Z! G d� d e� Z" G d!� d"e� Z# G d#� d$e$� Z%d?d&�Z&d@d'�Z'd@d(�Z(d)d)d)d)d)d%d%d%d%d%d*�
Z)d+� Z*d,� Z+d@d-�Z,d@d.�Z-d@d/�Z.d@d0�Z/d@d1�Z0d@d2�Z1d@d3�Z2d@d4�Z3d@d5�Z4e'e(e+e.e*d6�Z5d7� Z6d8� Z7d9� Z8d:� Z9d;� Z:e;d<k( r�ddlZddl<Z<ejz j} d<� Z?e?j� j� � ZBeBj� d= e%� i� e<j� e?eBe<j� e<j� z �>� \ ZGZHyy# e$ r d� ZY ��ow xY w)Aa
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)
Takes optional 'min' and 'max' arguments : ::
integer()
integer(3, 9) # any value from 3 to 9
integer(min=0) # any positive value
integer(max=9)
* '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.
You specify this check with : ::
option('option 1', 'option 2', 'option 3')
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``.
z1.0.1)�__version__�dottedQuadToNum�numToDottedQuad�
ValidateError�VdtUnknownCheckError�
VdtParamError�VdtTypeError�
VdtValueError�VdtValueTooSmallError�VdtValueTooBigError�VdtValueTooShortError�VdtValueTooLongError�VdtMissingValue� Validator�
is_integer�is_float�
is_boolean�is_list�is_tuple�
is_ip_addr� is_string�is_int_list�is_bool_list�
is_float_list�is_string_list�is_ip_addr_list�
is_mixed_list� is_option� N)�pprint)� c � � | S �N� )�xs �7/usr/lib/python3.12/site-packages/configobj/validate.py�<lambda>r&