1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
U
H=®dTã@sVddlmZddlZddlZddlZddlmZddlmZddl    m
Z ddl m Z ddlmZddlmZdd    lmZmZdd
lmZdd lmZdd lmZdd lmZddlmZddlm Z m!Z!ddl"m#Z#e#rddl$m%Z%ddl&m'Z'm(Z(m)Z)ddl*m+Z+e+de,e,e'e,dœƒZ-e .e/¡Z0Gdd„deeƒZ1dd„Z2ddd„Z3dd„Z4dS)é)Úabsolute_importN)Ú OrderedDict)Ú pkg_resources)Úparse)Ú xmlrpc_client)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)Ú CommandError)ÚPyPI)ÚPipXmlrpcTransport)Úget_terminal_size)Ú
indent_log)Úget_distributionÚ write_output)ÚMYPY_CHECK_RUNNING)ÚValues)ÚListÚDictÚOptional)Ú    TypedDictÚTransformedHit©ÚnameÚsummaryÚversionsc@s0eZdZdZdZdZdd„Zdd„Zdd    „Zd
S) Ú SearchCommandz@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>TcCs.|jjddddtjdd|j d|j¡dS)Nz-iz--indexÚindexÚURLz3Base URL of Python Package Index (default %default))ÚdestÚmetavarÚdefaultÚhelpr)Úcmd_optsÚ
add_optionr Úpypi_urlÚparserÚinsert_option_group)Úself©r*úTD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/commands/search.pyÚ add_options,sûzSearchCommand.add_optionscCsT|s tdƒ‚|}| ||¡}t|ƒ}d}tj ¡r<tƒd}t||d|rPtSt    S)Nz)Missing required argument (search query).r)Úterminal_width)
r ÚsearchÚtransform_hitsÚsysÚstdoutÚisattyrÚ print_resultsr
r    )r)ÚoptionsÚargsÚqueryZ    pypi_hitsÚhitsr-r*r*r+Úrun7s 
 
 zSearchCommand.runcCs<|j}| |¡}t||ƒ}t ||¡}| ||dœd¡}|S)N)rrÚor)rÚget_default_sessionr rÚ ServerProxyr.)r)r6r4Ú    index_urlÚsessionÚ    transportÚpypir7r*r*r+r.Hs 
 
 zSearchCommand.searchN)    Ú__name__Ú
__module__Ú __qualname__Ú__doc__ÚusageÚignore_require_venvr,r8r.r*r*r*r+r%s  rcCs†tƒ}|D]n}|d}|d}|d}|| ¡krF|||gdœ||<q
||d |¡|t||dƒkr
|||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.
    rrÚversionrr)rÚkeysÚappendÚhighest_versionÚlistÚvalues)r7ÚpackagesÚhitrrrFr*r*r+r/Ts ý r/c
CsZ|sdS|dkr&tdd„|Dƒƒd}dd„tjDƒ}|D]}|d}|dpRd}t| dd    g¡ƒ}|dk    r¤||d
}|d kr¤t ||¡}    d d |d |    ¡}djfddjft    ƒŽit    ƒ—Ž}
zxt
|
ƒ||kr:t |ƒ} t ƒN| j |krt
d| j ƒn.t
d| j ƒt|ƒjr&t
d|ƒn
t
d|ƒW5QRXWq:tk
rRYq:Xq:dS)Nc    Ss.g|]&}t|dƒtt| ddg¡ƒƒ‘qS)rrú-)ÚlenrIÚget)Ú.0rMr*r*r+Ú
<listcomp>vsÿz!print_results.<locals>.<listcomp>écSsg|]
}|j‘qSr*)Ú project_name)rQÚpr*r*r+rR{srrÚrrNéé
Ú
ú éz-{name_latest:{name_column_width}} - {summary}Z name_latestz{name} ({latest})zINSTALLED: %s (latest)z INSTALLED: %sz=LATEST:    %s (pre-release; install with "pip install --pre")z LATEST:    %s)ÚmaxrÚ working_setrIrPÚtextwrapÚwrapÚjoinÚformatÚlocalsrrrrFÚ parse_versionÚpreÚUnicodeEncodeError) r7Zname_column_widthr-Zinstalled_packagesrMrrZlatestZ target_widthZ summary_linesÚlineÚdistr*r*r+r3qsPþý
   ÿ ÿþ
   ÿr3cCs t|tdS)N)Úkey)r\rc)rr*r*r+rIsrI)NN)5Ú
__future__rÚloggingr0r^Ú collectionsrÚ pip._vendorrÚpip._vendor.packaging.versionrrcÚpip._vendor.six.movesrÚpip._internal.cli.base_commandrÚpip._internal.cli.req_commandrÚpip._internal.cli.status_codesr    r
Úpip._internal.exceptionsr Úpip._internal.models.indexr Zpip._internal.network.xmlrpcr Úpip._internal.utils.compatrÚpip._internal.utils.loggingrÚpip._internal.utils.miscrrÚpip._internal.utils.typingrÚoptparserÚtypingrrrZtyping_extensionsrÚstrrÚ    getLoggerr@Úloggerrr/r3rIr*r*r*r+Ú<module>s<               þ
/
,