509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
©ft`Ý  ã               @   s¶   d dl mZ d dl mZ d dlmZ d dlZd dlZd dlm	Z	 d dl
Zd dlZd dlZd dlZd dlZejdƒZdZejjedƒZejjed	ƒZG d
d„ deƒZG dd„ deƒZdS )é    )Úabsolute_import)Úunicode_literals)Ú_N)ÚPRIO_DEFAULTÚdnfz/etc/dnf/aliases.d/zALIASES.confz	USER.confc               @   s,   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdS )ÚAliasesConfigc             C   s$   || _ tjjƒ | _| jj| j ƒ d S )N)Ú_pathÚlibdnfÚconfZConfigParserÚ_parserÚread)ÚselfÚpath© r   ú/usr/lib/python3.6/aliases.pyÚ__init__*   s    zAliasesConfig.__init__c             C   sH   t jjdƒ}y|jt| jjƒ d d ƒ W n tk
r>   Y nX |jƒ S )NTÚmainÚenabled)	r	   r
   Ú
OptionBoolÚsetr   r   ZgetDataÚ
IndexErrorÚgetValue)r   Úoptionr   r   r   r   /   s    zAliasesConfig.enabledc             C   sV   t jƒ }d}| jj|ƒs|S x4| jj|ƒD ]$}| jj||ƒ}|sBq*|jƒ ||< q*W |S )NÚaliases)ÚcollectionsÚOrderedDictr   Z
hasSectionZoptionsr   Úsplit)r   ÚresultZsectionÚkeyÚvaluer   r   r   r   8   s    zAliasesConfig.aliasesN)Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr   r   r   r   r   r   r   )   s   	r   c               @   sN   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zdd
d„Zdd„ Zdd„ Z	dd„ Z
d	S )ÚAliasesc             C   sF   t jƒ | _d | _d| _| jƒ r(d| _d S | jƒ  | js:d S | jƒ  d S )NTF)r   r   r   r
   r   Ú_disabled_by_environÚ
_load_mainÚ_load_aliases)r   r   r   r   r   G   s    
zAliases.__init__c             C   sh   t jjdƒ}y|jttjd ƒ |jƒ S  tk
r:   dS  t	k
rb   t
jtdƒtjd ƒ dS X d S )NTZDNF_DISABLE_ALIASESFz@Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s)r	   r
   r   r   r   ÚosÚenvironr   ÚKeyErrorÚRuntimeErrorÚloggerÚwarningr   )r   r   r   r   r   r%   W   s    zAliases._disabled_by_environc             C   s€   yt |ƒS  tk
rB } ztjjtdƒ||f ƒ‚W Y d d }~X n: tk
rz } ztjjtdƒ||f ƒ‚W Y d d }~X nX d S )NzParsing file "%s" failed: %szCannot read file "%s": %s)r   r+   r   Ú
exceptionsÚConfigErrorr   ÚIOError)r   r   Úer   r   r   Ú
_load_confd   s    "zAliases._load_confc             C   sV   y| j tƒ| _| jj| _W n6 tjjk
rP } ztjt	dƒ|ƒ W Y d d }~X nX d S )NzConfig error: %s)
r2   ÚALIASES_CONF_PATHr
   r   r   r.   r/   r,   Údebugr   )r   r1   r   r   r   r&   n   s
    zAliases._load_mainNc             C   sš   |d kr.y| j ƒ }W n tjjk
r,   d S X xf|D ]^}y"| j|ƒ}|jrX| jj|jƒ W q4 tjjk
r� } ztj	t
dƒ|ƒ W Y d d }~X q4X q4W d S )NzConfig error: %s)Ú_dropin_dir_filenamesr   r.   r/   r2   r   r   Úupdater,   r-   r   )r   Ú	filenamesÚfilenamer
   r1   r   r   r   r'   u   s    

zAliases._load_aliasesc                sÆ   t jjtƒt jjtƒg‰ ‡ fdd„}g }yPt jjtƒs@t jtƒ x4tt j	tƒƒD ]"}||ƒr^qP|j
t jjt|ƒƒ qPW W n2 ttfk
rª } ztjj|ƒ‚W Y d d }~X nX t jjtƒrÂ|j
tƒ |S )Nc                s   | ˆ kp| j dƒp| jdƒ S )NÚ.ú.confú.CONF)r:   r;   )Ú
startswithÚendswith)r8   )Úignored_filenamesr   r   Ú_ignore_filenameŠ   s    
z7Aliases._dropin_dir_filenames.<locals>._ignore_filename)r(   r   Úbasenamer3   ÚALIASES_USER_PATHÚexistsÚALIASES_DROPIN_DIRÚmkdirÚsortedÚlistdirÚappendÚjoinr0   ÚOSErrorr   r.   r/   )r   r?   r7   Úfnr1   r   )r>   r   r5   ƒ   s     


zAliases._dropin_dir_filenamesc                s:   g ‰g ˆ _ ‡ fdd„‰‡ ‡‡‡fdd„‰ˆ|ƒ}ˆ j | S )Nc                sN   d}x&| D ]}|r |d dkr P |d7 }q
W ˆ  j | d |… 7  _ | |d … S )Nr   ú-é   )Úprefix_options)ÚargsZnumÚarg)r   r   r   Ústore_prefix¡   s    
z&Aliases._resolve.<locals>.store_prefixc                sÖ   ˆ| ƒ}| s*|d ˆ j ks*|d jdƒrry.ˆjƒ  |d jdƒrV|d dd … |d< W n tk
rl   Y nX |S |d ˆkrŽtjjtdƒƒ‚ˆj|d ƒ ˆˆ j |d  ƒ}|rÂ||dd …  S ˆ|dd … ƒS d S )Nr   ú\rL   z"Aliases contain infinite recursion)	r   r<   Úpopr   r   r.   ÚErrorr   rG   )rN   ÚsuffixZcurrent_alias_result)r   ÚstackrP   Ú
subresolver   r   rV   ¬   s&    
z$Aliases._resolve.<locals>.subresolve)rM   )r   rN   rT   r   )r   rU   rP   rV   r   Ú_resolve�   s    zAliases._resolvec             C   sP   | j rLy| j|ƒ}W n6 tjjk
rJ } ztjtdƒ|ƒ W Y d d }~X nX |S )Nz%s, using original arguments.)r   rW   r   r.   rS   r,   Úerrorr   )r   rN   r1   r   r   r   ÚresolveÌ   s    "zAliases.resolve)N)r    r!   r"   r   r%   r2   r&   r'   r5   rW   rY   r   r   r   r   r$   F   s   

/r$   )Z
__future__r   r   Zdnf.i18nr   r   Zdnf.clir   Zdnf.conf.configr   Zdnf.exceptionsZlibdnf.confr	   Zloggingr(   Zos.pathZ	getLoggerr,   rC   r   rH   r3   rA   Úobjectr   r$   r   r   r   r   Ú<module>   s    
