ó ¾[/\c@@súddlmZddlmZddlmZddlmZmZmZm Z ddl m Z ddl Z ddlZ ddlZ ddlZddlZddlZejdƒZd„Zd „Zd „Zd „Zd ejfd „ƒYZdS(i(tabsolute_import(tunicode_literals(tcommands(t_tucdtfill_exact_widtht exact_width(t OptionParserNudnfcC@sˆ|r!tjj|jjƒƒn tdƒ}|jdkrJtdƒ|S|jsatdƒ|St|jƒ}tdƒ||fSdS(NuunknowniÿÿÿÿuNever (last: %s)uInstant (last: %s)u%s second(s) (last: %s)(tdnftutiltnormalize_timet_repot getTimestampRtmetadata_expiret _num2ui_num(trepotmdtlasttnum((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt _expire_str$s- cC@sttjjd|tƒƒS(Nu%d(RRtpycomptformattTrue(R((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyR/scC@s_|jjƒ}|jjƒ}x:|D]2}tj||ƒrAtStj||ƒr%tSq%WtS(N(tidtlowertnametfnmatchRtFalse(Rtpatternstridtrnmtpat((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt _repo_match3s cC@sLd}x0|jƒjd|jƒD]}||j7}q"Wtjjj|ƒS(Nit reponame__eq(tquerytfiltermRt_sizeRtcliRt format_number(tsackRtrettpkg((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt _repo_size>s"tRepoListCommandcB@sJeZdZdZedƒZed„ƒZd„Zd„Z d„Z RS( uVA class containing methods needed by the cli to execute the repolist command. urepolisturepoinfou,display the configured software repositoriesc C@sÈ|jƒ}|jdddddddddd td ƒƒ|jd dddddd d td ƒƒ|jdddddddd tdƒƒ|jddddd ddd dgdtjƒdS(Nu--alltdestu _repos_actiontactionu store_consttconstualltdefaultthelpushow all reposu --enableduenabledushow enabled repos (default)u --disabledudisabledushow disabled reposurepostnargsu*tchoices(tadd_mutually_exclusive_groupt add_argumenttNoneRRtPkgNarrowCallback(tparsert repolimit((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt set_argparserMs      cC@s@|jj r<|jj r<|jjdtjdtjƒndS(Ntstdouttstderr(toptstverbosetquietR%tredirect_loggertloggingtWARNINGtINFO(tself((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt pre_configure]scC@sm|jj r*|jj r*|jjƒn|jj}t|_t|_|jj ri|jj |j_ ndS(N( R<R=R>R%tredirect_repo_progresstdemandsRtavailable_repostsack_activationt _repos_actiont repos_action(RCRF((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyt configureas    c.C@s |jj}g|jjD]}|jƒ^q}|jjj}t|jjjƒƒ}|j dt j dƒƒt|jjj ƒƒ}|j j}|jd|jd}|jd} |jd} d} g} |sðtjtdƒƒdSxR|D]J} t|ƒrt| |ƒ rq÷nd2\}}}d }d}d }d }t}|d ksv| j|ksv| j|kr“t}|| | }}}n| |kr×t}|d krºt}n|d krÓ| rÓq÷nt||d |jjkfƒrR|td ƒ|}ttd ƒƒ}t|d |jjkfƒsR|d7}|d7}qRn|sjd |jjkr‚t|jj| ƒ}n|d ks”|r1t|jjjƒj d| jƒƒ}t!|ƒ}| |7} q1nZt}|d kròt}n|d kr | r q÷n|td ƒ|}ttd ƒƒ}t|d |jjkfƒsÆt"| jƒ}|r¡| j#r¡| j$j%ƒ}|| j$j&ƒkr¡d|}q¡n| j'|| j||f|fƒq÷|rØ| j(}nd}|j j*tdƒ| jƒ|j j*tdƒ| jƒg}|s&|rK||j j*tdƒ|ƒg7}n|rŽ| j$j+ƒrŽ||j j*tdƒ| j$j+ƒƒg7}n|ræ| j$j,ƒræ| j$j,ƒ}||j j*tdƒdj-t.|ƒƒƒg7}n|ro| j$j/ƒrod„| j$j/ƒDƒ}xX|j0ƒD]G\}}||j j*tdƒd|dj-t.|ƒƒfƒg7}q!Wn|rß||j j*tdƒt1j2j3| j$j&ƒƒƒ|j j*tdƒ|ƒ|j j*tdƒ|ƒg7}n| j#rV||j j*tdƒ| j#ƒg7}|r‡| j$j%ƒ} ||j j*tdƒt1j2j3| ƒƒg7}q‡n1| j4r‡||j j*td ƒ| j4ƒg7}n| j5}!|!rÄ||j j*td!ƒdj-|!ƒƒg7}na|r%| j$j6ƒ}"|"r%d"|"dt|"ƒd#f}#||j j*td!ƒ|#ƒg7}q%nt7| |ƒ}$||j j*td$ƒ|$ƒg7}| j8r||j j*td%ƒdj-| j8ƒƒg7}n| j9rÊ||j j*td&ƒdj-| j9ƒƒg7}n|rõ||j j*td'ƒ|ƒg7}n| j:r&||j j*td(ƒ| j:ƒg7}nd)d)j-t;t"|ƒƒGHq÷W| rÜ | rÜ ttd*ƒƒ}%d}&d}'d}(x¬| D]¤\}})\}}}|%t|ƒkr¶t|ƒ}%n|&t|)ƒkr×t|)ƒ}&n|'|t|ƒkr |t|ƒ}'n|(t|ƒkr}t|ƒ}(q}q}W|d krE |j<|%d#}*nQttd+ƒƒ|'kr |j<|%ttd+ƒƒd}*n|j<|%|'d}*|*|&kr« |*}&n*|*|&8}*|%|*d7}%|&|*|*d7}&t=td*ƒ|%ƒ}+t=td,ƒ|&|&ƒ},|d kr d-|+|,fGHnd.|+|,td+ƒfGHx¡| D]–\}})\}}}|d kr d-t=||%ƒt=|)|&|&ƒfGHq? n|r« t=||(d/tƒ}nd0t=||%ƒt=|)|&|&ƒ||fGHq? Wntd1ƒ}-tj>|-t!| ƒƒdS(3NtkeyuidugreenubolduredunormaliuNo repositories availableuualluenabledudisabledurepoinfou: iR!u*uRepo-id : uRepo-name : uRepo-status : uRepo-revision: uRepo-tags : u, cS@si|]\}}||“qS(((t.0tktv((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pys Âs uRepo-distro-tags: u[%s]: %suRepo-updated : uRepo-pkgs : uRepo-size : uRepo-metalink: u Updated : uRepo-mirrors : uRepo-baseurl : u %s (%d more)iuRepo-expire : uRepo-exclude : uRepo-include : uRepo-excluded: uRepo-filename: u urepo idustatusu repo nameu%s %su%s %s %stleftu %s %s %s%suTotal packages: %s(uuu(?R<RJtreposRtbasetconfR=tlisttvaluestsorttoperatort attrgettert iter_enabledtoutputttermtFG_COLORtMODEtloggertwarningRtlenR RRRRtanytcommandRR*R'R"R#RRtmetalinkR R tgetMaxTimestamptappendtmetadataR5t fmtKeyValFillt getRevisiontgetContentTagstjointsortedt getDistroTagstitemsRR R t mirrorlisttbaseurlt getMirrorsRt excludepkgst includepkgstrepofiletmaptcolumnsRtdebug(.RCtargtxtextcmdsR=RQt enabled_reposR[t on_ehibegt on_dhibegton_hiendttot_numtcolsRtehibegtdhibegthiendt ui_enabledt ui_endis_widtui_numtui_excludes_numt force_showtenabledtui_sizeRRtmdtsRtoutttagstdistroTagsDicttdistrottstbaseurlstmirrorsturltexpiretid_lentnm_lentst_lentui_lentrnameRPttxt_ridttxt_rnamtmsg((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pytrunksF %    *   ! '    !   -  "  (  ("     $      (urepolisturepoinfo( t__name__t __module__t__doc__taliasesRtsummaryt staticmethodR9RDRKRœ(((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyR+Es   (t __future__RRtdnf.cliRtdnf.i18nRRRRtdnf.cli.option_parserRtdnf.cli.formatRt dnf.pycomptdnf.utilRR@RWt getLoggerR^RRR R*tCommandR+(((s=/usr/lib/python2.7/site-packages/dnf/cli/commands/repolist.pyts "