ReA ddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlmZddlmZddlmZmZdd lmZdd lmZdd lmZdd lm Z dd l!m"Z"ddl#m$Z$e rddl m%Z%Gdde%Z&ej'e(Z)GddeeZ*de e e+e+fde dfdZ,de+de+ddfdZ- dde ddee.dee.ddfdZ/de e+de+fdZ0dS) N) OrderedDict)Values) TYPE_CHECKINGDictListOptional)parse)Command)SessionCommandMixin)NO_MATCHES_FOUNDSUCCESS) CommandError)get_default_environment)PyPI)PipXmlrpcTransport) indent_log) write_output) TypedDictc:eZdZUeed<eed<eeed<dS)TransformedHitnamesummaryversionsN)__name__ __module__ __qualname__str__annotations__r/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-3.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/commands/search.pyrrs4  s)r rc ~eZdZdZdZdZd dZdedee de fd Z d ee dedee e e ffd Z dS) SearchCommandz@Search for PyPI packages whose name or summary contains .z %prog [options] TreturnNc|jddddtjd|jd|jdS)Nz-iz--indexindexURLz3Base URL of Python Package Index (default %default))destmetavardefaulthelpr)cmd_opts add_optionrpypi_urlparserinsert_option_group)selfs r! add_optionszSearchCommand.add_options)sW    MF !    ''4=99999r optionsargsc&|std|}|||}t|}d}tjrt jd}t|||rtStS)Nz)Missing required argument (search query).r)terminal_width) rsearchtransform_hitssysstdoutisattyshutilget_terminal_size print_resultsr r )r1r3r4query pypi_hitshitsr6s r!runzSearchCommand.run5s LJKK KKKw// i(( :     ;#577:Nd>::::  Nr r?c|j}||}t||}tj||} |||dd}nL#tjj$r5}d|j |j } t| d}~wwxYwt|tsJ|S)N)rrorz-XMLRPC request failed [code: {code}] {string})codestring)r&get_default_sessionrxmlrpcclient ServerProxyr7Faultformat faultCode faultStringr isinstancelist) r1r?r3 index_urlsession transportpypirAfaultmessages r!r7zSearchCommand.searchEsM **733&y':: }((I>> (;;%@@$GGDD}" ( ( (FMM_(NGw'' '  ( $%%%%% sA((B1<0B,,B1)r$N)rrr__doc__usageignore_require_venvr2rrrintrBrr7rr r!r#r#"sJJ !E : : : : 6 c s    DI4S#X;Or r#rAr$crt}|D]}|d}|d}|d}||vr |||gd||<;||d||t||dkr |||d<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. rrversion)rrrr)rkeysappendhighest_versionrPvalues)rApackageshitrrr\s r!r8r8Xs -8MMH446{i.i. x}} & &"$IHTNN TN: & - -g 6 6 6/(4.*DEEEE,3y) !! " ""r rlatestcxt}||}|t5|j|krt d|jnJt d|jt |jrt d|nt d|ddddS#1swxYwYdSdS)NzINSTALLED: %s (latest)z INSTALLED: %sz=LATEST: %s (pre-release; install with `pip install --pre`)z LATEST: %s)rget_distributionrr\r parse_versionpre)rrcenvdists r!print_dist_installation_inforjts ! # #C    % %D  \\ : :|v%%5t|DDDD_dl;;; ((,: 5 !&999 : : : : : : : : : : : : : : : : : :sA,B--B14B1name_column_widthr6c|sdS|td|Ddz}|D]}|d}|dpd}t|ddg}|A||z dz }|d kr3tj||}d d |d zzz|}|d |d} | |d|} t | t||#t$rYwxYwdS)Nc g|]I}t|dtt|ddgzJS)rr-)lenr_get).0rbs r! z!print_results..sZF $$s?377:PSu;U;U+V+V'W'WWr rrrrn   z ()z - ) maxr_rptextwrapwrapjoinrrjUnicodeEncodeError) rArkr6rbrrrc target_width summary_lines name_latestlines r!r>r>sh  #      6{i.&B cU!;!;<<  %),==ALb  ( g| D D #):Q)>"??EEmTT***** 0???g??      (v 6 6 6 6!    D !s2C CCrc.t|tS)N)key)r{rf)rs r!r_r_s x] + + ++r )NN)1loggingr<r9r| xmlrpc.clientrH collectionsroptparsertypingrrrrpip._vendor.packaging.versionr rfpip._internal.cli.base_commandr pip._internal.cli.req_commandr pip._internal.cli.status_codesr r pip._internal.exceptionsrpip._internal.metadatarpip._internal.models.indexrpip._internal.network.xmlrpcrpip._internal.utils.loggingrpip._internal.utils.miscrrr getLoggerrloggerr#rr8rjrZr>r_rr r!rs ######666666666666@@@@@@222222======DDDDDDDD111111::::::++++++;;;;;;222222111111        8 $ $33333G0333l#d38n-#$7G2H####8:s:C:D::::*(,$(##  #}#SM# ####L,d3i,C,,,,,,r