Viewing File: /opt/hc_python/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/lock.cpython-312.pyc

�

T�*j�����ddlZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZee�ZGd�de�Zy)�N)�Values)�Path)�tomli_w)�is_valid_pylock_path)�
WheelCache)�
cmdoptions)�RequirementCommand�with_cleanup)�SUCCESS)�get_build_tracker)�	getLogger)�get_pip_version)� pylock_from_install_requirements)�
TempDirectoryc�@�eZdZdZdZd	d�Zededee	de
fd��Zy)
�LockCommanda�
    EXPERIMENTAL - Lock packages and their dependencies from:

    - PyPI (and other indexes) using requirement specifiers.
    - VCS project urls.
    - Local project directories.
    - Local or remote source archives.

    pip also supports locking from "requirements files", which provide an easy
    way to specify a whole environment to be installed.

    The generated lock file is only guaranteed to be valid for the current
    python version and platform.
    z�
      %prog [options] [-e] <local project path> ...
      %prog [options] <requirement specifier> [package-index-options] ...
      %prog [options] -r <requirements file> [package-index-options] ...
      %prog [options] <archive url/path> ...�returnNc���|jjtjddddddd���|jjtj��|jjtj
��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj��|jjtj ��|jjtj"��tj$tj&|j(�}tj$tj*|j(�}|j(j-d|�|j(j-d|�|j(j-d|j�y)	Nz--outputz-o�output_file�pathzpylock.tomlz7Lock file name (default=pylock.toml). Use - for stdout.)�dest�metavar�type�default�helpr)�cmd_opts�
add_optionr�	PipOption�requirements�requirements_from_scripts�constraints�build_constraints�no_deps�editable�src�ignore_requires_python�no_build_isolation�
use_pep517�check_build_deps�config_settings�require_hashes�progress_bar�make_option_group�index_group�parser�package_selection_group�insert_option_group)�self�
index_opts�selection_optss   �J/opt/hc_python/lib/python3.12/site-packages/pip/_internal/commands/lock.py�add_optionszLockCommand.add_options0s5���
�
� � �� � ���"���%�N�
�
	
�	
�
�
� � ��!8�!8�!:�;��
�
� � ��!E�!E�!G�H��
�
� � ��!7�!7�!9�:��
�
� � ��!=�!=�!?�@��
�
� � ��!3�!3�!5�6��
�
� � ��!4�!4�!6�7��
�
� � ����!1�2��
�
� � ��!B�!B�!D�E��
�
� � ��!>�!>�!@�A��
�
� � ��!6�!6�!8�9��
�
� � ��!<�!<�!>�?��
�
� � ��!;�!;�!=�>��
�
� � ��!:�!:�!<�=��
�
� � ��!8�!8�!:�;��1�1��"�"��K�K�
�
�
$�5�5��.�.��K�K�
��
	
���'�'��:�6����'�'��>�:����'�'��4�=�=�9��options�argsc
��tjdt��tjd�t	j
|�t	j|�|j|�}|j|||j��}|jt��}t|jdd��}|j||||�}t|j �}|D]	}	d|	_�|j%|||||d|j&��}
|j)|
|||dd|jd	�
�}|j+|�|j-|d��}|j.dk(rt1j2�}
nBt1|j.�}t5|�stjd
|�|j6}
t9|j:j=�|
��}t?j@|jC��}|j.dk(r%tDjFjI|�tLSjK|d��tLS)NzUsing %szspip lock is currently an experimental command. It may be removed/changed in a future release without prior warning.)r8�sessionr&�installT)�delete�kind�globally_managedF)�temp_build_dirr8�
build_trackerr;�finder�
use_user_site�	verbosityzto-satisfy-only)�preparerrBr8�wheel_cacherC�ignore_installedr&�upgrade_strategy)�check_supported_wheels�-z!%s is not a valid lock file name.)�base_dirzutf-8)�encoding)'�logger�verboser�warningr�check_build_constraints�check_release_control_exclusive�get_default_session�_build_package_finderr&�
enter_contextrr�no_clean�get_requirementsr�	cache_dir�permit_editable_wheels�make_requirement_preparerrD�
make_resolver�trace_basic_info�resolverr�cwdr�parentrr�valuesr�dumps�to_dict�sys�stdout�write�
write_textr)r2r8r9r;rBrA�	directory�reqsrF�reqrE�resolver�requirement_setrK�output_file_path�pylock�pylock_tomls                 r5�runzLockCommand.run^s6�����z�?�#4�5����
%�	
�	�*�*�7�3��2�2�7�;��*�*�7�3���+�+���#*�#A�#A�,�
��
�*�*�+<�+>�?�
�!��'�'�'��!�
�	��$�$�T�7�F�G�D�� ��!2�!2�3��
�C�)-�C�&���1�1�$��'�����n�n�2�
���%�%����#��!�#*�#A�#A�.�&�	
��	
���f�%�"�*�*�4��*�M�����#�%��x�x�z�H�#�G�$7�$7�8��'�(8�9����7�$��(�.�.�H�1��(�(�/�/�1�H�
���m�m�F�N�N�$4�5�����#�%��J�J���[�)���
�'�'��g�'�F��r7)rN)�__name__�
__module__�__qualname__�__doc__�usager6r
r�list�str�intrn�r7r5rrsF��
�
0�E�,:�\�P�6�P��c��P�s�P��Pr7r)rb�optparser�pathlibr�pip._vendorr�pip._vendor.packaging.pylockr�pip._internal.cacher�pip._internal.clir�pip._internal.cli.req_commandr	r
�pip._internal.cli.status_codesr�,pip._internal.operations.build.build_trackerr�pip._internal.utils.loggingr
�pip._internal.utils.miscr�pip._internal.utils.pylockr�pip._internal.utils.temp_dirrrorMrrwr7r5�<module>r�sQ��
����=�*�(��3�J�1��H�6�	�8�	��U�$�Ur7
Back to Directory File Manager