
    )h\                     0   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 j2                  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"y)    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        j	                  dd|      }| j                  |      j                         S )N )stringpunctuation
whitespacestr	maketrans	translatelower)r   chars_to_removeremoval_maps      N/var/www/html/venv/lib/python3.12/site-packages/pip/_internal/commands/show.pynormalize_project_url_labelr       sB    ((6+<+<<O--B8K??;'--//    c                   :    e Zd ZdZdZdZd
dZdedee	   de
fd	Zy)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                   j                  dddddd       | j                  j                  d| j                          y )	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#   sE      J 	! 	
 	''4==9r!   optionsargsc                     |st         j                  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%   r5   r   )r/   r1   r2   queryresultss        r   runzShowCommand.run/   sI    NNKLL&u-w
 Lr!   )r   N)__name__
__module____qualname____doc__usageignore_require_venvr0   r   r   r   intr<    r!   r   r#   r#      s7    '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<   y)_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   rD   r!   r   rF   rF   =   s    
ILM'},3icNcLMs)KLs)DIr!   rF   r:   c           
   #     K   t               }|j                         D ci c]  }|j                  | c}| D cg c]  }t        |       }}t	        t        | |      D cg c]  \  }}|vs| c}}      }|r%t        j                  ddj                  |             dt        dt        t           ffd}|D ]  }	 |   }	 t	        |j                         D 	ch c]  }	|	j                   c}	t        j                        }
	 t	         ||      t        j                        }	 |j%                  d      }|j'                  d	
      }|j+                         }|d}nt	        |      }|j,                  }|j/                  dg       }|j1                  dd      }|s?|D ]:  }|j3                  dd      \  }}t5        |      }|dk(  s*|j7                         } n t9        d*i d|j:                  d|j<                  d|j>                  xs dd|j@                  d|
d|d|jB                  d|jD                  xs dd|j/                  dg       d|j1                  dd      d|d|d |j1                  d!d      d"|j1                  d#d      d$|j1                  d%d      d&|j1                  d'd      d(|d)| 
 yc c}w c c}w c c}}w # t        $ r Y (w xY wc c}	w # t         $ r- t	        |j#                         t        j                        }
Y w xY w# t         $ r dg}Y w xY w# t(        $ r g }Y w xY ww)+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.
    zPackage(s) not found: %s, current_distr   c                 8      fdj                         D        S )Nc              3      K   | ]T  }j                   |j                         D ch c]  }t        |j                         c}v r|j                  d    xs d V yc c}w w)NameUNKNOWNN)canonical_nameiter_dependenciesr   rG   metadata).0distdr[   s      r   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>d   s`      
**373I3I3KLa!!&&)LM MM&!.Y.
 Ms   "A"A!A")values)r[   	installeds   `r   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesc   s    
!((*
 	
r!   )keyz#N/Azentry_points.txtF)keependsNzProject-URLz	Home-pager   ,   )maxsplitrQ   rG   rH   rI   rJ   rK   rL   rM   rN   rO   
ClassifierrP   SummaryrR   rS   AuthorrT   zAuthor-emailrU   LicenserV   zLicense-ExpressionrW   r%   rD   )#r   iter_all_distributionsr`   r   sortedzipr6   r7   joinr   r   r   KeyErrorra   rG   r   r
   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesrb   get_allgetsplitr    striprF   raw_nameraw_versionrI   rJ   rM   rN   )r:   envrd   rG   query_namespkgmissingri   
query_namereqrK   rL   entry_points_textrW   
files_iterr%   rb   rR   rQ   url	url_labelnormalized_labelrh   s                         @r   r8   r8   R   s     "
#C7:7Q7Q7STt$$d*TI7<=t$T*=K="5+6O)$#Y:NOG 1499W3EF
.> 
8C= 
 " A

	Z(D	K%)%;%;%=>c>IIH	# !8!>CIINK	 $/A B,777GL //1
)-E:&E==''r:<<R0 $ !$3!;	3#>y#I #z1"yy{H  

$$
 ]](b
 '+&D&D	

 
 $
 nn
 "228b
 !((r:
 LLB/
 
 &
 <<"-
 "nb9
 LLB/
   (||,@"E!
" &#
$ %
 	
]A
! U=O   		 ? " 	Kd88:		JH	K
 " 	#!(K	# ! 	L	s   MK
MKM#K
0K
4AMK	K/ K*
3K/!L(-#L;A=MDM	K'#M&K''M*K//2L%!M$L%%M(L84M7L88M;M
M	M

Mdistributionsr4   r5   c           	      R   d}t        |       D ]  \  }}d}|dkD  rt        d       t        t        t        |j
                  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#                  |j$                               t        ddj#                  |j&                               |rt        d|j
                         t        d|j(                         t        d       |j*                  D ]  }t        d|        t        d       |j,                  D ]  }t        d|j/                                 t        d       |j0                  D ]  }	t        d|	        |sGt        d       |j2                  t        d       k|j2                  D ]  }
t        d|
j/                                  |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: %szEditable project location: %szRequires: %srZ   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maprC   rN   r   rG   rH   rP   rQ   rS   rT   rV   rU   rI   rJ   rv   rK   rL   rM   rO   rW   r   rR   r%   )r   r4   r5   results_printedird   metadata_version_tuple
classifierentryproject_urllines              r   r9   r9      s&    O]+ +74q5!&s30E0E0K0KC0P'Q!RZ+]DLL1]DLL1_dmm4\4;;/'):):;!V+0G0G143J3JK5^T]]3))5/1O1O 	^TYYt}}%=>&		$2B2B(CD/1F1FG$..9(".. 1
VZ01)** 4VU[[]34)#00 2V[12"zz!JK JJ 7D 67U+7X 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=   r6   r   r    r#   rF   r8   boolr9   rD   r!   r   <module>r      s       L L A 9 2 9 L 1			8	$0s 0s 0"' "J: *Z
S	 Z
idD8P.Q Z
z5L)55 5 
	5r!   