� ��^i�/� ��ddlZddlZddlmZddlmZmZmZmZm Z m Z m Z ddl m Z ddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZmZdd lmZdd lm Z ddl!m"Z"ddl#m$Z$m%Z%ddl&m'Z'erddl(m)Z)Gd�de��Z*e e*Z+ej,e-��Z.Gd�de��Z/dddede eee0ee0ffd�Z1dddede0fd�Z2dS)�N)�Values)� TYPE_CHECKING�Iterator�List�Optional�Sequence�Tuple�cast��canonicalize_name)� cmdoptions)�IndexGroupCommand)�SUCCESS)� CommandError)� LinkCollector)� PackageFinder)�BaseDistribution�get_environment)�SelectionPreferences)� PipSession)� stdlib_pkgs)�tabulate� write_output)�map_multithread)�DistributionVersionc�(�eZdZUdZeed<eed<dS)�_DistWithLatestInfoz�Give the distribution object a couple of extra fields. These will be populated during ``get_outdated()``. This is dirty but makes the rest of the code much cleaner. �latest_version�latest_filetypeN)�__name__� __module__� __qualname__�__doc__r�__annotations__�str����/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/commands/list.pyrrs6������� � � ,�+�+�+������r'rc���eZdZdZdZdZdd�Zdedede fd �Z ded e e de fd �Zd d dedd fd�Zd d dedd fd�Zd d dedd fd�Zd d dededfd�Zd d deddfd�Zde e e de e ddfd�ZdS)� ListCommandzt List installed packages, including editables. Packages are listed in a case-insensitive sorted order. Tz %prog [options]�returnNc���|j�ddddd���|j�ddddd ���|j�d d ddd ���|j�d dddd���|j�ddddd���|j�tj����|j�dddd���|j�dddddd���|j�dddd� ��|j�d!d"d#d$� ��|j�d%dd#d&d'�(��|j�tj����tjtj|j��}|j�d)|��|j�d)|j��dS)*Nz-oz --outdated� store_trueFzList outdated packages)�action�default�helpz-uz --uptodatezList uptodate packagesz-ez --editablezList 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/r0z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--format�store� list_format�columns)r5�freeze�jsonzBSelect the output format among: columns (default), freeze, or json)r.r2r/�choicesr0z--not-required� not_requiredz>List packages that are not dependencies of installed packages.)r.r2r0z--exclude-editable� store_false�include_editablez%Exclude editable package from output.z--include-editablez%Include editable package from output.T)r.r2r0r/r) �cmd_opts� add_optionr � list_path� list_exclude�make_option_group� index_group�parser�insert_option_group)�self� index_optss r(� add_optionszListCommand.add_options3sm�� � � � � � ���)� !� � � � � � � � � ���)� !� � � � � � � � � ���*� !� � � � � � � � � ���/� !� � � � � � � � ����?� !� � � � � � � ��!5�!7�!7�8�8�8� � � � � ���2� !� � � � � � � � ����1�U� !� � � � � � � � ���Q� !� � � � � � � � � �#�8� !� � � � � � � � ��#�8�� !� � � � � � � ��!8�!:�!:�;�;�;��1�*�2H�$�+�V�V� � � �'�'��:�6�6�6� � �'�'��4�=�9�9�9�9�9r'�options�sessionc��tj||���}td|j���}t j||���S)zK Create a package finder appropriate to this list command. )rGF)� allow_yanked�allow_all_prereleases)�link_collector�selection_prefs)r�creater�prer)rDrGrHrLrMs r(�_build_package_finderz!ListCommand._build_package_finder�sY�� '�-�g�w�G�G�G��/��")�+� � � �� �#�)�+� � � � r'�argsc�`�|jr|jrtd���tj|��t t ��}|jr$|�d�|jD����d�t|j ��� |j |j |j|j|���D��}|jr|�||��}|jr|�||��}n|jr|�||��}|�||��t*S)Nz5Options --outdated and --uptodate cannot be combined.c3�4K�|]}t|��V��dS�Nr )�.0�ns r(� z"ListCommand.run..�s+����G�G��)�!�,�,�G�G�G�G�G�Gr'c�.�g|]}td|����S)r)r )rU�ds r(� z#ListCommand.run..�s3�� ' � ' � ' �� �&�� *� *� ' � ' � ' r')� local_only� user_only�editables_only�include_editables�skip)�outdated�uptodaterr �check_list_path_option�setr�excludes�updater�path�iter_installed_distributions�localr1�editabler;r9�get_not_required� get_outdated� get_uptodate�output_package_listingr)rDrGrQr_�packagess r(�runzListCommand.run�sM�� � � X�� 0� X��V�W�W� W��)�'�2�2�2��;���� � � H� �K�K�G�G�g�6F�G�G�G� G� G� G� ' � ' �$�W�\�2�2�O�O�"�=�!�,�&�/�")�":�� P��� ' � ' � ' �� � � @��,�,�X�w�?�?�H� � � <��(�(��7�;�;�H�H� � � <��(�(��7�;�;�H� �#�#�H�g�6�6�6��r'rn�_ProcessedDistsc�B�d�|�||��D��S)Nc�2�g|]}|j|jk�|��Sr&�r�version�rU�dists r(rZz,ListCommand.get_outdated..�s2�� � � ���"�T�\�1�1� �1�1�1r'��iter_packages_latest_infos�rDrnrGs r(rkzListCommand.get_outdated��3�� � ��7�7��'�J�J� � � � r'c�B�d�|�||��D��S)Nc�2�g|]}|j|jk�|��Sr&rsrus r(rZz,ListCommand.get_uptodate..�s2�� � � ���"�d�l�2�2� �2�2�2r'rwrys r(rlzListCommand.get_uptodate�rzr'c�R��d�|D���t�fd�|D����S)Nc�h�h|]/}|���pdD]}t|j�����0S)r&)�iter_dependenciesr �name)rUrv�deps r(� z/ListCommand.get_not_required..�sZ�� � � ���.�.�0�0�6�B� � �� �c�h� '� '� � � � r'c�&��h|] }|j�v� |��Sr&��canonical_name)rU�pkg�dep_keyss �r(r�z/ListCommand.get_not_required..�s&���S�S�S�S��0B�(�0R�0R�S�0R�0R�0Rr')�list)rDrnrGr�s @r(rjzListCommand.get_not_required�sF��� � � � � � ���S�S�S�S�H�S�S�S�T�T�Tr'rc#����K�|����5}|��|���dddtdf��fd� }t||��D]}|�|V�� ddd��dS#1swxYwYdS)Nrvrr+c�����|j��}�js d�|D��}��|j���}|�|��}|�dS|j}|jjrd}nd}||_||_ |S)Nc�*�g|]}|jj�|��Sr&)rt� is_prerelease)rU� candidates r(rZzOListCommand.iter_packages_latest_infos..latest_info..�s4��&�&�&�%�(�0�>�&�!�&�&�&r')� project_name�wheel�sdist) �find_all_candidatesr�rO�make_candidate_evaluator�sort_best_candidatert�link�is_wheelrr)rv�all_candidates� evaluator�best_candidate�remote_version�typ�finderrGs ��r(� latest_infoz;ListCommand.iter_packages_latest_infos..latest_info�s����"(�!;�!;�D��!>�~�!N�!N��!�)��4�!/�!7��!�&�/�"�!�C�C�!�C�&4��#�'*��$�� r')�_build_sessionrPrr)rDrnrGrHr�rvr�s ` @r(rxz&ListCommand.iter_packages_latest_infos�s�������� � �� )� )�! �W��/�/���A�A�F� �+� ��/�0� � � � � � � �8(� �X�>�>� � ���#��J�J�J�� �?! �! �! �! �! �! �! �! �! �! �! �! ����! �! �! �! �! �! s�AA.�.A2�5A2c��t|d����}|jdkr-|r+t||��\}}|�||��dS|jdkrO|D]J}|jdkr"t d|j|j|j���/t d|j|j���KdS|jdkrt t||����dSdS) Nc��|jSrTr�)rvs r(�z4ListCommand.output_package_listing.. s ��T�0�r')�keyr5r6�z %s==%s (%s)z%s==%sr7) �sortedr4�format_for_columns�output_package_listing_columns�verboser�raw_namert�location�format_for_json)rDrnrG�data�headerrvs r(rmz"ListCommand.output_package_listings��� �0�0� � � �� � �)� +� +�� +�-�h��@�@�L�D�&� � /� /��f� =� =� =� =� =� � �H� ,� ,� � H� H���?�a�'�'� �%�t�}�d�l�D�M�����!��4�=�$�,�G�G�G�G�  H� H�� �F� *� *� ���7�;�;� <� <� <� <� <�+� *r'r�r�c �:�t|��dkr|�d|��t|��\}}t|��dkr8|�dd�t d�|������|D]}t |���dS)Nrr�� c� �d|zS)N�-r&)�xs r(r�z.%s ���q��r')�len�insertr�join�mapr)rDr�r�� pkg_strings�sizes�vals r(r�z*ListCommand.output_package_listing_columnss��� �t�9�9�q�=�=� �K�K��6� "� "� "�%�d�^�^�� �U� �t�9�9�q�=�=� � � �q�#�(�(�3�/@�/@�%�+H�+H�"I�"I� J� J� J�� � �C� �� � � � � � r')r+N)r r!r"r#�ignore_require_venv�usagerFrrrrPrr%�introrkrlrjrrxrmr�r&r'r(r*r*(s��������� �� �E�S:�S:�S:�S:�j �� �(2� � � � � � �&"�6�"��c��"�s�"�"�"�"�H �)� �4:� � � � � � � �)� �4:� � � � � � � U�)� U�4:� U� � U� U� U� U�$�)�$�4:�$� �'� (�$�$�$�$�L=�)�=�4:�=� �=�=�=�=�*���c��O��-1�#�Y�� ������r'r*�pkgsrprGr+c���ddg}|j}|r|�ddg��td�|D����}|r|�d��|jdkr|�d��|jdkr|�d ��g}|D]�}|jt |j��g}|rA|�t |j����|�|j ��|r|�|j pd ��|jdkr|�|j pd ��|jdkr|�|j ��|�|����||fS) z_ Convert the package data into something usable by output_package_listing_columns. �Package�Version�Latest�Typec3�$K�|] }|jV�� dSrT)ri)rUr�s r(rWz%format_for_columns..8s$����1�1�q�� �1�1�1�1�1�1r'zEditable project locationr��Location� Installer�) r`�extend�any�appendr�r�r%rtrr�editable_project_locationr�� installer)r�rGr��running_outdated� has_editablesr��proj�rows r(r�r�+s����� #�F��'���*�� � �x��(�)�)�)��1�1�D�1�1�1�1�1�M��3�� � �1�2�2�2���!���� � �j�!�!�!���!���� � �k�"�"�"� �D������}�c�$�,�/�/�0�� � -� �J�J�s�4�.�/�/� 0� 0� 0� �J�J�t�+� ,� ,� ,� � =� �J�J�t�5�;�� <� <� <� �?�a� � � �J�J�t�}�*�� +� +� +� �?�a� � � �J�J�t�~� &� &� &� � � �C����� ��<�r'rnc�H�g}|D]�}|jt|j��d�}|jdkr|jpd|d<|j|d<|jr!t|j��|d<|j|d<|j }|r||d<|� |����tj |��S) N)r�rtr�r�r�r�rrr�) r�r%rtr�r�r�r`rrr�r�r7�dumps)rnrGr�rv�infor�s r(r�r�Xs��� �D������M��4�<�(�(� � �� �?�a� � �#�}�2��D�� � $��D�� � � � ;�%(��)<�%=�%=�D�!� "�&*�&:�D�"� #�$(�$B�!� $� J�0I�D�,� -� � � �D����� �:�d� � �r')3r7�logging�optparser�typingrrrrrr r �pip._vendor.packaging.utilsr �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.metadatarr�$pip._internal.models.selection_prefsr�pip._internal.network.sessionr�pip._internal.utils.compatr�pip._internal.utils.miscrr�pip._internal.utils.parallelr�pip._internal.metadata.baserrrp� getLoggerr �loggerr*r%r�r�r&r'r(�r�sf�� � � � �����������Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�9�9�9�9�9�9�(�(�(�(�(�(�;�;�;�;�;�;�2�2�2�2�2�2�1�1�1�1�1�1�7�7�7�7�7�7�<�<�<�<�<�<�D�D�D�D�D�D�D�D�E�E�E�E�E�E�4�4�4�4�4�4�2�2�2�2�2�2�;�;�;�;�;�;�;�;�8�8�8�8�8�8�� 4�?�?�?�?�?�?������.�����2�3�O� �� �8� $� $��@�@�@�@�@�#�@�@�@�F*� �*�&,�*� �4��S� �?�D��I� %�&�*�*�*�*�Z�/��&��S������r'