U
    öî[a%  ã                   @   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 krd S t | tƒst| ƒS |  ||¡S )N)Ú
isinstanceÚbytesÚstrÚdecode)ÚobjÚcharsetÚerrors© r   ú\/var/www/html/media_planning/my_env_project/lib/python3.8/site-packages/validators/domain.pyÚ
to_unicode   s
    
r   c              	   C   s<   zt  t| ƒ d¡ d¡¡W S  ttfk
r6   Y dS X dS )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
    ZidnaÚasciiFN)ÚpatternÚmatchr   Úencoder	   ÚUnicodeErrorÚAttributeError)Úvaluer   r   r   Údomain   s    r   )r   r   )ÚreÚutilsr   Úcompiler   r   r   r   r   r   r   Ú<module>   s   ÿ
