7iA 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&ejNe(Z)GddeeZ*de e e+e+fde dfdZ,de+de+ddfdZ- dde ddee.dee.ddfdZ/de e+de+fdZ0y) N) OrderedDict)Values) TYPE_CHECKINGDictListOptional)parse)Command)SessionCommandMixin)NO_MATCHES_FOUNDSUCCESS) CommandError)get_default_environment)PyPI)PipXmlrpcTransport) indent_log) write_output) TypedDictc2eZdZUeed<eed<eeed<y)TransformedHitnamesummaryversionsN)__name__ __module__ __qualname__str__annotations__rf/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pip/_internal/commands/search.pyrrs  s)r rc deZdZdZdZdZd dZdedee de fd Z d ee dedee e e ffd Z y) SearchCommandz@Search for PyPI packages whose name or summary contains .z %prog [options] TreturnNc|jjddddtjd|jj d|jy)Nz-iz--indexindexURLz3Base URL of Python Package Index (default %default))destmetavardefaulthelpr)cmd_opts add_optionrpypi_urlparserinsert_option_group)selfs r! add_optionszSearchCommand.add_options)sI    MMF !  ''4==9r optionsargsc|s td|}|j||}t|}d}tjj rt jd}t|||rtStS)Nz)Missing required argument (search query).r)terminal_width) rsearchtransform_hitssysstdoutisattyshutilget_terminal_size print_resultsr r )r1r3r4query pypi_hitshitsr6s r!runzSearchCommand.run5spJK KKKw/ i( ::   #557:Nd>: Nr r?c|j}|j|}t||}tjj ||} |j ||dd}t|tsJ|S#tjj$r7}dj|j|j} t| d}~wwxYw)N)rrorz-XMLRPC request failed [code: {code}] {string})codestring)r&get_default_sessionrxmlrpcclient ServerProxyr7Faultformat faultCode faultStringr isinstancelist) r1r?r3 index_urlsession transportpypirAfaultmessages r!r7zSearchCommand.searchEsMM **73&y': }}((I> (;;%@$GD$%%% }}"" (FMM__((NGw' '  (s A44C2CC)r$N)rrr__doc__usageignore_require_venvr2rrrintrBrr7rr r!r#r#"s`J !E : 6 c s DI4S#X;Or r#rAr$ct}|D]b}|d}|d}|d}||jvr |||gd||</||dj||t||dk(s[|||d<dt |j 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 -8MH46{i.i. x}} &"$IHTN TN: & - -g 6/(4.*DEE,3y)!4$ ! ""r rlatestcRt}|j|}|~t5|j|k(rt d|jnDt d|jt |j r t d|n t d|dddyy#1swYyxYw)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||D_dll; (,, 5 !&9 : : : :s A+BB&name_column_widthr6c|sy|Nt|Dcgc]6}t|dtt|jddgz8c}dz}|D]}|d}|dxsd}t|jddg}|=||z dz }|dkDr0t j ||}d d |d zzzj |}|d |d } | |dd|} t| t||ycc}w#t$rYwxYw)Nrr-r   z ()z - ) maxlenr_gettextwrapwrapjoinrrjUnicodeEncodeError) rArkr6rbrrrc target_width summary_lines name_latestlines r!r>r>sP   $F $s?377:PSu;U+V'WW     6{i.&B cU!;<  %),==ALb ( g| D #):Q)>"??EEmTb* 0112#gY?    (v 60"   s;C0C55 DDrc$t|tS)N)key)rvrf)rs r!r_r_s x] ++r )NN)1loggingr<r9ry 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  #66@2=D1:+;21    8 $3G03l#d38n-#$7G2H#8:s:C:D:*(,$(#  #}#SM# #L,d3i,C,r