PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  [/\c@@sEddlmZddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlmZe jdZdZdefd YZd efd YZd Zd ZdZdZdS(i(tabsolute_import(tprint_function(tunicode_literalsN(t_udnfudnf.plugin.dynamictPlugincB@sheZdZdZd ZedZdZdZ dZ dZ dZ dZ d ZRS( u5The base class custom plugins must derive from. #:apiu cC@stjj}|jr!|jn|j}g|jD]}d||f^q4}y|j|Wn5tjjk r}tj j t d|nX|S(Nu %s/%s.confuParsing file failed: %s( tiniparsetcompatt ConfigParsert config_nametnametpluginconfpathtreadt ParsingErrortdnft exceptionst ConfigErrorR(tclstconftparserR tpathtfileste((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt read_config4s& cC@s||_||_dS(N(tbasetcli(tselfRR((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt__init__@s cC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt pre_configEscC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytconfigIscC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytresolvedMscC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytsackQscC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytpre_transactionUscC@sdS(N((R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt transactionYsN(t__name__t __module__t__doc__R tNoneRt classmethodRRRRRRRR (((s./usr/lib/python2.7/site-packages/dnf/plugin.pyR.s      tPluginscB@seZdZdZdZdZdZdZd dZ dZ dZ d Z d Z d Zd ZRS(cC@sg|_g|_dS(N(t plugin_clstplugins(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyR_s cC@sxy|jD]n}yt||Wq tk rwtj\}}}tj|||}tjdj |q Xq WdS(Nu( R(tgetattrt Exceptiontsystexc_infot tracebacktformat_exceptiontloggertcriticaltjoin(Rtmethodtplugintexc_typet exc_valuet exc_tracebackt except_list((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt_callercs c@sx|jD]}|jtfd|Dr<q n|j|}|jdo||jddo||jdd }|r |jj|q q WdS(uwChecks whether plugins are enabled or disabled in configuration files and removes disabled plugins from listc3@s!|]}tj|VqdS(N(tfnmatch(t.0tpattern(R (s./usr/lib/python2.7/site-packages/dnf/plugin.pys qsumainuenabledN(R'R tanyRt has_sectiont has_optiont getbooleantremove(RRtenable_pluginstplug_clsRtdisabled((R s./usr/lib/python2.7/site-packages/dnf/plugin.pyt_check_enabledls cC@sttjkrtdntjjttjt<}g|_t|j ||}t ||t |_ |j ||t|j dkrtd|j D}tjtddj|ndS(u)Dynamically load relevant plugin modules.uload_plugins() called twiceics@s|]}|jVqdS(N(R (R:R3((s./usr/lib/python2.7/site-packages/dnf/plugin.pys suLoaded plugins: %su, N(tDYNAMIC_PACKAGER+tmodulest RuntimeErrorR tpycompt ModuleTypet__path__t_iter_py_filest pluginpatht_import_modulest_plugin_classesR'RDtlentsortedR/tdebugRR1(RRtskipsRAtpackageRtnames((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt_load{s   cC@s|jddS(Nu pre_config(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt_run_pre_configscC@s|jddS(Nuconfig(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt _run_configscC@s7x0|jD]%}|||}|jj|q WdS(N(R'R(tappend(RRRtp_clsR3((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt _run_initscC@s|jddS(Nusack(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytrun_sackscC@s|jddS(Nuresolved(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt run_resolvedscC@s|jddS(Nupre_transaction(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytrun_pre_transactionscC@s|jddS(Nu transaction(R8(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pytrun_transactionscC@stjt=dS(N(R+RFRE(R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyt_unloadsc C@stg|jD]}|j^q }|s/dStg|jD]}|j^q<}||}|shdSt}x3|jD](}|j|kr{|j|jq{q{Wx=|jD]1}tj|j |kr|jj |qqWdS(N( tsett remove_setR t install_settupdateRR(tinspecttgetfilet __class__R@( RR RSterasedt installedttransaction_difft files_erasedtpkgR3((s./usr/lib/python2.7/site-packages/dnf/plugin.pytunload_removed_pluginss%%  N(R!R"RR8RDRURVRWR$RZR[R\R]R^R_Rl(((s./usr/lib/python2.7/site-packages/dnf/plugin.pyR&^s           cC@s tjS(N(Rt__subclasses__(((s./usr/lib/python2.7/site-packages/dnf/plugin.pyRNscC@sx|D]}tjj|\}}|jj|tjj|\}}d|j|f}ytj|}Wqt k r}t j t d|t j tjjddtqXqWdS(Nu%s.%suFailed loading plugin: %suR,(tosRtsplitRJRXtsplitextR!t importlibt import_moduleR*R/terrorRtlogR tloggingtSUBDEBUGtTrue(RStpy_filestfnRtmoduletextR R((s./usr/lib/python2.7/site-packages/dnf/plugin.pyRMs c#@sx|D]}xtjd|D]p}tjjtjj|\}tfd|Drtfd|Dsq!qn|Vq!WqWdS(Nu%s/*.pyc3@s!|]}tj|VqdS(N(R9(R:R;(R (s./usr/lib/python2.7/site-packages/dnf/plugin.pys sc3@s!|]}tj|VqdS(N(R9(R:R;(R (s./usr/lib/python2.7/site-packages/dnf/plugin.pys s(tglobRnRRptbasenameR<(tpathsRRRAtpRyR((R s./usr/lib/python2.7/site-packages/dnf/plugin.pyRKs $ c@sVfd}ttjdtjfi|d6jdd6}|_S(u5A class decorator for automatic command registration.c@s|r|jndS(N(tregister_command(RRR(t command_class(s./usr/lib/python2.7/site-packages/dnf/plugin.pyRsuPluginu__init__iuname(ttypetstrR!R Rtaliasest_plugin(RRt plugin_class((Rs./usr/lib/python2.7/site-packages/dnf/plugin.pyRs   (t __future__RRRR9R|Rqtiniparse.compatRRdRutoperatorRnR+R-t dnf.loggingR t dnf.pycomptdnf.utiltdnf.i18nRt getLoggerR/REtobjectRR&RNRMRKR(((s./usr/lib/python2.7/site-packages/dnf/plugin.pyts0             0W