
    'jc                         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  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  S SKJr  \" \5      r " S S\5      rg)    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                   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                    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        [        R(                  " [        R*                  U R,                  5      n[        R(                  " [        R.                  U R,                  5      nU R,                  R1                  SU5        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requirements_from_scriptsconstraintsbuild_constraintsno_deps	only_depseditablesrcignore_requires_pythonno_build_isolation
use_pep517check_build_depsconfig_settingsrequire_hashesno_require_hashesprogress_barmake_option_groupindex_groupparserpackage_selection_groupinsert_option_group)self
index_optsselection_optss      S/var/www/html/KUNJ/venv/lib/python3.13/site-packages/pip/_internal/commands/lock.pyadd_optionsLockCommand.add_options0   sk       "%N
	
 	  !8!8!:;  !E!E!GH  !7!7!9:  !=!=!?@  !3!3!56  !5!5!78  !4!4!67  !12  !B!B!DE  !>!>!@A  !6!6!89  !<!<!>?  !;!;!=>  !:!:!<=  !=!=!?@  !8!8!:;11""KK


 $55..KK

 	'':6''>:''4==9    optionsargsc                    [         R                  S[        5       5        [         R                  S5        [        R
                  " U5        [        R                  " U5        [        R                  " U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[!        UR"                  5      nU R%                  UUUUUSU R&                  SS9n	U R)                  U	UUUSSUR                  S	S
9n
U R+                  U5        U
R-                  USS9nUR.                  S:X  a  [0        R2                  " 5       nOG[1        UR.                  5      n[5        U5      (       d  [         R                  SU5        UR6                  n[9        UR:                  R=                  5       US9n[>        R@                  " URC                  5       5      nUR.                  S:X  a%  [D        RF                  RI                  U5        [L        $ WRK                  USS9  [L        $ )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	verbosityallow_editableszto-satisfy-only)preparerrF   r<   wheel_cacherG   ignore_installedr(   upgrade_strategy)check_supported_wheels-z!%s is not a valid lock file name.)base_dirzutf-8)encoding)'loggerverboser   warningr   check_build_constraintscheck_release_control_exclusive(check_only_deps_option_does_not_conflictget_default_session_build_package_finderr(   enter_contextr   r   no_cleanget_requirementsr   	cache_dirmake_requirement_preparerrH   make_resolvertrace_basic_inforesolver   r   cwdr   parentr   r    valuesr   dumpsto_dictsysstdoutwrite
write_textr   )r5   r<   r=   r?   rF   rE   	directoryreqsrK   rJ   resolverrequirement_setrP   output_file_pathpylockpylock_tomls                   r8   runLockCommand.run`   s0   z?#45%	
 	**73227;;;GD**73++#*#A#A , 

 **+<+>?!'''!
	 $$TFD !2!2311$'nn  2 	
 %%#!#*#A#A. & 	
 	f%"**4*M#%xxzH#G$7$78'(8997$ (..H1((//1H
 mmFNN$45#%JJ[)  ''g'Fr;    )r   N)__name__
__module____qualname____firstlineno____doc__usager9   r
   r   liststrintrr   __static_attributes__rt   r;   r8   r   r      sF    0E.:` L6 Lc Ls L Lr;   r   )rg   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_dirr   ru   rR   r   rt   r;   r8   <module>r      sQ    
    = * ( 3 J 1 H 6	8	S$ Sr;   