3
\me? @ sf d dl Z d dlZd dlmZ d dlZdZe jde e jde jdgZdd ZG d d
d
ej Z
dS ) N)StringIOz[a-zA-Z_]+[a-zA-Z0-9_]*z\$z\$[0-9#\?\-@\*]z\$\{.+\}c C s xt D ]}|j| rdS qW dS )NTF)SHELL_VAR_REGEXESsearch)textr r /usr/lib/python3.6/sys_conf.py_contains_shell_variable$ s
r c @ s2 e Zd ZdZdd Zdd ZdddZd 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)Z
interpolationZwrite_empty_values) configobj ConfigObj__init__)selfcontentsr r r r
4 s zSysConf.__init__c C sD | j }t }t|ttfr.|j dj| n|j t| |j S )N
)writer
isinstancelisttuplejoinstrgetvalue)r r Zout_contentsr r r __str__9 s zSysConf.__str__Fc s t |tstd| t|dkr&dS d }|d dkr\|d dkr\t|dkr fdd}n`|j jd rz|j jd
rznBtjd|rt |rtjd|r fd
d}q fdd}nt
j}|s|S ||S )NzValue "%s" is not a stringr "' c s j | | S )N)_get_single_quote)x)r r r