<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    .e                     @   s   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  e!e"Z#G dd deeZ$dd Z%dddZ&dd Z'dS )    )absolute_importN)OrderedDict)pkg_resources)parse)xmlrpc_client)Command)SessionCommandMixin)NO_MATCHES_FOUNDSUCCESS)CommandError)PyPI)PipXmlrpcTransport)get_terminal_size)
indent_log)write_outputc                       s8   e Zd ZdZdZdZ fddZdd Zdd	 Z  Z	S )
SearchCommandz@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>Tc                    s@   t t| j|| | jjddddtjdd | jd| j d S )Nz-iz--indexindexZURLz3Base URL of Python Package Index (default %default))destmetavardefaulthelpr   )	superr   __init__Zcmd_optsZ
add_optionr   Zpypi_urlparserZinsert_option_group)selfargskw	__class__ A/usr/lib/python3.8/site-packages/pip/_internal/commands/search.pyr   %   s     zSearchCommand.__init__c                 C   sT   |st d|}| ||}t|}d }tj r<t d }t||d |rPtS t	S )Nz)Missing required argument (search query).r   )terminal_width)
r   searchtransform_hitssysstdoutisattyr   print_resultsr
   r	   )r   optionsr   queryZ	pypi_hitshitsr!   r   r   r    run0   s    

zSearchCommand.runc                 C   s<   |j }| |}t||}t||}|||dd}|S )N)namesummaryor)r   Zget_default_sessionr   r   ZServerProxyr"   )r   r)   r(   Z	index_urlZsessionZ	transportZpypir*   r   r   r    r"   @   s    

zSearchCommand.search)
__name__
__module____qualname____doc__ZusageZignore_require_venvr   r+   r"   __classcell__r   r   r   r    r      s   r   c                 C   s   t  }| D ]n}|d }|d }|d }|| krF|||gd||< q
|| d | |t|| d kr
||| d< q
t| S )z
    The list from pypi is really a list of versions. We want a list of
    packages with the list of versions stored inline. This converts the
    list from pypi into one we can use.
    r,   r-   version)r,   r-   versionsr5   )r   keysappendhighest_versionlistvalues)r*   Zpackageshitr,   r-   r4   r   r   r    r#   K   s    r#   c              
   C   sP  | sd S |d kr&t dd | D d }dd tjD }| D ]}|d }|d pRd}t|dd	g}|d k	r|| d
 }|dkrt||}dd|d   |}d|d||f |f }	zxt|	 ||kr0t	|}
t
 L |
j|krtd|
j n.td|
j t|jrtd| n
td| W 5 Q R X W q: tk
rH   Y q:X q:d S )Nc              	   S   s.   g | ]&}t |d  t t|ddg qS )r,   r5   -)lenr8   get).0r;   r   r   r    
<listcomp>k   s   z!print_results.<locals>.<listcomp>   c                 S   s   g | ]
}|j qS r   )Zproject_name)r?   pr   r   r    r@   p   s     r,   r-    r5   r<      
   
    z	%-*s - %sz%s (%s)zINSTALLED: %s (latest)zINSTALLED: %sz=LATEST:    %s (pre-release; install with "pip install --pre")zLATEST:    %s)maxr   Zworking_setr8   r>   textwrapZwrapjoinr   Zget_distributionr   r4   parse_versionZpreUnicodeEncodeError)r*   Zname_column_widthr!   Zinstalled_packagesr;   r,   r-   ZlatestZtarget_widthlineZdistr   r   r    r'   g   sJ    

 


r'   c                 C   s   t | tdS )N)key)rI   rL   )r5   r   r   r    r8      s    r8   )NN)(Z
__future__r   Zloggingr$   rJ   collectionsr   Zpip._vendorr   Zpip._vendor.packaging.versionr   rL   Zpip._vendor.six.movesr   Zpip._internal.cli.base_commandr   Zpip._internal.cli.req_commandr   Zpip._internal.cli.status_codesr	   r
   Zpip._internal.exceptionsr   Zpip._internal.models.indexr   Zpip._internal.network.xmlrpcr   Zpip._internal.utils.compatr   Zpip._internal.utils.loggingr   Zpip._internal.utils.miscr   Z	getLoggerr/   Zloggerr   r#   r'   r8   r   r   r   r    <module>   s*   
-
)