
    q"h              	          S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S SKJr  S SKJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&   " S S\5      r'\ RP                  " \)5      r* " S S\\5      r+S\\\,\,4      S\S   4S jr-S\,S\\   SS4S jr.S\,S\\   4S jr/  S!S\S   S\\0   S\\0   SS4S jjr1S\\,   S\,4S  jr2g)"    N)OrderedDict)Values)DictListOptional	TypedDict)parse)Command)SessionCommandMixin)NO_MATCHES_FOUNDSUCCESS)CommandError)get_default_environment)BaseDistribution)PyPI)PipXmlrpcTransport)
indent_log)write_outputc                   :    \ rS rSr% \\S'   \\S'   \\   \S'   Srg)TransformedHit   namesummaryversions N)__name__
__module____qualname____firstlineno__str__annotations__r   __static_attributes__r       O/var/www/html/env/lib/python3.13/site-packages/pip/_internal/commands/search.pyr   r      s    
IL3ir#   r   c            	       r    \ rS rSrSrSrSrSS jrS\S	\	\
   S\4S
 jrS\	\
   S\S\	\\
\
4      4S jrSrg)SearchCommand!   z@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>TreturnNc           	          U R                   R                  SSSS[        R                  SS9  U R                  R                  SU R                   5        g )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)selfs    r$   add_optionsSearchCommand.add_options(   sI      MMF 	! 	
 	''4==9r#   optionsargsc                    U(       d  [        S5      eUnU R                  X15      n[        U5      nS n[        R                  R                  5       (       a  [        R                  " 5       S   n[        XVS9  U(       a  [        $ [        $ )Nz)Missing required argument (search query).r   )terminal_width)r   searchtransform_hitssysstdoutisattyshutilget_terminal_sizeprint_resultsr   r   )r5   r8   r9   query	pypi_hitshitsr;   s          r$   runSearchCommand.run4   so    JKKKK/	i(::#557:Nd:Nr#   rD   c                    UR                   nU R                  U5      n[        X45      n[        R                  R                  X55      n UR                  XS.S5      n[        U[        5      (       d   eU$ ! [        R                  R                   a,  nSUR                   SUR                   3n	[        U	5      eS nAff = f)N)r   r   orzXMLRPC request failed [code: z]
)r*   get_default_sessionr   xmlrpcclientServerProxyr<   Fault	faultCodefaultStringr   
isinstancelist)
r5   rD   r8   	index_urlsession	transportpypirF   faultmessages
             r$   r<   SearchCommand.searchD   s    MM	**73&y:	}}((>	(;;@$GD $%%%% }}"" 	(//@EDUDUCVW  w''		(s   	A6 6C 'B;;C r   )r(   N)r   r   r   r   __doc__usageignore_require_venvr6   r   r   r    intrG   r   r<   r"   r   r#   r$   r&   r&   !   s`    J!E
: 6  c  s   DI  4S#X;O r#   r&   rF   r(   c                    [        5       nU  Hc  nUS   nUS   nUS   nX1R                  5       ;  a  UUU/S.X'   M0  X   S   R                  U5        U[        X   S   5      :X  d  M\  XAU   S'   Me     [	        UR                  5       5      $ )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   r   r   )r   keysappendhighest_versionrS   values)rF   packageshitr   r   r`   s         r$   r=   r=   V   s     +6-H6{i.i.}}&"$IHN N:&--g6 /(.*DEE,3y)! $ !""r#   latestdistc                 4   Ub  [        5          UR                  U :X  a  [        SUR                  5        OI[        SUR                  5        [        U 5      R                  (       a  [        SU 5        O[        SU 5        S S S 5        g g ! , (       d  f       g = f)NzINSTALLED: %s (latest)zINSTALLED: %sz=LATEST:    %s (pre-release; install with `pip install --pre`)zLATEST:    %s)r   r`   r   parse_versionpre)rg   rh   s     r$   print_dist_installation_inforl   r   sr    \||v%5t||D_dll; (,, 5 !&9 \ \s   A1B		
Br   c                 8    [        5       nUR                  U 5      $ )N)r   get_distribution)r   envs     r$   get_installed_distributionrp      s    
!
#C%%r#   name_column_widthr;   c                 <   U (       d  g UcQ  [        U  Vs/ s H7  n[        US   5      [        [        UR                  SS/5      5      5      -   PM9     sn5      S-   nU  H  nUS   nUS   =(       d    Sn[        UR                  SS/5      5      nUb=  X!-
  S-
  nUS:  a0  [        R
                  " XW5      nS	S
US-   -  -   R                  U5      nU SU S3n	X  SU 3n
 [        U
5        [        U5      n[        Xk5        M     g s  snf ! [         a     M  f = f)Nr   r   -   r       
   
    z ()z - )maxlenrc   gettextwrapwrapjoinr   rp   rl   UnicodeEncodeError)rF   rq   r;   rf   r   r   rg   target_widthsummary_linesname_latestlinerh   s               r$   rC   rC      sK   
    $# F$s?377:PSu;U+V'WW#  	 6{i.&B cU!;<%)=ALb  (g D#):Q)>"??EEmTb*12#gY?	-d3D(6! 2 " 		s   >D"!D
DDr   c                     [        U [        S9$ )N)key)r|   rj   )r   s    r$   rc   rc      s    x]++r#   )NN)3loggingrA   r>   r   xmlrpc.clientrL   collectionsr   optparser   typingr   r   r   r   pip._vendor.packaging.versionr	   rj   pip._internal.cli.base_commandr
   pip._internal.cli.req_commandr   pip._internal.cli.status_codesr   r   pip._internal.exceptionsr   pip._internal.metadatar   pip._internal.metadata.baser   pip._internal.models.indexr   pip._internal.network.xmlrpcr   pip._internal.utils.loggingr   pip._internal.utils.miscr   r   	getLoggerr   loggerr&   r    r=   rl   rp   r^   rC   rc   r   r#   r$   <module>r      s&     
   #  2 2 @ 2 = D 1 : 8 + ; 2 1Y  
		8	$2G0 2j#d38n- #$7G2H #8: :H=M4N :SW :"&S &X6F-G & (,$($

 $}$ SM$ 
	$N,d3i ,C ,r#   