3
[_ð]“  ã               @   s¬   d Z ddlZddlZdZdZdZdZdZdZ	eeeeee	dœZ
d	d
„ e
jƒ D ƒZe
jeeedœƒ ede	diZejdejƒZG dd„ dejjƒZdd„ Zdd„ Zdd„ ZdS )zDNS Rdata Classes.é    Né   é   é   éþ   éÿ   )Ú	RESERVED0ÚINÚCHÚHSÚNONEÚANYc             C   s   i | ]\}}||“qS © r   )Ú.0ÚxÚyr   r   ú3/tmp/pip-build-yz_zf6az/dnspython/dns/rdataclass.pyú
<dictcomp>,   s    r   )ZINTERNETZCHAOSZHESIODTzCLASS([0-9]+)$c               @   s   e Zd ZdZdS )ÚUnknownRdataclasszA DNS class is unknown.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   ?   s   r   c             C   sV   t j| jƒ ƒ}|dkrRtj| ƒ}|dkr,t‚t|jdƒƒ}|dk sJ|dkrRtdƒ‚|S )a‘  Convert text into a DNS rdata class value.

    The input text can be a defined DNS RR class mnemonic or
    instance of the DNS generic class syntax.

    For example, "IN" and "CLASS1" will both result in a value of 1.

    Raises ``dns.rdatatype.UnknownRdataclass`` if the class is unknown.

    Raises ``ValueError`` if the rdata class value is not >= 0 and <= 65535.

    Returns an ``int``.
    Nr   r   iÿÿ  z'class must be between >= 0 and <= 65535)	Ú_by_textÚgetÚupperÚ_unknown_class_patternÚmatchr   ÚintÚgroupÚ
ValueError)ÚtextÚvaluer   r   r   r   Ú	from_textC   s    
r"   c             C   s:   | dk s| dkrt dƒ‚tj| ƒ}|dkr6dt| ƒ }|S )a  Convert a DNS rdata type value to text.

    If the value has a known mnemonic, it will be used, otherwise the
    DNS generic class syntax will be used.

    Raises ``ValueError`` if the rdata class value is not >= 0 and <= 65535.

    Returns a ``str``.
    r   iÿÿ  z'class must be between >= 0 and <= 65535NZCLASS)r   Ú	_by_valuer   Úrepr)r!   r    r   r   r   Úto_text]   s    
r%   c             C   s   | t krdS dS )z‡True if the specified class is a metaclass.

    The currently defined metaclasses are ANY and NONE.

    *rdclass* is an ``int``.
    TF)Ú_metaclasses)Zrdclassr   r   r   Úis_metaclassp   s    r'   )r   ÚreZdns.exceptionZdnsr   r   r	   r
   r   r   r   Úitemsr#   Úupdater&   ÚcompileÚIr   Ú	exceptionZDNSExceptionr   r"   r%   r'   r   r   r   r   Ú<module>   s4   
