o
    ãË·e%  ã                   @   s8   d dl Z ddlmZ e  d¡Zddd„Zed	d
„ ƒZdS )é    Né   )Ú	validatorz]^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-_]{0,61}[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-_]{0,61}[A-Za-z]$úutf-8Ústrictc                 C   s*   | d u rd S t | tƒst| ƒS |  ||¡S )N)Ú
isinstanceÚbytesÚstrÚdecode)ÚobjÚcharsetÚerrors© r   úH/var/www/ideatree/venv/lib/python3.10/site-packages/validators/domain.pyÚ
to_unicode   s
   
r   c              	   C   s6   zt  t| ƒ d¡ d¡¡W S  ttfy   Y dS w )af  
    Return whether or not given value is a valid domain.

    If the value is valid domain name this function returns ``True``, otherwise
    :class:`~validators.utils.ValidationFailure`.

    Examples::

        >>> domain('example.com')
        True

        >>> domain('example.com/')
        ValidationFailure(func=domain, ...)


    Supports IDN domains as well::

        >>> domain('xn----gtbspbbmkef.xn--p1ai')
        True

    .. versionadded:: 0.9

    .. versionchanged:: 0.10

        Added support for internationalized domain name (IDN) validation.

    :param value: domain string to validate
    ÚidnaÚasciiF)ÚpatternÚmatchr   Úencoder	   ÚUnicodeErrorÚAttributeError)Úvaluer   r   r   Údomain   s
   ÿr   )r   r   )ÚreÚutilsr   Úcompiler   r   r   r   r   r   r   Ú<module>   s    ÿ
