a
    ”¼de-  ã                   @   s2  d dl mZ d dlZd dl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 d d	lmZ d d
lmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZ erød dlm Z  d dl!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+ e ,e-¡Z.G dd„ de	ƒZ/dd„ Z0dd„ Z1dS )é    )Úabsolute_importN)Úsix)Ú
cmdoptions)ÚIndexGroupCommand)ÚSUCCESS)ÚCommandError)ÚLinkCollector)ÚPackageFinder)ÚSelectionPreferences)Ústdlib_pkgs)Údist_is_editableÚget_installed_distributionsÚtabulateÚwrite_output)Úget_installer)ÚMYPY_CHECK_RUNNING)ÚValues)ÚIteratorÚListÚSetÚTuple)ÚDistribution)Ú
PipSession)Úparsec                   @   s`   e Zd ZdZdZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚListCommandzt
    List installed packages, including editables.

    Packages are listed in a case-insensitive sorted order.
    Tz
      %prog [options]c                 C   s*  | j jdddddd� | j jddddd	d� | j jd
ddddd� | j jdddddd� | j jdddddd� | j  t ¡ ¡ | j jddddd� | j jddddddd� | j jddddd � | j jd!d"d#d$d � | j jd%dd#d&d'd(� | j  t ¡ ¡ t tj| j¡}| j d)|¡ | j d)| j ¡ d S )*Nz-oz
--outdatedÚ
store_trueFzList outdated packages)ÚactionÚdefaultÚhelpz-uz
--uptodatezList uptodate packagesz-ez
--editablezList editable projects.z-lz--localzSIf in a virtualenv that has global access, do not list globally-installed packages.z--userÚuserz,Only output packages installed in user-site.)Údestr   r   r   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--formatÚstoreÚlist_formatÚcolumns)r#   ÚfreezeÚjsonzBSelect the output format among: columns (default), freeze, or json)r   r    r   Úchoicesr   z--not-requiredÚnot_requiredz>List packages that are not dependencies of installed packages.)r   r    r   z--exclude-editableÚstore_falseÚinclude_editablez%Exclude editable package from output.z--include-editablez%Include editable package from output.T)r   r    r   r   r   )	Úcmd_optsÚ
add_optionr   Ú	list_pathÚlist_excludeÚmake_option_groupÚindex_groupÚparserÚinsert_option_group)ÚselfÚ
index_opts© r4   úT/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/commands/list.pyÚadd_options1   sŽ    üüüüûüú
üüûÿzListCommand.add_optionsc                 C   s*   t j||d�}td|jd�}tj||d�S )zK
        Create a package finder appropriate to this list command.
        )ÚoptionsF)Úallow_yankedÚallow_all_prereleases)Úlink_collectorÚselection_prefs)r   Úcreater
   Úprer	   )r2   r7   Úsessionr:   r;   r4   r4   r5   Ú_build_package_finder   s    þþz!ListCommand._build_package_finderc                 C   sž   |j r|jrtdƒ‚t |¡ ttƒ}|jr8| |j¡ t	|j
|j|j|j|j|d�}|jrh|  ||¡}|j r||  ||¡}n|jrŽ|  ||¡}|  ||¡ tS )Nz5Options --outdated and --uptodate cannot be combined.)Ú
local_onlyÚ	user_onlyÚeditables_onlyÚinclude_editablesÚpathsÚskip)ÚoutdatedZuptodater   r   Úcheck_list_path_optionÚsetr   ÚexcludesÚupdater   Úlocalr   Úeditabler)   Úpathr'   Úget_not_requiredÚget_outdatedÚget_uptodateÚoutput_package_listingr   )r2   r7   ÚargsrE   Úpackagesr4   r4   r5   Úrun‘   s0    ÿ
úzListCommand.runc                 C   s   dd„ |   ||¡D ƒS )Nc                 S   s,   g | ]$}t t|jƒƒt t|jƒƒkr|‘qS r4   ©r   ÚstrÚlatest_versionÚparsed_version©Ú.0Údistr4   r4   r5   Ú
<listcomp>·   s   ÿz,ListCommand.get_outdated.<locals>.<listcomp>©Úiter_packages_latest_infos©r2   rS   r7   r4   r4   r5   rO   µ   s    
ÿzListCommand.get_outdatedc                 C   s   dd„ |   ||¡D ƒS )Nc                 S   s,   g | ]$}t t|jƒƒt t|jƒƒkr|‘qS r4   rU   rY   r4   r4   r5   r\   ¾   s   ÿz,ListCommand.get_uptodate.<locals>.<listcomp>r]   r_   r4   r4   r5   rP   ¼   s    
ÿzListCommand.get_uptodatec                    s>   t ƒ ‰ |D ]}ˆ  dd„ | ¡ D ƒ¡ q
t‡ fdd„|D ƒƒS )Nc                 s   s   | ]}|j V  qd S ©N©Úkey)rZ   Úrequirementr4   r4   r5   Ú	<genexpr>Ç   ó    z/ListCommand.get_not_required.<locals>.<genexpr>c                    s   h | ]}|j ˆ vr|’qS r4   ra   )rZ   Úpkg©Zdep_keysr4   r5   Ú	<setcomp>Ì   re   z/ListCommand.get_not_required.<locals>.<setcomp>)rH   rJ   ÚrequiresÚlist)r2   rS   r7   r[   r4   rg   r5   rN   Ã   s    zListCommand.get_not_requiredc                 #   sf   |   ˆ¡�H}|  ˆ|¡‰ ‡ ‡fdd„}t||ƒD ]}|d ur0|V  q0W d   ƒ n1 sX0    Y  d S )Nc                    sl   ˆ   | j¡}ˆjs dd„ |D ƒ}ˆ j| jd�}| |¡}|d u rDd S |j}|jjrXd}nd}|| _	|| _
| S )Nc                 S   s   g | ]}|j js|‘qS r4   )ÚversionÚis_prerelease)rZ   Ú	candidater4   r4   r5   r\   Ø   s   ÿzOListCommand.iter_packages_latest_infos.<locals>.latest_info.<locals>.<listcomp>)Úproject_nameÚwheelÚsdist)Úfind_all_candidatesrb   r=   Úmake_candidate_evaluatorrn   Úsort_best_candidaterk   ÚlinkÚis_wheelrW   Úlatest_filetype)r[   Zall_candidatesZ	evaluatorÚbest_candidateÚremote_versionÚtyp©Úfinderr7   r4   r5   Úlatest_infoÓ   s     ÿ
z;ListCommand.iter_packages_latest_infos.<locals>.latest_info)Ú_build_sessionr?   Úmap)r2   rS   r7   r>   r|   r[   r4   rz   r5   r^   Î   s    z&ListCommand.iter_packages_latest_infosc                 C   sœ   t |dd„ d�}|jdkr:|r:t||ƒ\}}|  ||¡ n^|jdkr€|D ]4}|jdkrltd|j|j|jƒ qHtd|j|jƒ qHn|jd	kr˜tt	||ƒƒ d S )
Nc                 S   s
   | j  ¡ S r`   )rn   Úlower)r[   r4   r4   r5   Ú<lambda>ô   re   z4ListCommand.output_package_listing.<locals>.<lambda>ra   r#   r$   é   z%s==%s (%s)z%s==%sr%   )
Úsortedr"   Úformat_for_columnsÚoutput_package_listing_columnsÚverboser   rn   rk   ÚlocationÚformat_for_json)r2   rS   r7   ÚdataÚheaderr[   r4   r4   r5   rQ   ð   s     þ

ÿ
z"ListCommand.output_package_listingc                 C   sb   t |ƒdkr| d|¡ t|ƒ\}}t |ƒdkrL| dd tdd„ |ƒ¡¡ |D ]}t|ƒ qPd S )Nr   r�   ú c                 S   s   d|  S )Nú-r4   )Úxr4   r4   r5   r€     re   z<ListCommand.output_package_listing_columns.<locals>.<lambda>)ÚlenÚinsertr   Újoinr~   r   )r2   rˆ   r‰   Zpkg_stringsÚsizesÚvalr4   r4   r5   r„     s    z*ListCommand.output_package_listing_columnsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úignore_require_venvÚusager6   r?   rT   rO   rP   rN   r^   rQ   r„   r4   r4   r4   r5   r   &   s   N$"r   c                 C   sÔ   |j }|rg d¢}nddg}g }|jdks<tdd„ | D ƒƒrF| d¡ |jdkrZ| d¡ | D ]l}|j|jg}|rŠ| |j¡ | |j¡ |jdksœt|ƒr¨| |j	¡ |jdkrÀ| t
|ƒ¡ | |¡ q^||fS )	z_
    Convert the package data into something usable
    by output_package_listing_columns.
    )ÚPackageÚVersionZLatestÚTyper˜   r™   r�   c                 s   s   | ]}t |ƒV  qd S r`   )r   )rZ   rŒ   r4   r4   r5   rd   !  re   z%format_for_columns.<locals>.<genexpr>ZLocationZ	Installer)rF   r…   ÚanyÚappendrn   rk   rW   rv   r   r†   r   )Úpkgsr7   Zrunning_outdatedr‰   rˆ   ZprojÚrowr4   r4   r5   rƒ     s(    




rƒ   c                 C   sv   g }| D ]b}|j t |j¡dœ}|jdkr@|j|d< t|ƒ|d< |jr`t |j¡|d< |j	|d< | 
|¡ qt |¡S )N)Únamerk   r�   r†   Ú	installerrW   rv   )rn   r   Ú	text_typerk   r…   r†   r   rF   rW   rv   rœ   r%   Údumps)rS   r7   rˆ   r[   Úinfor4   r4   r5   r‡   9  s    
þ


r‡   )2Ú
__future__r   r%   ÚloggingÚpip._vendorr   Zpip._internal.clir   Úpip._internal.cli.req_commandr   Úpip._internal.cli.status_codesr   Úpip._internal.exceptionsr   Úpip._internal.index.collectorr   Ú"pip._internal.index.package_finderr	   Ú$pip._internal.models.selection_prefsr
   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   r   r   r   Úpip._internal.utils.packagingr   Úpip._internal.utils.typingr   Úoptparser   Útypingr   r   r   r   Zpip._vendor.pkg_resourcesr   Úpip._internal.network.sessionr   Zpip._vendor.packaging.versionr   Ú	getLoggerr’   Úloggerr   rƒ   r‡   r4   r4   r4   r5   Ú<module>   s2   
 n&