a
    sd_	  ã                   @   s€   d Z ddlZG dd„ dejƒZeƒ  ej¡ G dd„ dejƒZeƒ  ej¡ dd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )zDNS Message Flags.é    Nc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	ÚFlagé €  i   i   é   é€   é    é   N)
Ú__name__Ú
__module__Ú__qualname__ZQRZAAZTCZRDZRAZADZCD© r   r   ú+/usr/lib/python3/dist-packages/dns/flags.pyr      s   r   c                   @   s   e Zd ZdZdS )ÚEDNSFlagr   N)r   r	   r
   ZDOr   r   r   r   r   -   s   r   c                 C   s*   d}|   ¡ }|D ]}||| ¡  O }q|S )Nr   )ÚsplitÚupper)ÚtextÚ
enum_classÚflagsÚtokensÚtr   r   r   Ú
_from_text5   s
    r   c                 C   s8   g }|j  ¡ D ]\}}| |@ dkr| |¡ qd |¡S )Nr   ú )Ú__members__ÚitemsÚappendÚjoin)r   r   Z
text_flagsÚkÚvr   r   r   Ú_to_text=   s
    r   c                 C   s
   t | tƒS )zgConvert a space-separated list of flag text values into a flags
    value.

    Returns an ``int``
    )r   r   ©r   r   r   r   Ú	from_textE   s    r   c                 C   s
   t | tƒS )zgConvert a flags value into a space-separated list of flag text
    values.

    Returns a ``str``.
    )r   r   ©r   r   r   r   Úto_textO   s    r!   c                 C   s
   t | tƒS )zqConvert a space-separated list of EDNS flag text values into a EDNS
    flags value.

    Returns an ``int``
    )r   r   r   r   r   r   Úedns_from_textY   s    r"   c                 C   s
   t | tƒS )zrConvert an EDNS flags value into a space-separated list of EDNS flag
    text values.

    Returns a ``str``.
    )r   r   r    r   r   r   Úedns_to_textc   s    r#   )Ú__doc__ÚenumÚIntFlagr   ÚglobalsÚupdater   r   r   r   r   r!   r"   r#   r   r   r   r   Ú<module>   s   


