File: //usr/lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/sys_conf.cpython-310.pyc
o
x[h7 � @ sF d dl Z d dlZd dlmZ d dlZdZdd� ZG dd� dej�ZdS )� N)�StringIOz[a-zA-Z_]+[a-zA-Z0-9_]*c C s: t �dt �t �d�t �d�fD ]
}|�| �r dS qdS )Nz\$z\$[0-9#\?\-@\*]z\$\{.+\}TF)�re�compile�SHELL_VAR_RULE�search)�text�r� r �D/usr/lib/python3/dist-packages/cloudinit/distros/parsers/sys_conf.py�_contains_shell_variable s �
�r c @ s2 e Zd ZdZdd� Zdd� Zddd�Zd d
� ZdS )
�SysConfa A 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 C s t jj| |ddd� d S )NFT)�
interpolation�write_empty_values)� configobj� ConfigObj�__init__)�self�contentsr r r
r 3 s
�zSysConf.__init__c C sJ | � � }t� }t|ttf�r|� d�|�� |�� S |� t|�� |�� S )N�
)�writer �
isinstance�list�tuple�join�str�getvalue)r r �out_contentsr r r
�__str__8 s �zSysConf.__str__Fc s� t |t�std| ��|sdS d }|d dv r*|d dv r*t|�dkr)� fdd�}n0|�� �d �r9|�� �d
�r9n!t�d|�rZt |�rWt�d|�rP� fd
d�}n
� fdd�}nt
j}|s^|S ||�S )NzValue "%s" is not a string� r )�"�'���� c � � � | �| S �N��_get_single_quote��x�r r r
�<lambda>J � z SysConf._quote.<locals>.<lambda>z$(�)z [\t\r\n ]z[\n\"']c r# r$ )�_get_triple_quoter'