name : sys_conf.cpython-39.pyc
a

'�Dg?�@sfddlZddlZddlmZddlZdZe�de�e�d�e�d�gZdd�ZGd	d
�d
ej	�Z
dS)�N)�StringIOz[a-zA-Z_]+[a-zA-Z0-9_]*z\$z\$[0-9#\?\-@\*]z\$\{.+\}cCstD]}|�|�rdSqdS)NTF)�SHELL_VAR_REGEXES�search)�text�r�r�F/usr/lib/python3.9/site-packages/cloudinit/distros/parsers/sys_conf.py�_contains_shell_variable$s
r	c@s2eZdZdZdd�Zdd�Zddd�Zd	d
�ZdS)
�SysConfaA configobj.ConfigObj subclass specialised for sysconfig files.

    :param contents:
        The sysconfig file to parse, in a format accepted by
        ``configobj.ConfigObj.__init__`` (i.e. "a filename, file like object,
        or list of lines").
    cCstjj||ddd�dS)NFT)Z
interpolationZwrite_empty_values)�	configobj�	ConfigObj�__init__)�self�contentsrrrr
4s�zSysConf.__init__cCsD|��}t�}t|ttf�r.|�d�|��n|�t|��|��S)N�
)�writer�
isinstance�list�tuple�join�str�getvalue)rrZout_contentsrrr�__str__9szSysConf.__str__Fcs�t|t�std|��t|�dkr&dSd}|ddvr\|ddvr\t|�dkr��fdd�}n`|���d	�rz|���d
�rznBt�d|�r�t	|�r�t�d|�r��fd
d�}q��fdd�}nt
j}|s�|S||�S)NzValue "%s" is not a stringr�)�"�'����cs��|�|S�N�Z_get_single_quote��x�rrr�<lambda>K�z SysConf._quote.<locals>.<lambda>z$(�)z	[\t\r\n ]z[\n\"']cs��|�|Sr)Z_get_triple_quoter r"rrr#Yr$cs��|�|Srrr r"rrr#]r$)rr�
ValueError�len�strip�
startswith�endswith�rerr	�shlex�quote)r�valueZ	multilineZ	quot_funcrr"r�_quoteBs,

�
�
�zSysConf._quotecCs<|�|�|��}|�|�|��}|�|�}d||d||fS)Nz
%s%s%s%s%s�=)Z_decode_elementr/)rZ
indent_string�entryZ
this_entryZcomment�val�keyZcmntrrr�_write_linees
�zSysConf._write_lineN)F)�__name__�
__module__�__qualname__�__doc__r
rr/r4rrrrr
+s
	
#r
)r+r,�iorrZSHELL_VAR_RULE�compilerr	rr
rrrr�<module>s	�

© 2025 Cubjrnet7