
    g/                        S r SSKrSSKJr  SSKJr  SSKJrJr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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   SSK!J"r"  SSK#J$r$J%r%J&r&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1  \Rd                  " \35      r4\1Rj                  \1Rl                  \1Rn                  /r8S\S\4S jr9 " S S\5      r:g)zContains the RequirementCommand base class.

This class is in a separate module so the commands that do not always
need PackageFinder capability don't unnecessarily import the
PackageFinder machinery and all its vendored dependencies, etc.
    N)partial)Values)AnyListOptionalTuple)
WheelCache)
cmdoptions)IndexGroupCommand)SessionCommandMixin)CommandErrorPreviousBuildDirError)LinkCollector)PackageFinder)SelectionPreferences)TargetPython)
PipSession)BuildTracker)RequirementPreparer)install_req_from_editableinstall_req_from_line#install_req_from_parsed_requirementinstall_req_from_req_string)parse_requirements)InstallRequirement)BaseResolver)TempDirectoryTempDirectoryTypeRegistrytempdir_kindsfuncreturnc           	         ^ ^ S[         SS4S jmS[        S[        S[        [           S[
        [           4UU 4S jjnU$ )	zFDecorator for common logic related to managing temporary
directories.
registryr!   Nc                 B    [          H  nU R                  US5        M     g )NF)KEEPABLE_TEMPDIR_TYPES
set_delete)r#   ts     e/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.pyconfigure_tempdir_registry0with_cleanup.<locals>.configure_tempdir_registry7   s    'A5) (    selfoptionsargsc                    > U R                   c   eUR                  (       a  T" U R                   5         T" XU5      $ ! [         a    T" U R                   5        e f = fN)tempdir_registryno_cleanr   )r,   r-   r.   r)   r    s      r(   wrapperwith_cleanup.<locals>.wrapper;   sb     $$000&t'<'<=	t,,$ 	 't'<'<=	s	   > A)r   RequirementCommandr   r   r   r   int)r    r3   r)   s   ` @r(   with_cleanupr7   2   sP    
*-F *4 * +19=c	#   Nr+   c                     ^  \ rS rSrS\S\SS4U 4S jjr\S\S\4S j5       r	\
  S S	\S\S
\S\S\S\S\\   S\S\4S jj5       r\
        S!S\S\S\S\\   S\S\S\S\S\S\\   S\\\S4      S\4S jj5       rS\\   S\S\S\S\\   4
