Sindbad~EG File Manager
3
�ft`��@s�ddlmZddlmZddlmZddlZddlmZddlmZddl m
Z
mZmZddl Z
ddlZ
ddlZ
ddlZddlZejd�ZGd d
�d
ej�ZdS)�)�absolute_import)�print_function)�unicode_literalsN)�commands)�OptionParser)�ucd�_�C_�dnfc@sPeZdZdZdZed�Zedd��Zdd�Z d d
�Z
dd�Zd
d�Zdd�Z
dS)�
SearchCommandzTA class containing methods needed by the cli to execute the
search command.
�search�sez+search package details for the given stringc Cs<|jddtd�d�|jddtd�dgdtjtd �d
�dS)Nz--all�
store_truez'search also package description and URL)�action�help�query_string�+ZKEYWORD�allzKeyword to search for)�nargs�metavar�choices�defaultrr)�add_argumentrrZPkgNarrowCallback)�parser�r�/usr/lib/python3.6/search.py�
set_argparser0szSearchCommand.set_argparsercs4tjdtdd�fdtdd�fdtdd�fdtd �ff���fd
d����fdd
�}tjj�}x(|D] }�j|d|��j|d|�qbW�jj r�xd|D] }�j|d|��j|d|�q�Wn:t
|�}t|j��}x$|D]}t
|j
|��|kr�||=q�Wd}d} d}
d}d}�jjj�s0�jjj�j|j�d�j�}t�}
x�|jd|d�D]�}�jjj�s~|j|j|
k�rl�qF|
j|j|j�||j|�k�r�|j|�}d}| |j
|�k�r�|j
|�} d}|
|j|�| kk�r�|j|�| k}
d}|�r�||
|| �d}�jjj||j|�|��qFWt
|�dk�r0tjtd��dS)z0Search for simple text tags in a package object.�nameZlong�Name�summaryZSummary�descriptionZDescriptionZurlZURLc sy�|S|SdS)Nr)�attr)� TRANS_TBLrr�_translate_attrCsz.SearchCommand._search.<locals>._translate_attrcs^t�|�}td�j|�}|r*td�|}ntd�|}�jjj|dj|��}tt|��dS)Nz & z%s Exactly Matched: %%sz%s Matched: %%sz, )�mapr�join�base�outputZ
fmtSection�printr)�exact_matchZattrs�keysZtrans_attrsZtrans_attrs_strZsection_textZ formatted)r#�selfrr�_print_section_headerIs
z4SearchCommand._search.<locals>._print_section_headerNF)�pkgT)�reverseZlimit_torzNo matches found.) �collections�OrderedDictr rr
Z
match_counterZMatchCounter�_search_counted�optsr�len�listr*�matched_needlesr&ZconfZshowdupesfromrepos�sack�query�filtermZlatest�set�sortedrZarch�addZmatched_keysZmatched_haystacksr'Z
matchcallback�logger�info)r+�argsr,�counter�argZneedlesZpkgsr-Z
used_attrsr5r)Zprint_section_header�limit�seenr)r"r#r+r�_search9s`
zSearchCommand._searchcCs`d||i}tjj|�r$d||i}|jjj�jtjf|�}x|j �D]}|j
|||�qFW|S)Nz
%s__substrz%s__glob)r
�utilZis_glob_patternr&r6r7r8�hawkeyZICASE�runr;)r+r?r!ZneedleZfdict�qr-rrrr1�szSearchCommand._search_countedcCs |jjs|jjtjtjd�dS)N)�stdout�stderr)r2�quiet�cliZredirect_logger�loggingZWARNING�INFO)r+rrr�
pre_configure�szSearchCommand.pre_configurecCsD|jjs|jj�|jj}d|_d|_d|_|jjp:|jj |j_dS)NTF)
r2rJrKZredirect_repo_progress�demandsZavailable_reposZfresh_metadataZsack_activationrZquery_string_action)r+rOrrr� configure�s
zSearchCommand.configurecCstjtd��|j|jj�S)NzSearching Packages: )r<�debugrrCr2r)r+rrrrF�szSearchCommand.runN)rr
)�__name__�
__module__�__qualname__�__doc__�aliasesrr�staticmethodrrCr1rNrPrFrrrrr(s O r)Z
__future__rrrr/Zdnf.clirZdnf.cli.option_parserrZdnf.i18nrrr r
Zdnf.match_counterZdnf.utilrErLZ getLoggerr<ZCommandrrrrr�<module>s
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists