
    q"h5                         S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJr  S S	KJrJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  \" \5      r " S S\5      rg)    N)Values)Path)List)
WheelCache)
cmdoptions)RequirementCommandwith_cleanup)SUCCESS)Pylockis_valid_pylock_file_name)get_build_tracker)check_legacy_setup_py_options)	getLogger)get_pip_version)TempDirectoryc                   L    \ rS rSrSrSrSS jr\S\S\	\
   S\4S	 j5       rS
rg)LockCommand   a  
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                 h   U R                   R                  [        R                  " SSSSSSSS95        U R                   R                  [        R                  " 5       5        U R                   R                  [        R
                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                  " 5       5        U R                   R                  [        R                   " 5       5        U R                   R                  [        R"                  " 5       5        U R                   R                  [        R$                  " 5       5        U R                   R                  [        R&                  " 5       5        U R                   R                  [        R(                  " 5       5        [        R*                  " [        R,                  U R.                  5      nU R.                  R1                  SU5        U R.                  R1                  SU R                   5        g )	Nz--outputz-ooutput_filepathzpylock.tomlz7Lock file name (default=pylock.toml). Use - for stdout.)destmetavartypedefaulthelpr   )cmd_opts
add_optionr   	PipOptionrequirementsconstraintsno_depspreeditablesrcignore_requires_pythonno_build_isolation
use_pep517no_use_pep517check_build_depsconfig_settings	no_binaryonly_binaryprefer_binaryrequire_hashesprogress_barmake_option_groupindex_groupparserinsert_option_group)self
index_optss     M/var/www/html/env/lib/python3.13/site-packages/pip/_internal/commands/lock.pyadd_optionsLockCommand.add_options1   sN       "%N
	
 	  !8!8!:;  !7!7!9:  !3!3!56  !12  !4!4!67  !12  !B!B!DE  !>!>!@A  !6!6!89  !9!9!;<  !<!<!>?  !;!;!=>  !5!5!78  !7!7!9:  !9!9!;<  !:!:!<=  !8!8!:;11""KK


 	'':6''4==9    optionsargsc                 f   [         R                  S[        5       5        [         R                  S5        U R	                  U5      nU R                  UUUR                  S9nU R                  [        5       5      n[        UR                  (       + SSS9nU R                  X!XC5      n[        X5        [        UR                  5      nU H
  n	SU	l        M     U R!                  UUUUUSU R"                  S9n
U R%                  U
UUUSSUR                  S	UR&                  S
9	nU R)                  U5        UR+                  USS9nUR,                  S:X  a  [.        R0                  " 5       nOG[/        UR,                  5      n[3        U5      (       d  [         R                  SU5        UR4                  n[6        R8                  " UR:                  R=                  5       US9R?                  5       nUR,                  S:X  a%  [@        RB                  RE                  U5        [H        $ WRG                  USS9  [H        $ )NzUsing %szspip lock is currently an experimental command. It may be removed/changed in a future release without prior warning.)r<   sessionr'   installT)deletekindglobally_managedF)temp_build_dirr<   build_trackerr?   finderuse_user_site	verbosityzto-satisfy-only)	preparerrF   r<   wheel_cacherG   ignore_installedr'   upgrade_strategyr)   )check_supported_wheels-z!%s is not a valid lock file name.)base_dirzutf-8)encoding)%loggerverboser   warningget_default_session_build_package_finderr'   enter_contextr   r   no_cleanget_requirementsr   r   	cache_dirpermit_editable_wheelsmake_requirement_preparerrH   make_resolverr)   trace_basic_inforesolver   r   cwdr   parentr   from_install_requirementsr!   valuesas_tomlsysstdoutwrite
write_textr
   )r6   r<   r=   r?   rF   rE   	directoryreqsrJ   reqrI   resolverrequirement_setrO   output_file_pathpylock_tomls                   r8   runLockCommand.run\   s%   z?#45%	
 **73++#*#A#A , 

 **+<+>?!'''!
	 $$TFD%g4 !2!23
 C)-C&  11$'nn 2 
 %%#!#*#A#A.)) & 

 	f%"**4*M#%xxzH#G$7$78,-=>>7$ (..H66((//1H

') 	 #%JJ[)  ''g'Fr;    )r   N)__name__
__module____qualname____firstlineno____doc__usager9   r	   r   r   strintro   __static_attributes__rq   r;   r8   r   r      sF    0E):V N6 Nc Ns N Nr;   r   ) rd   optparser   pathlibr   typingr   pip._internal.cacher   pip._internal.clir   pip._internal.cli.req_commandr   r	   pip._internal.cli.status_codesr
   pip._internal.models.pylockr   r   ,pip._internal.operations.build.build_trackerr   pip._internal.req.req_installr   pip._internal.utils.loggingr   pip._internal.utils.miscr   pip._internal.utils.temp_dirr   rr   rQ   r   rq   r;   r8   <module>r      sT    
    * ( 3 I J 2 7	8	P$ Pr;   