Current File : //lib/python3.9/site-packages/dnf/cli/commands/__pycache__/repolist.cpython-39.pyc
a

�!cz2�@s�ddlmZddlmZddlmZddlmZmZmZm	Z	ddl
mZddlZ
ddlZ
ddlZ
ddlZddlZddlZddlZe�d�Zdd	�Zd
d�Zdd
�Zdd�ZGdd�dej�ZdS)�)�absolute_import)�unicode_literals)�commands)�_�ucd�fill_exact_width�exact_width)�OptionParserN�dnfcCsd|rtj�|j���ntd�}|jdkr4td�|S|jsFtd�|St|j�}td�||fSdS)N�unknown���zNever (last: %s)zInstant (last: %s)z%s second(s) (last: %s))r
�util�normalize_time�_repo�getTimestamprZmetadata_expire�_num2ui_num)�repo�md�last�num�r�=/usr/lib/python3.9/site-packages/dnf/cli/commands/repolist.py�_expire_str%s

rcCsttj�d|d��S)Nz%dT)rr
Zpycomp�format)rrrrr0srcCsF|j��}|j��}|D](}t�||�r.dSt�||�rdSqdS)NTF)�id�lower�name�fnmatch)r�patterns�ridZrnm�patrrr�_repo_match4s

r!cCs:d}|jtjd�j|jd�D]}||j7}qtjj�	|�S)Nr��flags�Zreponame__eq)
�query�hawkey�IGNORE_EXCLUDES�filtermr�_sizer
�clirZ
format_number)�sackr�ret�pkgrrr�
_repo_size?sr.c@s@eZdZdZdZed�Zedd��Zdd�Z	dd	�Z
d
d�ZdS)
�RepoListCommandzVA class containing methods needed by the cli to execute the
    repolist command.
    )Zrepolist�repoinfoz,display the configured software repositoriesc	Csx|��}|jdddddtd�d�|jddddtd	�d
