
    dh                       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j4                  e      ZddZ G d de      Z G d de      ZddZ 	 	 	 	 	 	 	 	 ddZ!y)    )annotationsN)	GeneratorIterableIterator)Values)
NamedTuple)InvalidRequirement)canonicalize_name)Command)ERRORSUCCESS)BaseDistributionget_default_environment)write_outputc                    t         j                  t         j                  z   }t        j	                  dd|      }| j                  |      j                         S )N )stringpunctuation
whitespacestr	maketrans	translatelower)labelchars_to_removeremoval_maps      ]/var/www/html/vivango/api/ia/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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> ...Tc                    | 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   c                    |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#   r1   r   )r-   optionsargsqueryresultss        r   runzShowCommand.run2   sI    NNKLL&u-w
 Lr   N)returnNone)r6   r   r7   	list[str]r;   int)__name__
__module____qualname____doc__usageignore_require_venvr.   r:    r   r   r!   r!      s    '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<   y)_PackageInfor   nameversionlocationz
str | Noneeditable_project_locationr=   requiresrequired_by	installermetadata_versionclassifierssummaryhomepageproject_urlsauthorauthor_emaillicenselicense_expressionentry_pointszlist[str] | Noner#   N)r?   r@   rA   __annotations__rE   r   r   rG   rG   @   sf    
ILM))NLMKLr   rG   c           
   #  x  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(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       }|j-                  dd      }|s?|D ]:  }|j/                  dd      \  }}t1        |      }|dk(  s*|j3                         } n t5        d)i d|j6                  d|j8                  d|j:                  xs dd|j<                  d|
d|d|j>                  d|j@                  xs dd|j+                  dg       d|j-                  dd      d|d|d|j-                  dd      d |j-                  d!d      d"|j-                  d#d      d$|j-                  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, 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
   rH   metadata).0distdcurrent_dists      r   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>g   s`      
**373I3I3KLa!!&&)LM MM&!.Y.
 Ms   "A"A!A")values)rf   	installeds   `r   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesf   s    
!((*
 	
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#   )rf   r   r;   zIterator[str]rE   )!r   iter_all_distributionsr`   r
   sortedzipr2   r3   joinKeyErrorra   rH   r   r   r	   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesrb   get_allgetsplitr   striprG   raw_nameraw_versionrJ   rK   rN   rO   )r8   envrd   rH   query_namespkgmissingrj   
query_namereqrL   rM   entry_points_textrX   
files_iterr#   rb   rS   rR   url	url_labelnormalized_labelri   s                         @r   r4   r4   U   sv     "
#C7:7Q7Q7STt$$d*TI7<=t$T*=K="5+6O)$#Y:NOG 1499W3EF
 " 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   L:J7L:J<L:#K
0K
4;L:0K6KK
 K8!L#L(=A=L:;DL:	KL:KL:K2LL:LL:L%!L:$L%%L:(L73L:6L77L: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: %sr[   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mapr>   rO   r   rH   rI   rQ   rR   rT   rU   rW   rV   rJ   rK   rw   rL   rM   rN   rP   rX   r   rS   r#   )distributionsr0   r1   results_printedird   metadata_version_tuple
classifierentryproject_urllines              r   r5   r5      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   )r   r   r;   r   )r8   r=   r;   z#Generator[_PackageInfo, None, None])r   zIterable[_PackageInfo]r0   boolr1   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?   r2   r   r!   rG   r4   r5   rE   r   r   <module>r      s    "   9 9   A 9 2 9 L 1			8	$0"' "J: *Z
z5)55 5 
	5r   