U
    <æ{fª
  ã                   @   s®   d Z ddlZddlZG dd„ dejjƒZG dd„ dejjƒZ	e
edœdd	„Zeed
œdd„Zeedœdd„Zee
dœdd„Zeed
œdd„ZejZejZejZejZejZdS )zDNS Opcodes.é    Nc                   @   s8   e Zd ZdZdZdZdZdZedd„ ƒZ	edd	„ ƒZ
d
S )ÚOpcoder   é   é   é   é   c                 C   s   dS )Né   © ©Úclsr   r   úI/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/dns/opcode.pyÚ_maximum$   s    zOpcode._maximumc                 C   s   t S )N)ÚUnknownOpcoder	   r   r   r   Ú_unknown_exception_class(   s    zOpcode._unknown_exception_classN)Ú__name__Ú
__module__Ú__qualname__ÚQUERYÚIQUERYÚSTATUSÚNOTIFYÚUPDATEÚclassmethodr   r   r   r   r   r   r      s   
r   c                   @   s   e Zd ZdZdS )r   zAn DNS opcode is unknown.N)r   r   r   Ú__doc__r   r   r   r   r   -   s   r   )ÚtextÚreturnc                 C   s
   t  | ¡S )z¨Convert text into an opcode.

    *text*, a ``str``, the textual opcode

    Raises ``dns.opcode.UnknownOpcode`` if the opcode is unknown.

    Returns an ``int``.
    )r   Ú	from_text)r   r   r   r   r   1   s    
r   )Úflagsr   c                 C   s   t | d@ d? ƒS )zpExtract an opcode from DNS message flags.

    *flags*, an ``int``, the DNS flags.

    Returns an ``int``.
    é x  é   )r   ©r   r   r   r   Ú
from_flags>   s    r    )Úvaluer   c                 C   s   | d> d@ S )z™Convert an opcode to a value suitable for ORing into DNS message
    flags.

    *value*, an ``int``, the DNS opcode value.

    Returns an ``int``.
    r   r   r   ©r!   r   r   r   Úto_flagsI   s    	r#   c                 C   s
   t  | ¡S )z¥Convert an opcode to text.

    *value*, an ``int`` the opcode value,

    Raises ``dns.opcode.UnknownOpcode`` if the opcode is unknown.

    Returns a ``str``.
    )r   Úto_textr"   r   r   r   r$   U   s    
r$   c                 C   s   t | ƒtjkS )zmIs the opcode in flags UPDATE?

    *flags*, an ``int``, the DNS message flags.

    Returns a ``bool``.
    )r    r   r   r   r   r   r   Ú	is_updateb   s    r%   )r   Zdns.enumZdnsZdns.exceptionÚenumÚIntEnumr   Ú	exceptionZDNSExceptionr   Ústrr   Úintr    r#   r$   Úboolr%   r   r   r   r   r   r   r   r   r   Ú<module>   s   