Current File : //usr/lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/sys_conf.cpython-312.pyc
�

x[h7��\�ddlZddlZddlmZddlZdZd�ZGd�dej�Zy)�N)�StringIOz[a-zA-Z_]+[a-zA-Z0-9_]*c��tjdtz�tjd�tjd�fD]}|j|�s�yy)Nz\$z\$[0-9#\?\-@\*]z\$\{.+\}TF)�re�compile�SHELL_VAR_RULE�search)�text�rs  �D/usr/lib/python3/dist-packages/cloudinit/distros/parsers/sys_conf.py�_contains_shell_variablersV��	�
�
�5�>�)�*�
�
�
�%�&�	�
�
�;��	���
�8�8�D�>����c�*�eZdZdZd�Zd�Zdd�Zd�Zy)�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").
    c�J�tjj||dd��y)NFT)�
interpolation�write_empty_values)�	configobj�	ConfigObj�__init__)�self�contentss  rrzSysConf.__init__3s$�����$�$��(�%�D�	%�	
r
c��|j�}t�}t|ttf�r0|jdj|��|j�S|jt
|��|j�S)N�
)�writer�
isinstance�list�tuple�join�str�getvalue)rr�out_contentss   r�__str__zSysConf.__str__8sm���:�:�<���z���h��u�
�.����t�y�y��2�3��$�$�&�&�
���s�8�}�-��$�$�&�&r
c����t|t�std|z��|syd}|ddvr|ddvrt|�dk(r��fd�}n�|j	�jd�r |j	�j
d	�rnStjd
|�r=t|�r"tjd|�r�fd�}n�fd
�}ntj}|s|S||�S)NzValue "%s" is not a string�r)�"�'����c�,���j|�|zS�N��_get_single_quote��xrs �r�<lambda>z SysConf._quote.<locals>.<lambda>Js���d�4�4�Q�7�!�;�r
z$(�)z	[\t\r\n ]z[\n\"']c�,���j|�|zSr*)�_get_triple_quoter-s �rr/z SysConf._quote.<locals>.<lambda>X����$�*@�*@��*C�a�*G�r
c�,���j|�|zSr*r+r-s �rr/z SysConf._quote.<locals>.<lambda>\r3r
)rr�
ValueError�len�strip�
startswith�endswithrrr�shlex�quote)r�value�	multiline�	quot_funcs`   r�_quotezSysConf._quoteAs�����%��%��9�U�C�D�D����	���8�z�!�e�B�i�:�&=��5�z�Q��;��
�{�{�}�'�'��-�%�+�+�-�2H�2H��2M���9�9�\�5�1�/��6��9�9�Z��7� G�&�
!H�&�%*�K�K�	���L����r
c��|j|j|��}|j|j|��}|j|�}|�|�d�|�|��S)N�=)�_decode_elementr?)r�
indent_string�entry�
this_entry�comment�val�key�cmnts        r�_write_linezSysConf._write_lineds_���"�"�4�;�;�z�#:�;���"�"�4�;�;�u�#5�6���#�#�G�,�������
�	
r
N)F)�__name__�
__module__�__qualname__�__doc__rr"r?rJ�r
rrr*s���
�
'�! �F
r
r)	rr:�iorrrrrrrOr
r�<module>rQs5��
����
,��
� F
�i�!�!�F
r