
    5>qj7                         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      Z/opt/rentech/trading_bot/.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        ||j                        }t        ||j                  |j                        st        S t        S )Nz.ERROR: Please provide a package name or names.)include_files)
list_filesverbose)loggerwarningr   search_packages_infor#   print_resultsr2   r   )r-   optionsargsqueryresultss        r   runzShowCommand.run2   sO    NNKLL&uGMMJw
 Lr   N)returnNone)r7   r   r8   	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@   rA   rB   __annotations__rF   r   r   rH   rH   @   sf    
ILM))NLMKLr   rH   c           
   #  z  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      }d	}|r|j'                         }|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
   rI   metadata).0distdcurrent_dists      r   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>j   s`      
**373I3I3KLa!!&&)LM MM&!.Y.
 Ms   "A"A!A")values)rg   	installeds   `r   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesi   s    
!((*
 	
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#   )rg   r   r<   zIterator[str]rF   )!r   iter_all_distributionsra   r
   sortedzipr3   r4   joinKeyErrorrb   rI   r   r   r	   iter_raw_dependencies	read_text
splitlinesFileNotFoundErroriter_declared_entriesrc   get_allgetsplitr   striprH   raw_nameraw_versionrK   rL   rO   rP   )r9   r0   envre   rI   query_namespkgmissingrk   
query_namereqrM   rN   entry_points_textrY   r#   
files_iterrc   rT   rS   url	url_labelnormalized_labelrj   s                          @r   r5   r5   U   sy     "
#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 #'335J%z*==''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;J8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;)L84L;7L88L;c           	     ^   d}t        |       D ]  \  }}d}|dkD  rt        d       |j                  }|r(t        t	        t
        |j                  d                  n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Mt        d       |j2                  t        d       q|j2                  D ]  }t        d|j/                                  |S )zC
    Print the information from installed distributions found.
    FTr   z---.rF   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   rP   tuplemapr?   r   rI   rJ   rR   rS   rU   rV   rX   rW   rK   rL   rx   rM   rN   rO   rQ   rY   r   rT   r#   )distributionsr1   r2   results_printedire   rP   metadata_version_tuple
classifierentryproject_urllines               r   r6   r6      s6    O]+ .74q500<LE#c+11#678RT 	 	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7[.7^ r   )r   r   r<   r   )r9   r>   r0   boolr<   z#Generator[_PackageInfo, None, None])r   zIterable[_PackageInfo]r1   r   r2   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@   r3   r   r!   rH   r5   r6   rF   r   r   <module>r      s    "   9 9   A 9 2 9 L 1			8	$0"' "J: *]
]
]
 )]
@8)88 8 
	8r   