
    `                     |    d dl Z d dlZddlmZ ej        reZeZneZ e j        d          Z	d	dZ
e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                 ~    | d S t          | t                    st          |           S |                     ||          S )N)
isinstancebytes	text_typedecode)objcharseterrorss      1lib/python3.11/site-packages/validators/domain.py
to_unicoder      s>    
{tc5!! ~~::gv&&&    c                     	 t                               t          |                               d                              d                    S # t
          t          f$ r Y dS w xY 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)values    r   domainr      sd    <}}Z..55f==DDWMMNNN.)   uus   AA A$#A$)r   r   )resixutilsr   PY3strr
   unicodecompiler   r   r    r   r   <module>r$      s    				 



      7 IGGI
"* ' ' ' '          r   