HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //proc/self/root/usr/lib/python3.6/site-packages/ipalib/__pycache__/dns.cpython-36.opt-1.pyc
3

�d[e�
�@sdddlmZddlZddlmZdZdZdZdd�Zd	d
�Z	dd�Z
ddd�Zdd�Zddd�Z
dS)�)�absolute_importN)�errorsz%srecordz
%s_part_%sz%s_extra_%scCs&tjd|�}|dkrdS|jd�j�S)Nz([^_]+)record$�)�re�match�group�upper)�namer�r
�/usr/lib/python3.6/dns.py�get_record_rrtype!srcCs&tjd|�}|dkrdS|jd�j�S)Nz([^_]+)_part_.*$r)rrrr)r	rr
r
r�get_part_rrtype)sr
cCs&tjd|�}|dkrdS|jd�j�S)Nz([^_]+)_extra_.*$r)rrrr)r	rr
r
r�get_extra_rrtype1srFcspd}t�fdd�|D��rdSd}x:�j�D].}d	d
�|jD�}||kr,�|sT|r,d}Pq,W|sltj|��dS)
N�setattr�addattr�delattr�rename�dnsttlc3s|]}|�kVqdS)Nr
)�.0�k)�optionsr
r�	<genexpr>;sz"has_cli_options.<locals>.<genexpr>FcSs g|]}t|�st|�r|�qSr
)rr
)r�nr
r
r�
<listcomp>@sz#has_cli_options.<locals>.<listcomp>T)rrrrr)�any�keys�paramsrZOptionError)�cmdrZ
no_option_msgZallow_empty_attrsZ
sufficientZhas_options�attrZ
obj_paramsr
)rr�has_cli_options9srcCsZy<|j|}t|j�pt|j�}|s(dS|jt|j�}Wnttfk
rTdSX|S)z�
    Get an instance of DNSRecord parameter that has part_name as its part.
    If such parameter is not found, None is returned

    :param part_name Part parameter name
    N)rr
r	r�record_name_format�lower�KeyError�AttributeError)rZ	part_nameZparamZrrtype�rrparamr
r
r�get_rrparam_from_partKs


r%ccsTg}xJ|D]B}t||�}|dkr"q
|r0t|�r0q
|j|kr
|j|j�|Vq
WdS)a�
    Iterates through all DNSRecord instances that has at least one of its
    parts or extra options in given dictionary. It returns the DNSRecord
    instance only for the first occurence of part/extra option.

    :param kw Dictionary with DNS record parts or extra options
    :param skip_extra Skip DNS record extra options, yield only DNS records
                      with a real record part
    N)r%rr	�append)r�kwZ
skip_extraZ	processed�optr$r
r
r�iterate_rrparams_by_partscs



r))F)F)Z
__future__rrZipalibrr Zpart_name_formatZextra_name_formatrr
rrr%r)r
r
r
r�<module>s