3 gt`@s^ddlmZddlmZddlmZmZddlZdZGdddej Z Gdd d ej j Z dS) )absolute_import)unicode_literals)_loggerNzY size="20.69,25.52"; ratio="fill"; rankdir="TB"; orientation=port; node[style="filled"]; cs eZdZdZfddZZS) RepoGraph repographcs,tt|j|||dkrdS|jtdS)N)superr__init__Zregister_commandRepoGraphCommand)selfbasecli) __class__/usr/lib/python3.6/repograph.pyr )szRepoGraph.__init__)__name__ __module__ __qualname__namer __classcell__rr)rrr%src@s<eZdZd ZedZddZddZdd Ze d d Z d S)r r repo-graphz4Output a full package dependency graph in dot formatcCsV|jj}d|_d|_|jjrRx4|jjjD]$}|j |jjkrF|j q*|j q*WdS)NT) r demandsZsack_activationZavailable_reposZoptsrepor Zreposalliddisableenable)r rrrrr configure4s zRepoGraphCommand.configurecCs|jtdS)N)do_dot DOT_HEADER)r rrrrun?szRepoGraphCommand.runc Csd}|j|jj}tdtdj|x|jD]}t|||krRt||}ddt||}|d}d}td j||||td j|x||D]}td j|qWtd j|||q2Wtd dS)Nrzdigraph packages {z{}g?g333333?g?g?z""{}" [color="{:.12g} {:.12g} {}"];z "{}" -> {{z"{}"z!}} [color="{:.12g} {:.12g} {}"]; }gs?) _get_depsr sackprintformatkeyslen) r headerZmaxdepsZdepspkghsbreqrrrrBs  zRepoGraphCommand.do_dotc Csi}i}g}|jj}x|D]}i}x|jD]}t|}||krDq.|jdrPq.||krb||} n@|j|d} | stjtd||j |q.n | dj } | ||<| |j krd|| <| |ks.| |krq.nd|| <|j ||j <q.WqW|S)Nz solvable:)ZprovideszNothing provides: '%s'r) Zquery availablerequiresstr startswithfilterrdebugrappendrr') r$r0Zprovskipr/r*Zxxr.ZreqnameZproviderrrrr#Ys8         zRepoGraphCommand._get_depsN)rr) rrraliasesrZsummaryrr r staticmethodr#rrrrr 0s  r )Z __future__rrZdnfpluginscorerrZdnf.cliZdnfrZPluginrr ZCommandr rrrrs