JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/dnf/cli/commands/__pycache__/clean.cpython-39.pyc

a

�!cn�@s�ddlmZddlmZddlmZddlmZmZddlm	Z	ddlZ
ddlZ
ddlZ
ddl
Z
ddlZ
ddlZddlZddlZddlZe�d�Zgd�d	gd
gdggd�d
�Zdd�Zdd�Zdd�Zdd�ZGdd�dej�ZdS)�)�absolute_import)�unicode_literals)�commands)�_�P_)�miscN�dnf)�metadata�dbcache�expire-cache�packagesr
r)r	rr
)r	rr
r�allccsNt�|�D]>\}}}tj�||�}|D] }tj�||�}tj�|�Vq&q
dS)z:Traverse dirpath recursively and yield relative filenames.N)�os�walk�path�relpath�join�normpath)�dirpath�root�dirs�files�base�fr�r�:/usr/lib/python3.9/site-packages/dnf/cli/commands/clean.py�_tree1s
rcs�fdd�|D�S)z5Yield those filenames that match any of the patterns.c3s(|] }�D]}t�||�r
|Vq
qdS�N��re�match)�.0r�p��patternsrr�	<genexpr><�z_filter.<locals>.<genexpr>r)rr$rr#r�_filter:sr'cCsHd}|D]:}tj�||�}t�tjjtd�|�t	�
|�|d7}q|S)z(Remove the given filenames from dirpath.rzRemoving file %s�)rrr�logger�logr�loggingZDDEBUGrrZunlink_f)rr�countrrrrr�_clean?s

r-cs0tjjd��fdd�|D�}tdd�|D��S)z:Return the repo IDs that have some cached metadata around.r	c3s|]}t��|�VqdSrr)r!r�Zmetapatrrr%Mr&z _cached_repos.<locals>.<genexpr>css|]}|r|�d�VqdS)ZrepoidN)�group)r!�mrrrr%Nr&)r�repo�CACHE_FILES�set)r�matchesrr.r�
_cached_reposJsr5c@s0eZdZdZdZed�Zedd��Zdd�Z	dS)	�CleanCommandzSA class containing methods needed by the cli to execute the
    clean command.
    )Zcleanzremove cached datacCs|jddt��td�d�dS)N�type�+zMetadata type to clean)�nargs�choices�help)�add_argument�_CACHE_TYPES�keysr)�parserrrr�
set_argparserYs�zCleanCommand.set_argparserc
Cs�|jjj}tj�|d�}tj�|d�}tj�|jjjd�}�z<|�� |���|��t	dd�|j
jD��}tt
|��}t�tdd�|���d|vr�t|�}|jjj�|�|�d�t�td��dd	�|D�}t|t||��}	t�td
d|	�|	�Wd�Wd�Wd�WdS1�s,0YWd�n1�sL0YWd�n1�sl0YWq:tjj�y�}
z@|jjj�s�td�|
j}t�|�t� d
�n|
�WYd}
~
q:d}
~
00q:dS)NTcss |]}t|D]
}|VqqdSr)r=)r!�c�trrrr%gr&z#CleanCommand.run.<locals>.<genexpr>zCleaning data: � rzCache was expiredcSsg|]}tjj|�qSr)rr1r2)r!rBrrr�
<listcomp>qr&z$CleanCommand.run.<locals>.<listcomp>z%d file removedz%d files removedz*Waiting for process with pid %d to finish.�)!rZconf�cachedirr�lockZbuild_metadata_lockZbuild_download_lockZbuild_rpmdb_lockZ
persistdirr3Zoptsr7�listrr)�debugrrr5Z_repo_persistorZexpired_to_add�update�remove�infor-r'r�
exceptionsZ	LockErrorZexit_on_lock�pid�time�sleep)�selfrFZmd_lockZ
download_lockZ
rpmdb_lock�typesrZexpiredr$r,�e�msgrrr�run_s0

�
zCleanCommand.runN)
�__name__�
__module__�__qualname__�__doc__�aliasesrZsummary�staticmethodr@rUrrrrr6Qs
r6)Z
__future__rrZdnf.clirZdnf.i18nrrZdnf.yumrrZdnf.exceptionsZdnf.lockZdnf.loggingZdnf.repor+rrrOZ	getLoggerr)r=rr'r-r5ZCommandr6rrrr�<module>s2
�		
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg