Ë
    Êmxi¥  ã                   ó¾   — 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
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  ee«      Z G d„ de
«      Zy)é    N)ÚValues)ÚPath)Ú
WheelCache)Ú
cmdoptions)ÚRequirementCommandÚwith_cleanup)ÚSUCCESS)ÚPylockÚis_valid_pylock_file_name)Úget_build_tracker)Ú	getLogger)Úget_pip_version)ÚTempDirectoryc                   ó@   — e Zd ZdZdZd	d„Zededee	   de
fd„«       Zy)
Ú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                 óH  — | j                   j                  t        j                  ddddddd¬«      «       | j                   j                  t        j                  «       «       | j                   j                  t        j
                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                  «       «       | j                   j                  t        j                   «       «       | j                   j                  t        j"                  «       «       | j                   j                  t        j$                  «       «       | j                   j                  t        j&                  «       «       | j                   j                  t        j(                  «       «       t        j*                  t        j,                  | j.                  «      }| j.                  j1                  d|«       | j.                  j1                  d| j                   «       y )	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Úbuild_constraintsÚno_depsÚpreÚeditableÚsrcÚignore_requires_pythonÚno_build_isolationÚ
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     úR/home/htdocs/ttos/venv/lib/python3.12/site-packages/pip/_internal/commands/lock.pyÚadd_optionszLockCommand.add_options-   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Ø�‰× Ñ ¤×!<Ñ!<Ó!>Ô?à�‰× Ñ ¤×!;Ñ!;Ó!=Ô>à�‰× Ñ ¤×!5Ñ!5Ó!7Ô8Ø�‰× Ñ ¤×!7Ñ!7Ó!9Ô:Ø�‰× Ñ ¤×!9Ñ!9Ó!;Ô<Ø�‰× Ñ ¤×!:Ñ!:Ó!<Ô=Ø�‰× Ñ ¤×!8Ñ!8Ó!:Ô;ä×1Ñ1Ü×"Ñ"Ø�K‰Kó
ˆ
ð
 	�‰×'Ñ'¨¨:Ô6Ø�‰×'Ñ'¨¨4¯=©=Õ9ó    ÚoptionsÚargsc           
      ót  — t         j                  dt        «       «       t         j                  d«       t	        j
                  |«       | j                  |«      }| j                  |||j                  ¬«      }| j                  t        «       «      }t        |j                   dd¬«      }| j                  ||||«      }t        |j                  «      }|D ]	  }	d|	_        Œ | j#                  |||||d| j$                  ¬«      }
| j'                  |
|||dd|j                  d	¬
«      }| j)                  |«       |j+                  |d¬«      }|j,                  dk(  rt/        j0                  «       }nBt/        |j,                  «      }t3        |«      st         j                  d|«       |j4                  }t7        j8                  |j:                  j=                  «       |¬«      j?                  «       }|j,                  dk(  r%t@        jB                  jE                  |«       tH        S jG                  |d¬«       tH        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Ú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
   Úfrom_install_requirementsr   ÚvaluesÚas_tomlÚsysÚstdoutÚwriteÚ
write_textr	   )r3   r8   r9   r;   rB   rA   Ú	directoryÚreqsrF   ÚreqrE   ÚresolverÚrequirement_setrK   Úoutput_file_pathÚpylock_tomls                   r5   ÚrunzLockCommand.runX   s(  € ä�‰�z¤?Ó#4Ô5ä�‰ð%ô	
ô 	×*Ñ*¨7Ô3à×*Ñ*¨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ÐÜ,Ð-=Ô>Ü—‘Ø7Ø$ôð (×.Ñ.ˆHÜ×6Ñ6Ø×(Ñ(×/Ñ/Ó1¸Hô
ç
‰'‹)ð 	ð ×Ñ #Ò%Ü�J‰J×Ñ˜[Ô)ô ˆð ×'Ñ'¨¸gÐ'ÔFäˆr7   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úusager6   r   r   ÚlistÚstrÚintrl   © r7   r5   r   r      sF   „ ñð0€Eó):ðV ðN˜6ð N¨¨c©ð N°sò Nó ñNr7   r   )ra   Úoptparser   Úpathlibr   Ú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.utils.loggingr   Úpip._internal.utils.miscr   Úpip._internal.utils.temp_dirr   rm   rM   r   ru   r7   r5   ú<module>r�      sJ   ðÛ 
Ý Ý å *Ý (÷õ 3ß IÝ JÝ 1õõ 7á	�8Ó	€ôPÐ$õ Pr7   