
    4Քh                    ~   S SK Jr  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  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&\RN                  " \(5      r) " S S\\5      r*SS jr+SS jr,SS jr-  S       SS jjr.SS jr/g)     )annotationsN)OrderedDict)Values)	TypedDict)parse)Command)SessionCommandMixin)NO_MATCHES_FOUNDSUCCESS)CommandError)get_default_environment)BaseDistribution)PyPI)PipXmlrpcTransport)
indent_log)write_outputc                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	TransformedHit   strnamesummary	list[str]versions N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       U/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/commands/search.pyr   r      s    
ILr"   r   c                  >    \ rS rSrSrSrSrS
S jrSS jrSS jr	Sr
g	)SearchCommand#   z@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>Tc           	         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"   c                   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
   )r3   optionsargsquery	pypi_hitshitsr7   s          r#   runSearchCommand.run6   so    JKKKK/	i(::#557:Nd:Nr"   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ServerProxyr8   Fault	faultCodefaultStringr   
isinstancelist)
r3   rB   r@   	index_urlsession	transportpypirD   faultmessages
             r#   r8   SearchCommand.searchF   s    MM	**73&y:	}}((>	(;;@$GD $%%%% }}"" 	(//@EDUDUCVW  w''		(s   	A6 6C 'B;;C r   N)returnNone)r@   r   rA   r   rY   int)rB   r   r@   r   rY   list[dict[str, str]])r   r   r   r   __doc__usageignore_require_venvr4   rE   r8   r!   r   r"   r#   r%   r%   #   s!    J!E
:  r"   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_versionrQ   values)rD   packageshitr   r   ra   s         r#   r9   r9   X   s     +6-H6{i.i.}}&"$IHN N:&--g6 /(.*DEE,3y)! $ !""r"   c                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   ra   r   parse_versionpre)latestdists     r#   print_dist_installation_inform   t   sr    \||v%5t||D_dll; (,, 5 !&9 \ \s   A1B		
Bc                8    [        5       nUR                  U 5      $ )N)r   get_distribution)r   envs     r#   get_installed_distributionrq      s    
!
#C%%r"   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lenrd   gettextwrapwrapjoinr   rq   rm   UnicodeEncodeError)rD   name_column_widthr7   rg   r   r   rk   target_widthsummary_linesname_latestlinerl   s               r#   r?   r?      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c                    [        U [        S9$ )N)key)r|   ri   )r   s    r#   rd   rd      s    x]++r"   )rD   r\   rY   list[TransformedHit])rk   r   rl   BaseDistribution | NonerY   rZ   )r   r   rY   r   )NN)rD   r   r   
int | Noner7   r   rY   rZ   )r   r   rY   r   )0
__future__r   loggingr=   r:   r   xmlrpc.clientrJ   collectionsr   optparser   typingr   pip._vendor.packaging.versionr   ri   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%   r9   rm   rq   r?   rd   r   r"   r#   <module>r      s    "   
   #   @ 2 = D 1 : 8 + ; 2 1Y  
		8	$2G0 2j#8:"& %)!%$
$!$ $ 
	$N,r"   