
    Ii              
       j    S r SSKJr  SSKJr  SSKJr  \SSS.S\S	\\S4   S
\\S4   4S jj5       rg)zLength.    )Union   )between)	validatorNmin_valmax_valvaluer   r	   c                   Ub  US:  a  [        S5      eUb  US:  a  [        S5      e[        [        [        U 5      XS95      $ )a=  Return whether or not the length of given string is within a specified range.

Examples:
    >>> length('something', min_val=2)
    # Output: True
    >>> length('something', min_val=9, max_val=9)
    # Output: True
    >>> length('something', max_val=5)
    # Output: ValidationError(func=length, ...)

Args:
    value:
        The string to validate.
    min_val:
        The minimum required length of the string. If not provided,
        minimum length will not be checked.
    max_val:
        The maximum length of the string. If not provided,
        maximum length will not be checked.

Returns:
    (Literal[True]): If `len(value)` is in between the given conditions.
    (ValidationError): If `len(value)` is not in between the given conditions.

Raises:
    (ValueError): If either `min_val` or `max_val` is negative.
r   z7Length cannot be negative. `min_val` is less than zero.z7Length cannot be negative. `max_val` is less than zero.r   )
ValueErrorboolr   len)r
   r   r	   s      7/venv/lib/python3.13/site-packages/validators/length.pylengthr      sJ    : w{RSSw{RSSE
GEFF    )	__doc__typingr   r   utilsr   strintr    r   r   <module>r      s\        9=[_ !G# !GeCI&6 !GcSWiHX !G !Gr   