
     h\                     L   d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ d d	lmZ  e j        e          Zd
edefdZ G d de          Z G d de	          Zdee         deeddf         fdZ dee         de!de!de!fdZ"dS )    N)Values)	GeneratorIterableIteratorList
NamedTupleOptional)InvalidRequirementcanonicalize_name)Command)ERRORSUCCESS)BaseDistributionget_default_environment)write_outputlabelreturnc                     t           j        t           j        z   }t                              dd|          }|                     |                                          S )N )stringpunctuation
whitespacestr	maketrans	translatelower)r   chars_to_removeremoval_maps      Z/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pip/_internal/commands/show.pynormalize_project_url_labelr!      sE    (6+<<O--B88K??;''--///    c                   B    e Zd ZdZdZdZd
dZdedee	         de
fd	ZdS )ShowCommandzx
    Show information about one or more installed packages.

    The output is in RFC-compliant mail header format.
    z$
      %prog [options] <package> ...Tr   Nc                     | j                             dddddd           | j                            d| j                    d S )	Nz-fz--filesfiles
store_trueFz7Show the full list of installed files for each package.)destactiondefaulthelpr   )cmd_opts
add_optionparserinsert_option_group)selfs    r    add_optionszShowCommand.add_options#   sU      J 	! 	
 	
 	
 	''4=99999r"   optionsargsc                     |s!t                               d           t          S |}t          |          }t	          ||j        |j                  st          S t          S )Nz.ERROR: Please provide a package name or names.)
list_filesverbose)loggerwarningr   search_packages_infoprint_resultsr&   r6   r   )r0   r2   r3   queryresultss        r    runzShowCommand.run/   sb     	NNKLLLL&u--w
 
 
 	 Lr"   )r   N)__name__
__module____qualname____doc__usageignore_require_venvr1   r   r   r   intr=    r"   r    r$   r$      sl         'E
: 
: 
: 
:6 c s      r"   r$   c                   $   e Zd ZU eed<   eed<   eed<   ee         ed<   ee         ed<   ee         ed<   eed<   eed<   ee         ed	<   eed
<   eed<   ee         ed<   eed<   eed<   eed<   eed<   ee         ed<   eee                  ed<   dS )_PackageInfonameversionlocationeditable_project_locationrequiresrequired_by	installermetadata_versionclassifierssummaryhomepageproject_urlsauthorauthor_emaillicenselicense_expressionentry_pointsr&   N)r>   r?   r@   r   __annotations__r	   r   rE   r"   r    rG   rG   =   s         
IIILLLMMM'},,,3icNNNcLLLMMMs)KKKLLLs)DIr"   rG   r;   c           
   #     K   t                      }d |                                D             d | D             }t          fdt          | |          D                       }|r.t                              dd                    |                     dt          dt          t                   ffd}|D ]}	 |         }n# t          $ r Y w xY w	 t          d	 |                                D             t          j        
          }n=# t          $ r0 t          |                                t          j        
          }Y nw xY w	 t           ||          t          j        
          }n# t          $ r dg}Y nw xY w	 |                    d          }	|	                    d          }
n# t"          $ r g }
Y nw xY w|                                }|d}nt          |          }|j        }|                    dg           }|                    dd          }|sJ|D ]G}|                    dd          \  }}t/          |          }|dk    r|                                } nHt3          d.i d|j        d|j        d|j        pdd|j        d|d|d|j        d|j        pdd|                    d g           d!|                    d"d          d|d#|d$|                    d%d          d&|                    d'd          d(|                    d)d          d*|                    d+d          d,|
d-|V  dS )/z
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.
    c                     i | ]
}|j         |S rE   )canonical_name).0dists     r    
<dictcomp>z(search_packages_info.<locals>.<dictcomp>[   s    TTTt$dTTTr"   c                 ,    g | ]}t          |          S rE   r   )r]   rH   s     r    
<listcomp>z(search_packages_info.<locals>.<listcomp>\   s!    ===t$T**===r"   c                 "    g | ]\  }}|v	|S rE   rE   )r]   rH   pkg	installeds      r    ra   z(search_packages_info.<locals>.<listcomp>^   s'    OOO)$#Y:N:N:N:N:Nr"   zPackage(s) not found: %s, current_distr   c                 F      fd                                 D             S )Nc              3      K   | ]8}j         d  |                                D             v '|j        d         pdV  9dS )c                 6    h | ]}t          |j                  S rE   )r   rH   )r]   ds     r    	<setcomp>zRsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>.<setcomp>h   s#    LLLa!!&))LLLr"   NameUNKNOWNN)r\   iter_dependenciesmetadata)r]   r^   rf   s     r    	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>d   sv       
 
*LL43I3I3K3KLLLM M M&!.YM M M M
 