�|jddddtd
�d
�|jddddgd�tjtd�d�dS)Nz--all�
_repos_action�store_const�allzshow all repos)�dest�action�const�default�helpz	--enabled�enabledzshow enabled repos (default))r4r5r6r8z
--disabled�disabledzshow disabled repos�repos�*�enabled-defaultZ
REPOSITORY)r3r9r:zRepository specification)�nargsr7�metavar�choicesr5r8)�add_mutually_exclusive_group�add_argumentrr	ZPkgNarrowCallback)�parserZ	repolimitrrr�
set_argparserNs$����zRepoListCommand.set_argparsercCs |jjs|jjtjtjd�dS)N)�stdout�stderr)�opts�quietr*Zredirect_logger�loggingZWARNING�INFO)�selfrrr�
pre_configure_szRepoListCommand.pre_configurecCsT|jjs|j��|jj}|jjjs0|jjdkr<d|_	d|_
|jjrP|jj|j_dS)Nr0T)
rGrHr*Zredirect_repo_progress�demands�base�conf�verbose�commandZavailable_reposZsack_activationr1�repos_action)rKrMrrr�	configurecs
zRepoListCommand.configurec-CsR|jj}dd�|jjD�}|jjj}t|jj���}|jt	�
d�d�|jj}|j
d|jd}|j
d}|jd}d	}	g}
|s�t�td
��dS|dkp�|dko�|}g}|D�]�}
t|�r�t|
|�s�q�d
\}}}d}d	}d}|r�|||}}}|
j�rfd}|dk�rq�|�s&|�s&|jjdk�rB|td�|}ttd��}|�sV|jjdk�r�t|jj|
�}n:d}|dks�|dk�r�|�s�q�|td�|}ttd��}|�s�|jjdk�s�t|
j�}|
�||
j||ff�q�|�r�|
j}nd}|j�td�|
j�|j�td�|
j�g}|�r.||j�td�|�g7}|�r^|
j� ��r^||j�td�|
j� ��g7}|�r�|
j�!��r�|
j�!�}||j�td�d�"t#|���g7}|�r|
j�$��rdd�|
j�$�D�}|�%�D]4\}}||j�td�d|d�"t#|��f�g7}�q�|�r�t|jjj&t'j(d�j)|
jd��}t|jj�&�j)|
jd��}t*|�}t*|�}|	|7}	||j�td �t+j,�-|
j�.���|j�td!�|�|j�td"�|�|j�td#�|�g7}|
j/�r||j�td$�|
j/�g7}|�r$|
j�0�} ||j�td%�t+j,�-| ��g7}n"|
j1�r$||j�td&�|
j1�g7}|
j2}!|!�rP||j�td'�d�"|!��g7}nF|�r�|
j�3�}"|"�r�d(|"d	t|"�d)f}#||j�td'�|#�g7}t4|
|�}$||j�td*�|$�g7}|
j5�r�||j�td+�d�"|
j5��g7}|
j6�r||j�td,�d�"|
j6��g7}|�r&||j�td-�|�g7}|
j7�rH||j�td.�|
j7�g7}|�d/�"t8t|���q�|�rtt9d0�"|��|�s |
�r ttd1��}%d	}&d	}'|
D]J\}}(\}}|%t|�k�r�t|�}%|&t|(�k�r�t|(�}&|'|k�r�|}'�q�|�r,ttd2��|'k�r|j:|%ttd2��d3})n|j:|%|'d3})n|j:|%d)})|)|&k�rJ|)}&n$|)|&8})|%|)d37}%|&|)|)d37}&t;td1�|%�}*|�r�t;td4�|&|&�}+ntd4�}+|�s�t9d5|*|+f�nt9d6|*|+td2�f�|
D]P\}}(\}}|�s�t9d5t;||%�|(f��q�t9d6t;||%�t;|(|&|&�|f��q�|�s4|jjdk�rNtd7�},t9|,�<t*|	���dS)8NcSsg|]}|���qSr)r)�.0�xrrr�
<listcomp>p�z'RepoListCommand.run.<locals>.<listcomp>r)�keyZgreenZboldZredZnormalrzNo repositories availabler3r=)�rYrYrYTr:r0r9FzRepo-id            : zRepo-name          : zRepo-status        : zRepo-revision      : zRepo-tags          : z, cSsi|]\}}||�qSrr)rT�k�vrrr�
<dictcomp>�rWz'RepoListCommand.run.<locals>.<dictcomp>zRepo-distro-tags      : z[%s]: %sr"r$zRepo-updated       : zRepo-pkgs          : zRepo-available-pkgs: zRepo-size          : zRepo-metalink      : z  Updated          : zRepo-mirrors       : zRepo-baseurl       : z%s (%d more)�zRepo-expire        : zRepo-exclude       : zRepo-include       : zRepo-excluded      : zRepo-filename      : �
z

zrepo id�status�z	repo namez%s %sz%s %s %szTotal packages: {})=rGrRr;rNrOrP�list�values�sort�operator�
attrgetter�output�termZFG_COLORZMODE�loggerZwarningr�lenr!r9rQrr.r+rr�appendr�metadataZ
fmtKeyValFillrZgetRevisionZgetContentTags�join�sortedZ
getDistroTags�itemsr%r&r'r(rr
r
rZgetMaxTimestampZmetalinkrZ
mirrorlistZbaseurlZ
getMirrorsrZexcludepkgsZincludepkgsZrepofile�map�print�columnsrr)-rK�argZextcmdsrPr;rgZ	on_ehibegZ	on_dhibegZon_hiendZtot_numZcolsZinclude_statusZrepoinfo_outputrZehibegZdhibegZhiendZ
ui_enabledZui_endis_widZui_excludes_numr9Zui_sizerr�out�tagsZdistroTagsDictZdistrorZ
num_availableZui_numZui_num_available�tsZbaseurlsZmirrors�urlZexpireZid_lenZnm_lenZst_lenZrname�leftZtxt_ridZtxt_rnam�msgrrr�runnsP






���
������
�
��



�
���


�zRepoListCommand.runN)�__name__�
__module__�__qualname__�__doc__�aliasesrZsummary�staticmethodrDrLrSryrrrrr/Fs
r/)Z
__future__rrZdnf.clirZdnf.i18nrrrrZdnf.cli.option_parserr	Zdnf.cli.formatr
Z
dnf.pycompZdnf.utilrr&rIrdZ	getLoggerrhrrr!r.ZCommandr/rrrr�<module>s"