
    VPi                         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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  ee          Z G d de          ZdS )    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                   N    e Zd ZdZdZd	dZededee	         de
fd            ZdS )
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                 \   | j                             t          j        ddddddd                     | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j	                               | j                             t          j
                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               | j                             t          j                               t          j        t          j        | j                  }t          j        t          j        | j                  }| j                            d|           | j                            d|           | j                            d| j                    d S )	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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      o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pip/_internal/commands/lock.pyadd_optionszLockCommand.add_options0   s      "%N  
	
 
	
 
	
 	  !8!:!:;;;  !E!G!GHHH  !7!9!9:::  !=!?!?@@@  !3!5!5666  !4!6!6777  !1!1222  !B!D!DEEE  !>!@!@AAA  !6!8!8999  !<!>!>???  !;!=!=>>>  !:!<!<===  !8!:!:;;;1"K
 


 $5.K
 

 	'':666''>:::''4=99999    optionsargsc           
         t                               dt                                 t                               d           t	          j        |           t	          j        |           |                     |          }|                     |||j	                  }| 
                    t                                }t          |j         dd          }|                     ||||          }t          |j                  }|D ]	}	d|	_        
|                     |||||d| j                  }
|                     |
|||dd|j	        d	
          }|                     |           |                    |d          }|j        dk    rt1          j                    }nEt1          |j                  }t5          |          st                               d|           |j        }t9          |j                                        |          }t?          j         |!                                          }|j        dk    r tD          j#        $                    |           n|%                    |d           tL          S )NzUsing %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	verbosityzto-satisfy-only)preparerrB   r8   wheel_cacherC   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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resolver   r   cwdr   parentr   r   valuesr   dumpsto_dictsysstdoutwrite
write_textr   )r2   r8   r9   r;   rB   rA   	directoryreqsrF   reqrE   resolverrequirement_setrK   output_file_pathpylockpylock_tomls                    r5   runzLockCommand.run^   s   z?#4#4555%	
 	
 	
 	*733327;;;**733++#*#A , 
 

 **+<+>+>??!''!
 
 
	 $$T7FGDD !233
  	. 	.C)-C&&11$'n 2 
 
 %%#!#*#A. & 	
 	
 	f%%%"**4*MM#%%xzzHH#G$788'(899 7$   (.H1(//11H
 
 
 mFNN$4$455#%%J[))))''g'FFFr7   )r   N)__name__
__module____qualname____doc__usager6   r
   r   liststrintrn    r7   r5   r   r      s|         0E,: ,: ,: ,:\ P6 Pc Ps P P P \P P Pr7   r   )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_dirr   ro   rM   r   rw   r7   r5   <module>r      sm   



                   = = = = = = * * * * * * ( ( ( ( ( (        3 2 2 2 2 2 J J J J J J 1 1 1 1 1 1      H G G G G G 6 6 6 6 6 6	8		U U U U U$ U U U U Ur7   