r"   )values)rf   rd   s   `r    _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesc   s;    
 
 
 
!((**
 
 
 	
r"   c                     h | ]	}|j         
S rE   )rH   )r]   reqs     r    rk   z'search_packages_info.<locals>.<setcomp>t   s    >>>c>>>r"   )keyz#N/Azentry_points.txtF)keependsNzProject-URLz	Home-pager   ,   )maxsplitrR   rH   rI   rJ   rK   rL   rM   rN   rO   rP   
ClassifierrQ   SummaryrS   rT   AuthorrU   zAuthor-emailrV   LicenserW   zLicense-ExpressionrX   r&   rE   ) r   iter_all_distributionssortedzipr7   r8   joinr   r   r   KeyErrorrn   r   r
   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesro   get_allgetsplitr!   striprG   raw_nameraw_versionrJ   rK   rN   rO   )r;   envquery_namesmissingrr   
query_namer^   rL   rM   entry_points_textrX   
files_iterr&   ro   rS   rR   url	url_labelnormalized_labelrd   s                      @r    r9   r9   R   sx      "
#
#CTTs7Q7Q7S7STTTI==u===KOOOOs5+66OOO G  G1499W3E3EFFF
.> 
8C= 
 
 
 
 
 
 " A
 A

	Z(DD 	 	 	H		K>>T%;%;%=%=>>>I  HH
 " 	K 	K 	Kd88::	JJJHHH	K	# !8!8!>!>CINNNKK! 	# 	# 	#!(KKK	#	 $/A B B,777GGLL  	 	 	LLL	 //11
)-EE:&&E=''r::<<R00 	 $  !$3!;!;	3#>y#I#I #z11"yy{{HE 2  
 
 

$$
 ](b
 '+&D&D	

 X
 $
 nn
 "28b
 !((r:::
 LLB///
 X
 &
 <<"---
 "nb999
 LLB///
   (||,@"EEE!
" &#
$ %%
 	
 	
 	
 	
]A
 A
sH   :C
CC7D7EE
$E//E?>E?+F//F>=F>distributionsr5   r6   c           	      d   d}t          |           D ]\  }}d}|dk    rt          d           t          t          t          |j                            d                              }t          d|j                   t          d|j                   t          d|j	                   t          d	|j
                   t          d
|j                   t          d|j                   |dk    r|j        rt          d|j                   nt          d|j                   t          d|j                   |j        t          d|j                   t          dd                    |j                             t          dd                    |j                             |rt          d|j                   t          d|j                   t          d           |j        D ]}t          d|           t          d           |j        D ]$}t          d|                                           %t          d           |j        D ]}	t          d|	           |rSt          d           |j        t          d           p|j        D ]$}
t          d|
                                           %|S )zC
    Print the information from installed distributions found.
    FTr   z---.zName: %szVersion: %szSummary: %szHome-page: %sz
Author: %szAuthor-email: %s)      zLicense-Expression: %szLicense: %szLocation: %sNzEditable project location: %szRequires: %sre   zRequired-by: %szMetadata-Version: %szInstaller: %szClassifiers:z  %szEntry-points:zProject-URLs:zFiles:z+Cannot locate RECORD or installed-files.txt)	enumerater   tuplemaprD   rO   r   rH   rI   rQ   rR   rT   rU   rW   rV   rJ   rK   r   rL   rM   rN   rP   rX   r   rS   r&   )r   r5   r6   results_printedir^   metadata_version_tuple
classifierentryproject_urllines              r    r:   r:      s    O]++ +7 +74q55!&s30E0K0KC0P0P'Q'Q!R!RZ+++]DL111]DL111_dm444\4;///'):;;;!V++0G+143JKKKK555^T]333)5/1O   	^TYYt}%=%=>>>&		$2B(C(CDDD 	2/1FGGG$.999(((". 1 1
VZ0000)))* 4 4VU[[]]3333)))#0 2 2V[1111 	7"""z!JKKKK J 7 7D 6666r"   )#loggingr   optparser   typingr   r   r   r   r   r	   "pip._vendor.packaging.requirementsr
   pip._vendor.packaging.utilsr   pip._internal.cli.base_commandr   pip._internal.cli.status_codesr   r   pip._internal.metadatar   r   pip._internal.utils.miscr   	getLoggerr>   r7   r   r!   r$   rG   r9   boolr:   rE   r"   r    <module>r      s           L L L L L L L L L L L L L L L L A A A A A A 9 9 9 9 9 9 2 2 2 2 2 2 9 9 9 9 9 9 9 9 L L L L L L L L 1 1 1 1 1 1		8	$	$0s 0s 0 0 0 0" " " " "' " " "J    :   *Z
S	 Z
idD8P.Q Z
 Z
 Z
 Z
z5L)55 5 
	5 5 5 5 5 5r"   