
    жvgS                     4   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 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_outputc                   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> ...TreturnNc                     | 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    X/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/commands/show.pyadd_optionszShowCommand.add_options   sU      J 	! 	
 	
 	
 	''4=99999    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   r)   r   )r!   r%   r&   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_venvr#   r   r   strintr0    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         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entry_pointsr   N)r1   r2   r3   r7   __annotations__r	   r   r9   r$   r"   r;   r;   5   s         
IIILLLMMM'},,,3icNNNcLLLMMMs)KKKLLLs)DIr$   r;   r.   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          }|s|D ]}|                    dd          \  }}|                                                    dd                              dd                                          }|dk    r|                                } nt5          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-|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 r9   )canonical_name).0dists     r"   
<dictcomp>z(search_packages_info.<locals>.<dictcomp>R   s    TTTt$dTTTr$   c                 ,    g | ]}t          |          S r9   r   )rP   r<   s     r"   
<listcomp>z(search_packages_info.<locals>.<listcomp>S   s!    ===t$T**===r$   c                 "    g | ]\  }}|v	|S r9   r9   )rP   r<   pkg	installeds      r"   rT   z(search_packages_info.<locals>.<listcomp>U   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 r9   )r   r<   )rP   ds     r"   	<setcomp>zRsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>.<setcomp>_   s#    LLLa!!&))LLLr$   NameUNKNOWNN)rO   iter_dependenciesmetadata)rP   rQ   rY   s     r"   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>[   sv       
 
*LL43I3I3K3KLLLM M M&!.YM M M M
 
r$   )values)rY   rW   s   `r"   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesZ   s;    
 
 
 
!((**
 
 
 	
r$   c                     h | ]	}|j         
S r9   )r<   )rP   reqs     r"   r^   z'search_packages_info.<locals>.<setcomp>k   s    >>>c>>>r$   )keyz#N/Azentry_points.txtF)keependsNzProject-URLz	Home-page ,   )maxsplit-_rF   r<   r=   r>   r?   r@   rA   rB   rC   rD   
ClassifierrE   SummaryrG   rH   AuthorrI   zAuthor-emailrJ   LicenserK   r   r9   )!r   iter_all_distributionssortedzipr*   r+   joinr   r   r7   KeyErrorra   lowerr
   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesrb   get_allgetsplitcasefoldreplacestripr;   raw_nameraw_versionr>   r?   rB   rC   )r.   envquery_namesmissingre   
query_namerQ   r@   rA   entry_points_textrK   
files_iterr   rb   rG   rF   url	url_labelnormalized_labelrW   s                      @r"   r,   r,   I   s      "
#
#CTTs7Q7Q7S7STTTI==u===KOOOOs5+66OOO G  G1499W3E3EFFF
.> 
8C= 
 
 
 
 
 
 " D
 D

	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&&((00b99AA#rJJPPRR ! $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D
 D
sH   :C
CC7D7EE
$E//E?>E?+F//F>=F>distributionsr(   r)   c                    d}t          |           D ]?\  }}d}|dk    rt          d           t          d|j                   t          d|j                   t          d|j                   t          d|j                   t          d	|j                   t          d
|j                   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           |j        D ]$}	t          d|	                                           %A|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: %szLicense: %szLocation: %sNzEditable project location: %szRequires: %srX   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   r<   r=   rE   rF   rH   rI   rJ   r>   r?   rw   r@   rA   rC   rB   rD   rK   r   rG   r   )
r   r(   r)   results_printedirQ   
classifierentryproject_urllines
             r"   r-   r-      sg    O]++ &7 &74q55Z+++]DL111]DL111_dm444\4;///'):;;;]DL111^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$   )!logging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   	getLoggerr1   r*   r   r;   r7   r,   boolr-   r9   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	$	$" " " " "' " " "J    :   (]
S	 ]
idD8P.Q ]
 ]
 ]
 ]
@0L)00 0 
	0 0 0 0 0 0r$   