
    Wh                       d dl mZ d dlZd dlZd dl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 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dZ G d de          Z G d de          ZddZ d dZ!dS )!    )annotationsN)	GeneratorIterableIterator)Values)
NamedTuple)InvalidRequirementcanonicalize_name)Command)ERRORSUCCESS)BaseDistributionget_default_environment)write_outputlabelstrreturnc                    t           j        t           j        z   }t                              dd|          }|                     |                                          S )N )stringpunctuation
whitespacer   	maketrans	translatelower)r   chars_to_removeremoval_maps      m/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/commands/show.pynormalize_project_url_labelr       sE    (6+<<O--B88K??;''--///    c                  *    e Zd ZdZdZdZddZd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   Nonec                    | 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!   optionsr   args	list[str]intc                    |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&   r8   r   )r0   r2   r3   queryresultss        r   runzShowCommand.run2   sb     	NNKLLLL&u--w
 
 
 	 Lr!   N)r   r$   )r2   r   r3   r4   r   r5   )__name__
__module____qualname____doc__usageignore_require_venvr1   r?    r!   r   r#   r#      sS         'E
: 
: 
: 
:     r!   r#   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )_PackageInfor   nameversionlocationz
str | Noneeditable_project_locationr4   requiresrequired_by	installermetadata_versionclassifierssummaryhomepageproject_urlsauthorauthor_emaillicenselicense_expressionentry_pointszlist[str] | Noner&   N)r@   rA   rB   __annotations__rF   r!   r   rH   rH   @   s         IIILLLMMM))))NNNLLLMMMKKKLLLr!   rH   r=   r4   #Generator[_PackageInfo, None, None]c           
   #  ^  K   t                      }d |                                D             d | D             }t          fdt          | |          D                       }|r.t                              dd                    |                     d0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Ht/          d1i 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 )2z
    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 rF   )canonical_name).0dists     r   
<dictcomp>z(search_packages_info.<locals>.<dictcomp>^   s    TTTt$dTTTr!   c                ,    g | ]}t          |          S rF   r
   )r_   rI   s     r   
<listcomp>z(search_packages_info.<locals>.<listcomp>_   s!    ===t$T**===r!   c                "    g | ]\  }}|v	|S rF   rF   )r_   rI   pkg	installeds      r   rc   z(search_packages_info.<locals>.<listcomp>a   s'    OOO)$#Y:N:N:N:N:Nr!   zPackage(s) not found: %s, current_distr   r   Iterator[str]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 rF   )r   rI   )r_   ds     r   	<setcomp>zRsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>.<setcomp>k   s#    LLLa!!&))LLLr!   NameUNKNOWNN)r^   iter_dependenciesmetadata)r_   r`   rh   s     r   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>g   sv       
 
*LL43I3I3K3KLLLM M M&!.YM M M M
 
r!   )values)rh   rf   s   `r   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesf   s;    
 
 
 
!((**
 
 
 	
r!   c                    h | ]	}|j         
S rF   )rI   )r_   reqs     r   rn   z'search_packages_info.<locals>.<setcomp>w   s    >>>c>>>r!   )keyz#N/Azentry_points.txtF)keependsNzProject-URLz	Home-pager   ,   )maxsplitrS   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   
ClassifierrR   SummaryrT   rU   AuthorrV   zAuthor-emailrW   LicenserX   zLicense-ExpressionrY   r&   )rh   r   r   ri   rF   )r   iter_all_distributionssortedzipr9   r:   joinKeyErrorrq   r   r   r	   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesrr   get_allgetsplitr    striprH   raw_nameraw_versionrK   rL   rO   rP   )r=   envquery_namesmissingru   
query_namer`   rM   rN   entry_points_textrY   
files_iterr&   rr   rT   rS   url	url_labelnormalized_labelrf   s                      @r   r;   r;   U   se      "
#
#CTTs7Q7Q7S7STTTI==u===KOOOOs5+66OOO G  G1499W3E3EFFF
 
 
 
 
 
 " 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   !B**
B76B7;7C337D-,D-1$EE&%E&*+FF%$F%distributionsIterable[_PackageInfo]r7   boolr8   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: %srg   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mapr5   rP   r   rI   rJ   rR   rS   rU   rV   rX   rW   rK   rL   r   rM   rN   rO   rQ   rY   r   rT   r&   )r   r7   r8   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!   )r   r   r   r   )r=   r4   r   r[   )r   r   r7   r   r8   r   r   r   )"
__future__r   loggingr   collections.abcr   r   r   optparser   typingr   "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@   r9   r    r#   rH   r;   r<   rF   r!   r   <module>r      s   " " " " " "   9 9 9 9 9 9 9 9 9 9             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	$	$0 0 0 0" " " " "' " " "J    :   *Z
 Z
 Z
 Z
z5 5 5 5 5 5r!   