
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
šgt`ü  ã               @   s^   d dl mZ d dl mZ d dlmZmZ d dlZdZG dd„ dej	ƒZ
G dd	„ d	ejjƒZdS )
é    )Úabsolute_import)Úunicode_literals)Ú_ÚloggerNzY
size="20.69,25.52";
ratio="fill";
rankdir="TB";
orientation=port;
node[style="filled"];
c                   s    e Zd ZdZ‡ fdd„Z‡  ZS )Ú	RepoGraphÚ	repographc                s,   t t| ƒj||ƒ |d krd S |jtƒ d S )N)Úsuperr   Ú__init__Zregister_commandÚRepoGraphCommand)ÚselfÚbaseÚcli)Ú	__class__© ú/usr/lib/python3.6/repograph.pyr	   )   s    zRepoGraph.__init__)Ú__name__Ú
__module__Ú__qualname__Únamer	   Ú__classcell__r   r   )r   r   r   %   s   r   c               @   s<   e Zd ZdZedƒZdd„ Zdd„ Zdd	„ Ze	d
d„ ƒZ
dS )r
   r   ú
repo-graphz4Output a full package dependency graph in dot formatc             C   sV   | j j}d|_d|_| jjrRx4| jjjƒ D ]$}|j	| jjkrF|j
ƒ  q*|jƒ  q*W d S )NT)r   ÚdemandsZsack_activationZavailable_reposZoptsÚrepor   ZreposÚallÚidÚdisableÚenable)r   r   r   r   r   r   Ú	configure4   s    
zRepoGraphCommand.configurec             C   s   | j tƒ d S )N)Údo_dotÚ
DOT_HEADER)r   r   r   r   Úrun?   s    zRepoGraphCommand.runc       	      C   sÖ   d}| j | jjƒ}tdƒ tdj|ƒƒ x |jƒ D ]”}t|| ƒ|krRt|| ƒ}ddt|| ƒ  }|d }d}td	j||||ƒƒ td
j|ƒƒ x|| D ]}tdj|ƒƒ qžW tdj|||ƒƒ q2W tdƒ d S )Nr   zdigraph packages {z{}g      à?g333333ã?é   gš™™™™™¹?g      ð?z""{}" [color="{:.12g} {:.12g} {}"];z
"{}" -> {{z"{}"z!}} [color="{:.12g} {:.12g} {}"];
ú}g«ÁsŠ¶š?)Ú	_get_depsr   ÚsackÚprintÚformatÚkeysÚlen)	r   ÚheaderZmaxdepsZdepsÚpkgÚhÚsÚbÚreqr   r   r   r   B   s     zRepoGraphCommand.do_dotc       
      C   sê   i }i }g }| j ƒ jƒ }xÌ|D ]Ä}i }xº|jD ]°}t|ƒ}||krDq.|jdƒrPq.||krb|| }	n@|j|d�}	|	s�tjtdƒ|ƒ |j	|ƒ q.n
|	d j
}	|	||< |	|j
kr´d ||	< |	|ks.|	|krÈq.nd ||	< |jƒ ||j
< q.W qW |S )Nz	solvable:)ZprovideszNothing provides: '%s'r   )ZqueryÚ	availableÚrequiresÚstrÚ
startswithÚfilterr   Údebugr   Úappendr   r'   )
r$   r0   ZprovÚskipr/   r*   Zxxr.   ZreqnameZproviderr   r   r   r#   Y   s8    





zRepoGraphCommand._get_depsN)r   r   )r   r   r   Úaliasesr   Zsummaryr   r    r   Ústaticmethodr#   r   r   r   r   r
   0   s   r
   )Z
__future__r   r   Zdnfpluginscorer   r   Zdnf.cliZdnfr   ZPluginr   r   ZCommandr
   r   r   r   r   Ú<module>   s   