관리-도구
편집 파일: repolist.cpython-39.pyc
a �!cz2 � @ s� d dl mZ d dl mZ d dlmZ d dlmZmZmZm Z d dl mZ d dlZ d dlZ d dlZ d dlZd dlZd dlZd dlZe�d�Zdd � Zd d� Zdd � Zdd� ZG dd� dej�ZdS )� )�absolute_import)�unicode_literals)�commands)�_�ucd�fill_exact_width�exact_width)�OptionParserN�dnfc C sd |rt j�| j�� �ntd�}| jdkr4td�| S | jsFtd�| S t| j�}td�||f S d S )N�unknown���zNever (last: %s)zInstant (last: %s)z%s second(s) (last: %s))r �util�normalize_time�_repo�getTimestampr Zmetadata_expire�_num2ui_num)�repo�md�last�num� r �=/usr/lib/python3.9/site-packages/dnf/cli/commands/repolist.py�_expire_str% s r c C s t tj�d| d��S )Nz%dT)r r Zpycomp�format)r r r r r 0 s r c C sF | j �� }| j�� }|D ](}t�||�r. dS t�||�r dS qdS )NTF)�id�lower�name�fnmatch)r �patterns�ridZrnm�patr r r �_repo_match4 s r! c C s: d}| j tjd�j|jd�D ]}||j7 }qtjj� |�S )Nr ��flags�Zreponame__eq) �query�hawkey�IGNORE_EXCLUDES�filtermr �_sizer �clir Z format_number)�sackr �ret�pkgr r r � _repo_size? s r. c @ s@ e Zd ZdZdZed�Zedd� �Zdd� Z dd � Z d d� ZdS ) �RepoListCommandzVA class containing methods needed by the cli to execute the repolist command. )Zrepolist�repoinfoz,display the configured software repositoriesc C sx | � � }|jddddd td�d� |jddddtd �d � |jddddtd �d � | jddddg d�tjtd�d� d S )Nz--all� _repos_action�store_const�allzshow all repos)�dest�action�const�default�helpz --enabled�enabledzshow enabled repos (default))r4 r5 r6 r8 z --disabled�disabledzshow disabled repos�repos�*�enabled-defaultZ REPOSITORY)r3 r9 r: zRepository specification)�nargsr7 �metavar�choicesr5 r8 )�add_mutually_exclusive_group�add_argumentr r ZPkgNarrowCallback)�parserZ repolimitr r r � set_argparserN s$ ����zRepoListCommand.set_argparserc C s | j js| jjtjtjd� d S )N)�stdout�stderr)�opts�quietr* Zredirect_logger�loggingZWARNING�INFO)�selfr r r � pre_configure_ s zRepoListCommand.pre_configurec C sT | j js| j�� | jj}| jjjs0| j jdkr<d|_ d|_ | j jrP| j j| j _d S )Nr0 T) rG rH r* Zredirect_repo_progress�demands�base�conf�verbose�commandZavailable_reposZsack_activationr1 �repos_action)rK rM r r r � configurec s zRepoListCommand.configurec - C sR | j j}dd� | j jD �}| jjj}t| jj�� �}|jt � d�d� | jj}|j d |jd }|j d }|jd }d } g } |s�t�td �� d S |dkp�|dko�|}g }|D �]�} t|�r�t| |�s�q�d \}}}d}d }d}|r�||| }}}| j�rfd}|dk�rq�|�s&|�s&| j jdk�rB|td� | }ttd��}|�sV| j jdk�r�t| jj| �}n:d}|dks�|dk�r�|�s�q�|td� | }ttd��}|�s�| j jdk�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�$� �r dd� | 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 })|%|)d3 7 }%|&|)|)d3 7 }&t;td1�|%�}*|�r�t;td4�|&|&�}+ntd4�}+|�s�t9d5|*|+f � nt9d6|*|+td2�f � | D ]P\}}(\}}|�s�t9d5t;||%�|(f � �q�t9d6t;||%�t;|(|&|&�|f � �q�|�s4| j jdk�rNtd7�},t9|,�<t*| ��� d S )8Nc S s g | ]}|� � �qS r )r )�.0�xr r r � <listcomp>p � z'RepoListCommand.run.<locals>.<listcomp>r )�keyZgreenZboldZredZnormalr zNo repositories availabler3 r= )� rY rY rY Tr: r0 r9 FzRepo-id : zRepo-name : zRepo-status : zRepo-revision : zRepo-tags : z, c S s i | ]\}}||�qS r r )rT �k�vr r r � <dictcomp>� rW z'RepoListCommand.run.<locals>.<dictcomp>zRepo-distro-tags : z[%s]: %sr"