
    Id	                     n    d dl mZmZ  G d de      Z G d de      Z G d de      Z G d	 d
e      Zy)    )ABCMetaabstractmethodc                       e Zd Zy)ValidationErrorN)__name__
__module____qualname__     9/usr/lib/python3/dist-packages/samba/netcmd/validators.pyr   r      s    r   r   c                       e Zd Zed        Zy)	Validatorc                      y Nr
   selffieldvalues      r   __call__zValidator.__call__    s    r   N)r   r   r	   r   r   r
   r   r   r   r      s     r   r   )	metaclassc                       e Zd ZdZddZd Zy)Rangez0Checks if the value is within range min ... max.Nc                 >    ||t        d      || _        || _        y )Nz/Range without a min and max doesn't make sense.)
ValueErrorminmax)r   r   r   s      r   __init__zRange.__init__(   s%    ;3;NOOr   c                    | j                   6| j                  *|| j                   k  rt        | d| j                          y| j                   6| j                  *|| j                  kD  rt        | d| j                         y| j                   S| j                  F|| j                   k  s|| j                  kD  r't        | d| j                    d| j                         yyy)zCheck if value is within the range min ... max.

        It is possible to omit min, or omit max, in which case a more
        tailored error message is returned.
        Nz must be at least z cannot be greater than z must be between z and )r   r   r   r   s      r   r   zRange.__call__/   s     88DHH$4txx%/A$((&LMM   XX$(("6txx%g5dhhZ@B B   XX!dhh&:txx5488#3%g.txxjdhhZHJ J $4 ';!r   )NNr   r   r	   __doc__r   r   r
   r   r   r   r   %   s    :Jr   r   c                       e Zd ZdZd Zd Zy)OneOfz5Checks if the value is in a list of possible choices.c                 $    t        |      | _        y r   )sortedchoices)r   r%   s     r   r   zOneOf.__init__G   s    gr   c                 v    || j                   vr+dj                  | j                         }t        | d|       y )Nz, z must be one of: )r%   joinr   )r   r   r   allowed_choicess       r   r   zOneOf.__call__J   s=    $"ii5O!UG+<_<M"NOO %r   Nr   r
   r   r   r"   r"   D   s    ?'Pr   r"   N)abcr   r   	Exceptionr   r   r   r"   r
   r   r   <module>r+      s>   . (	i 	' JI J>	PI 	Pr   