HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/mergers/__pycache__/__init__.cpython-310.pyc
o

�Ad��@spddlZddlmZmZe�d�ZdZdZdZGdd�d�Z	Gd	d
�d
e	�Z
dd�Zd
d�Zdd�Z
dd�ZdS)�N)�importer�
type_utilsz#(^[a-zA-Z_][A-Za-z0-9_]*)\((.*?)\)$zlist()+dict()+str()�m_�Mergerc@seZdZdd�Zdd�ZdS)�
UnknownMergercCs|S�N�)�self�_meth_wanted�value�_merge_withrr�</usr/lib/python3/dist-packages/cloudinit/mergers/__init__.py�_handle_unknownszUnknownMerger._handle_unknowncCsXt�|�}|��}d|}d}||g}t||�rt||�}|s(|j}|�d|�||�S)Nz_on_%sr)r�obj_name�lower�hasattr�getattrr�insert)r	�source�
merge_with�	type_name�method_name�meth�argsrrr
�merge s


zUnknownMerger.mergeN)�__name__�
__module__�__qualname__rrrrrr
rs
rc@s&eZdZddd�Zdd�Zdd�ZdS)	�LookupMergerNcCs&t�|�|durg|_dS||_dSr)r�__init__�_lookups)r	�lookupsrrr
r/s


zLookupMerger.__init__cCsdt|j�S)NzLookupMerger: (%s))�lenr )r	rrr
�__str__6szLookupMerger.__str__cCsFd}|jD]}t||�rt||�}nq|st�||||�S|||�Sr)r rrrr)r	�meth_wantedrrr�mergerrrr
r>s


��
zLookupMerger._handle_unknownr)rrrrr#rrrrr
r.s
rcCs�g}|�dd�}|dur|�dd�}|dur|St|t�r!t|�S|D]4}t|t�r;|d}|�dd���}|d}n|d}t|�dkrL|d	d�}ng}|rW|�||f�q#|S)
N�	merge_how�
merge_type�name�-�_�settingsr��)	�pop�
isinstance�str�string_extract_mergers�dict�replace�stripr"�append)�config�parsed_mergers�raw_mergers�mr(�optsrrr
�dict_extract_mergersMs*


�r;cCs�g}|�d�D];}|����}|�dd�}|sqt�|�}|s'd|}t|��|��\}}|���d�}dd�|D�}|�||f�q|S)N�+r)r*z1Matcher identifer '%s' is not in the right format�,cSs g|]}|��r|�����qSr)r4r)�.0r9rrr
�
<listcomp>ws z*string_extract_mergers.<locals>.<listcomp>)	�splitrr4r3�	NAME_MTCH�match�
ValueError�groupsr5)r&r7�m_namerB�msg�m_opsrrr
r1fs"
�r1cCsttt��Sr)�tupler1�DEF_MERGE_TYPErrrr
�default_mergers|srJc
Cs�g}|D]:\}}|�t�stt|�}t�|tgtg�\}}|s+d|t|f}t|��t�|d�}t	|t�}|�
||f�qg}	t|	�}
|D]\}}|	�
||
|��qG|
S)NzICould not find merger module named '%s' with attribute '%s' (searched %s)r)�
startswith�
MERGER_PREFIXr0r�find_moduler�MERGER_ATTR�ImportError�
import_modulerr5r)
r7�
mergers_to_berErG�merger_locs�looked_locsrF�mod�mod_attr�mergers�root�attrr:rrr
�	construct�s*

���
rY)�re�	cloudinitrr�compilerArIrLrNrrr;r1rJrYrrrr
�<module>s