S jr\S\SS4S j5       r  S"S\S\S\\   S\\   S\4
S jjrSrU =r$ )#r5   N   r.   kwr!   Nc                    > [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        g r0   )super__init__cmd_opts
add_optionr
   r2   )r,   r.   r:   	__class__s      r(   r=   RequirementCommand.__init__O   s0    $%"%  !4!4!67r+   r-   c                 &    SU R                   ;   a  gg)zEDetermines which resolver should be used, based on the given options.zlegacy-resolverlegacy
resolvelib)deprecated_features_enabledr-   s    r(   determine_resolver_variant-RequirementCommand.determine_resolver_variantT   s      C CCr+   temp_build_dirbuild_trackersessionfinderuse_user_sitedownload_dir	verbosityc	                    UR                   n	U	c   eSn
U R                  U5      nUS:X  a,  SUR                  ;   nU(       a  [        R	                  S5        O)Sn
SnSUR                  ;   a  [        R	                  S5        [        U	UR                  UUR                  UR                  UUUR                  UUR                  UUUU
S9$ )zA
Create a RequirementPreparer instance for the given parameters.
FrD   z	fast-depszpip is using lazily downloaded wheels using HTTP range requests to obtain dependency information. This experimental feature is enabled through --use-feature=fast-deps and it is not ready for production.Tz;fast-deps has no effect when used with the legacy resolver.)	build_dirsrc_dirrN   build_isolationcheck_build_depsrJ   rK   progress_barrL   require_hashesrM   
lazy_wheelrO   legacy_resolver)pathrG   features_enabledloggerwarningr   rR   rS   rT   rU   rV   )clsrI   r-   rJ   rK   rL   rM   rN   rO   temp_build_dir_pathrX   resolver_variantrW   s                r(   make_requirement_preparer,RequirementCommand.make_requirement_preparer\   s     -11"...99'B|+$(@(@@J" #OJg666Q #)OO%#33$55' --"11'!+
 	
r+   preparerwheel_cacheignore_installedignore_requires_pythonforce_reinstallupgrade_strategy
use_pep517py_version_info.c                    [        [        UR                  U
S9nU R                  U5      nUS:X  aO  SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ )z6
Create a Resolver instance for the given parameters.
)isolatedrh   rD   r   N)rb   rL   rc   make_install_reqrM   ignore_dependenciesrd   re   rf   rg   ri   )r   r   isolated_moderG   ,pip._internal.resolution.resolvelib.resolver	_internal
resolutionrD   resolverResolverrm   (pip._internal.resolution.legacy.resolverrC   )r]   rb   rL   r-   rc   rM   rd   re   rf   rg   rh   ri   rl   r_   pips                  r(   make_resolver RequirementCommand.make_resolver   s    $ #'**!

 99'B |+?==++66??HH!'!1+$+$?$?!1'= /!1 / I   	8}}''..77@@#-' ' ; ;-#9+-+ A 
 	
r+   c                 P   / nUR                    H=  n[        USUUUS9 H)  n[        UUR                  SS9nUR	                  U5        M+     M?     U HA  n	[        U	SUR                  UR                  S[        USS5      S9nUR	                  U5        MC     UR                   H@  n	[        U	SUR                  UR                  [        USS5      S9nUR	                  U5        MB     UR                   Hr  n[        XcX$S	9 Ha  n[        UUR                  UR                  SUR                  (       a  UR                  R                  S5      OSS
9nUR	                  U5        Mc     Mt     [        S U 5       5      (       a  SUl        U(       d  UR                  (       d  UR                  (       dv  SU R                  0n
UR                   (       a<  [#        SR$                  " S0 ['        U
SR)                  UR                   5      S9D65      e[#        SR$                  " S0 U
D65      eU$ )zC
Parse command-line arguments into the corresponding requirements.
T)
constraintrL   r-   rK   F)rk   user_suppliedNconfig_settings)
comes_fromrk   rh   rz   r{   )rz   rk   rh   r{   )rL   r-   rK   )rk   rh   rz   r{   c              3   8   #    U  H  oR                   v   M     g 7fr0   )has_hash_options).0reqs     r(   	<genexpr>6RequirementCommand.get_requirements.<locals>.<genexpr>  s     <|##|s   namezXYou must give at least one requirement to {name} (maybe you meant "pip {name} {links}"?) )linkszHYou must give at least one requirement to {name} (see "pip help {name}") )constraintsr   r   rn   appendr   rh   getattr	editablesr   requirementsr-   getanyrV   r   
find_linksr   formatdictjoin)r,   r.   r-   rL   rK   r   filename
parsed_req
req_to_addr   optss              r(   get_requirements#RequirementCommand.get_requirements   s:    24++H0
 A$22"'

 ##J/ , C. .."--" '1BD IJ 
+  $$C2" .."-- '1BD IJ 
+ %  ,,H0
 A$22&11"& &-- #**../@A!

 ##J/ -$ <|<<<%)G"))W-A-ADII&D!!">>DfE t388G4F4F+GH  #..4f5 =7;= 
 r+   c                 v    U R                   nUR                  5       nU(       a  [        R                  U5        gg)z5
Trace basic information about the provided objects.
N)search_scopeget_formatted_locationsr[   info)rL   r   	locationss      r(   trace_basic_info#RequirementCommand.trace_basic_info$  s1     ** 88:	KK	" r+   target_pythonc                     [         R                  " X!S9n[        SUR                  UR                  UR
                  US9n[        R                  " UUUS9$ )z
Create a package finder appropriate to this requirement command.

:param ignore_requires_python: Whether to ignore incompatible
    "Requires-Python" values in links. Defaults to False.
rF   T)allow_yankedformat_controlallow_all_prereleasesprefer_binaryre   )link_collectorselection_prefsr   )r   creater   r   prer   r   )r,   r-   rK   r   re   r   r   s          r(   _build_package_finder(RequirementCommand._build_package_finder/  s[     '--gG."11")++!//#9
 ##)+'
 	
r+   r   )Nr   )NFTFFzto-satisfy-onlyNN)NN) __name__
__module____qualname____firstlineno__r   r=   staticmethodr   strrG   classmethodr   r   r   r   boolr   r6   r   r`   r	   r   r   rv   r   r   r   r   r   r   __static_attributes____classcell__)r@   s   @r(   r5   r5   N   s&   8c 8 8 8
 F s    '+4
%4
 4
 $	4

 4
 4
 4
 sm4
 4
 
4
 4
l  -1#!%', % 1%)598
%8
 8
 	8

 j)8
 8
 8
 !%8
 8
 8
 TN8
 "%S/28
 
8
 8
tT3iT T 	T
 T 
 	!Tl # #4 # # 1515

 
  -	

 !)
 

 
r+   r5   );__doc__logging	functoolsr   optparser   typingr   r   r   r   pip._internal.cacher	   pip._internal.clir
   pip._internal.cli.index_commandr   r   pip._internal.exceptionsr   r   pip._internal.index.collectorr   "pip._internal.index.package_finderr   $pip._internal.models.selection_prefsr   "pip._internal.models.target_pythonr   pip._internal.network.sessionr   ,pip._internal.operations.build.build_trackerr    pip._internal.operations.preparer   pip._internal.req.constructorsr   r   r   r   pip._internal.req.req_filer   pip._internal.req.req_installr   pip._internal.resolution.baser   pip._internal.utils.temp_dirr   r   r   	getLoggerr   r[   	BUILD_ENVEPHEM_WHEEL_CACHE	REQ_BUILDr%   r7   r5   r   r+   r(   <module>r      s       - - * ( = V H 7 < E ; 4 E @  : < 6  
		8	$ ## s s 8{
* {
r+   