a
    !c	                     @   s>   d dl Z d dlZd dlZd dlZedZG dd deZdS )    Nz^DNF_VAR_[A-Za-z0-9_]+$c                       s.   e Zd Z fddZdd ZdddZ  ZS )	Substitutionsc                    s   t t|   |   d S )N)superr   __init___update_from_env)self	__class__ :/usr/lib/python3.9/site-packages/dnf/conf/substitutions.pyr       s    zSubstitutions.__init__c                 C   sX   dd t ddD }tj D ]4\}}t|rB|| |dd  < q||v r|| |< qd S )Nc                 S   s   g | ]}d | qS )zDNF%dr	   ).0Znumr	   r	   r
   
<listcomp>%       z2Substitutions._update_from_env.<locals>.<listcomp>r   
      )rangeosenvironitemsENVIRONMENT_VARS_REmatch)r   Znumericvarskeyvalr	   r	   r
   r   $   s    
zSubstitutions._update_from_envz/etc/yum/vars/z/etc/dnf/vars/c           
      C   s   |D ]}g }z"t j||d}t |}W n tyD   Y qY n0 |D ]}t j||}d }t j|rzPt|}	|	 }W d    n1 s0    Y  |r|d dkr|d d }W n tt	fy   Y qJY n0 |d urJ|| |< qJqd S )N/
)
r   pathjoinlstriplistdirOSErrorisfileopenreadlineIOError)
r   ZinstallrootZvarsdirZ	vars_pathZfsvarsZ
dir_fsvarsZfsvarfilepathr   fpr	   r	   r
   update_from_etc,   s(    

&
zSubstitutions.update_from_etc)r   )__name__
__module____qualname__r   r   r'   __classcell__r	   r	   r   r
   r      s   r   )r   reZdnfZdnf.exceptionscompiler   dictr   r	   r	   r	   r
   <module>   s
   
