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@@sVddlmZddlmZddlmZddlmZmZddlm Z ddlZ ddl Z ddl Z ddl Z ddlZ ddlZddlZddlZddlZejdZidd d gd6d gd 6d gd 6d gd 6dd d gd 6Zd ZdZdZdZdejfdYZdS(i(tabsolute_import(tunicode_literals(tcommands(t_tP_(tmiscNudnfumetadataudbcacheu expire-cacheupackagesuallcc@ssxltj|D][\}}}tjj||}x4|D],}tjj||}tjj|Vq;WqWdS(u:Traverse dirpath recursively and yield relative filenames.N(tostwalktpathtrelpathtjointnormpath(tdirpathtroottdirstfilestbasetfR((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyt_tree1s  c@sfd|DS(u5Yield those filenames that match any of the patterns.c3@s4|]*}D]}tj||r |Vq qdS(N(tretmatch(t.0Rtp(tpatterns(s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pys <s((RR((Rs:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyt_filter:scC@sfd}xY|D]Q}tjj||}tjtjjtd|t j ||d7}q W|S(u(Remove the given filenames from dirpath.iuRemoving file %si( RRR tloggertlogtdnftloggingtDDEBUGRRtunlink_f(R RtcountRR((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyt_clean?s  c@s:tjjdfd|D}td|DS(u:Return the repo IDs that have some cached metadata around.umetadatac3@s!|]}tj|VqdS(N(RR(RR(tmetapat(s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pys Mscs@s$|]}|r|jdVqdS(urepoidN(tgroup(Rtm((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pys Ns(Rtrepot CACHE_FILEStset(Rtmatches((R!s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyt _cached_reposJst CleanCommandcB@s8eZdZdZedZedZdZRS(uSA class containing methods needed by the cli to execute the clean command. ucleanuremove cached datac C@s/|jddddtjdtddS(Nutypetnargsu+tchoicesthelpuMetadata type to clean(t add_argumentt _CACHE_TYPEStkeysR(tparser((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyt set_argparserYs c C@s|jjj}tjj|t}tjj|t}tjj|jjj t}xtry|or|or|t d|j j D}t t|}tjtddj|d|krt|}|jjjj||jdtjtdng|D]}tjj|^q} t|t|| } tjtdd| | dSWdQXWqZtjjk r} |jjj std| j!} tj| t"j#d q| qZXqZWdS( Ncs@s&|]}t|D] }|VqqdS(N(R.(Rtctt((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pys gsuCleaning data: u u expire-cacheuCache was expiredu%d file removedu%d files removedu*Waiting for process with pid %d to finish.i($RtconftcachedirRtlocktbuild_metadata_locktTruetbuild_download_locktbuild_rpmdb_lockt persistdirR&toptsttypetlistRRtdebugRR R(t_repo_persistortexpired_to_addtupdatetremovetinfoR$R%R RRt exceptionst LockErrort exit_on_locktpidttimetsleep( tselfR5tmd_lockt download_lockt rpmdb_lockttypesRtexpiredR3RRtetmsg((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pytrun_s2     # (uclean( t__name__t __module__t__doc__taliasesRtsummaryt staticmethodR1RS(((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyR)Qs  (t __future__RRtdnf.cliRtdnf.i18nRRtdnf.yumRRtdnf.exceptionstdnf.lockt dnf.loggingtdnf.repoRRRRIt getLoggerRR.RRR R(tCommandR)(((s:/usr/lib/python2.7/site-packages/dnf/cli/commands/clean.pyts2