ó
    T=ŒjB�  ã                  ó|  • S SK Jr  S SKrS SKrS SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKJrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  S SKJrJr  S S	KJr  S S
KJr  S SK J!r!J"r"  S SK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  S SK+J,r,  S SK-J.r.J/r/  S SK0J1r1  S SK2J3r3  S SK4J5r5  S SK6J7r7J8r8  S SK9J:r:J;r;  S SK<J=r=  S SK>J?r?  S SK@JArA  S SKBJCrC  S SKDJErE  SSKFJGrGJHrHJIrI  SSKJJKrKJLrLJMrMJNrNJOrOJPrPJQrQ  SSKRJSrSJTrT  SSKUJVrVJWrWJXrXJYrYJZrZ  \(       a   " S S\5      r[\R¸                  " \]5      r^\" S 5      r_\`\1\_4   ra " S! S"\5      rb " S# S$5      rcg)%é    )ÚannotationsN)ÚCallableÚIterableÚIteratorÚMappingÚSequence)ÚTYPE_CHECKINGÚ
NamedTupleÚProtocolÚTypeVarÚcast)ÚInvalidRequirement)ÚSpecifierSet)ÚNormalizedNameÚcanonicalize_name)ÚInvalidVersionÚVersion)ÚResolutionImpossible)Úescape)Ú
CacheEntryÚ
WheelCache)ÚDistributionNotFoundÚInstallationErrorÚInvalidInstalledPackageÚMetadataInconsistentÚMetadataInvalidÚUnsupportedPythonVersionÚUnsupportedWheel)ÚPackageFinder)ÚBaseDistributionÚget_default_environment)ÚLink)ÚWheel)ÚRequirementPreparer)Úinstall_req_drop_extrasÚinstall_req_from_link_and_ireq)ÚInstallRequirementÚcheck_invalid_constraint_type)ÚInstallRequirementProvider)Úget_supported)ÚHashes)Úget_requirement)Úrunning_under_virtualenvé   )Ú	CandidateÚ
ConstraintÚRequirement)ÚAlreadyInstalledCandidateÚBaseCandidateÚEditableCandidateÚExtrasCandidateÚLinkCandidateÚRequiresPythonCandidateÚas_base_candidate)ÚFoundCandidatesÚIndexCandidateInfo)ÚExplicitRequirementÚRequiresPythonRequirementÚSpecifierRequirementÚ!SpecifierWithoutExtrasRequirementÚUnsatisfiableRequirementc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚConflictCauseéI   r<   Úrequirementr/   Úparent© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rE   ó    Úo/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.pyrA   rA   I   s   ‡ Ø.Ó.ØÖrM   rA   ÚCc                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ÚCollectedRootRequirementséT   zlist[Requirement]Úrequirementsúdict[str, Constraint]Úconstraintszdict[str, int]Úuser_requestedrE   NrF   rE   rM   rN   rQ   rQ   T   s   ‡ Ø#Ó#Ø&Ó&Ø"Ö"rM   rQ   c                  ó(  • \ rS rSr S                   SS jjr\SS j5       rSS jrSS.       SS jjr        S S jr	            S!S	 jr
          S"S
 jr S             S#S jjr      S$S jr        S%S jr              S&S jr      S'S jr    S(S jr    S)S jr S*       S+S jjr    S,S jrS-S jrS.S jr    S/S jr      S0S jrS1S jr      S2S jrSrg)3ÚFactoryéZ   Nc
                óx  • Xl         X l        X@l        [        U	5      U l        X0l        XPl        X`l        X€l        0 U l	        0 U l
        0 U l        0 U l        0 U l        [        5       U l        U(       d;  [!        5       n
U
R#                  SS9 Vs0 s H  nUR$                  U_M     snU l        g 0 U l        g s  snf )NF)Ú
local_only)Ú_finderÚpreparerÚ_wheel_cacher7   Ú_python_candidateÚ_make_install_req_from_specÚ_use_user_siteÚ_force_reinstallÚ_ignore_requires_pythonÚ_build_failuresÚ_link_candidate_cacheÚ_editable_candidate_cacheÚ_installed_candidate_cacheÚ_extras_candidate_cacher*   Ú_supported_tags_cacher!   Úiter_installed_distributionsÚcanonical_nameÚ_installed_dists)ÚselfÚfinderr]   Úmake_install_reqÚwheel_cacheÚuse_user_siteÚforce_reinstallÚignore_installedÚignore_requires_pythonÚpy_version_infoÚenvÚdists               rN   Ú__init__ÚFactory.__init__[   sÇ   € ð ŒØ ŒØ'ÔÜ!8¸Ó!IˆÔØ+;Ô(Ø+ÔØ /ÔØ'=Ô$à9;ˆÔØ;=ˆÔ"ØCEˆÔ&ØPRˆÔ'ð ð 	Ô$ô &3£_ˆÔ"æÜ)Ó+ˆCð  ×<Ñ<ÈÐ<ÑNó%âN�Dð ×#Ñ# TÒ)ÙNñ%ˆDÕ!ð
 %'ˆDÕ!ùò%s   ÂB7c                ó   • U R                   $ ©N)rb   )rm   s    rN   rr   ÚFactory.force_reinstall‚   s   € à×$Ñ$Ð$rM   c                óö   • UR                   (       d  g [        UR                  5      nUR                  U R                  R
                  R                  5       5      (       a  g UR                   S3n[        U5      e)Nz+ is not a supported wheel on this platform.)Úis_wheelr#   ÚfilenameÚ	supportedr\   Útarget_pythonÚget_unsorted_tagsr   )rm   ÚlinkÚwheelÚmsgs       rN   Ú"_fail_if_link_is_unsupported_wheelÚ*Factory._fail_if_link_is_unsupported_wheel†   s[   € Ø�}�}ØÜ�d—m‘mÓ$ˆØ�?‰?˜4Ÿ<™<×5Ñ5×GÑGÓI×JÑJØØ—‘�ÐJÐKˆÜ˜sÓ#Ð#rM   ©Ú
comes_fromc               ó²   • [        U5      [        S U 5       5      4n U R                  U   nU$ ! [         a    [	        XUS9nXPR                  U'    U$ f = f)Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr{   )r   )Ú.0Úes     rN   Ú	<genexpr>Ú1Factory._make_extras_candidate.<locals>.<genexpr>–   s   é € Ð(NÂvÀ!Ô):¸1×)=Ð)=Âvùs   ‚rˆ   )ÚidÚ	frozensetrh   ÚKeyErrorr5   )rm   ÚbaseÚextrasr‰   Ú	cache_keyÚ	candidates         rN   Ú_make_extras_candidateÚFactory._make_extras_candidate�   sn   € ô ˜“XœyÑ(NÁvÓ(NÓNÐOˆ	ð	@Ø×4Ñ4°YÑ?ˆIð Ðøô ó 	@Ü'¨ÀÑLˆIØ6?×(Ñ(¨Ò3ØÐð	@ús   Ÿ0 °"AÁAc                óÌ   •  U R                   UR                     nU(       d  U$ U R	                  XBUS9$ ! [         a%    [        XU S9nX@R                   UR                  '    NGf = f)N)Úfactoryrˆ   )rg   rk   r’   r2   r—   )rm   rw   r”   Útemplater“   s        rN   Ú_make_candidate_from_distÚ!Factory._make_candidate_from_distž   sq   € ð	HØ×2Ñ2°4×3FÑ3FÑGˆDö ØˆKØ×*Ñ*¨4ÀHÐ*ÐMÐMøô ó 	HÜ,¨TÀTÑJˆDØCG×+Ñ+¨D×,?Ñ,?Ó@ð	Hús   ‚4 ´,A#Á"A#c                ó^   • U R                  XXE5      nU(       a  Uc  U$ U R                  XbUS9$ )Nrˆ   )Ú_make_base_candidate_from_linkr—   )rm   rƒ   r”   r›   ÚnameÚversionr“   s          rN   Ú_make_candidate_from_linkÚ!Factory._make_candidate_from_link­   s=   € ð &*×%HÑ%HØ˜Dó&
ˆö ˜™ØˆKØ×*Ñ*¨4ÀHÐ*ÐMÐMrM   c           
     ó¸  • XR                   ;   a  g UR                  (       a9  XR                  ;  a   [        UUU UUS9U R                  U'   U R                  U   $ XR                  ;  a   [        UUU UUS9U R                  U'   U R                  U   $ ! [        [
        4 aT  n[        R                  S[        [        U5      5      [        [        U5      5      SS0S9  XPR                   U'    S nAg S nAff = f! [         aT  n[        R                  S[        [        U5      5      [        [        U5      5      SS0S9  XPR                   U'    S nAg S nAff = f)N)rš   r    r¡   z3Discarding [blue underline]%s[/]: [yellow]%s[reset]ÚmarkupT)Úextra)rd   Úeditablerf   r4   r   r   ÚloggerÚinfor   Ústrre   r6   )rm   rƒ   r›   r    r¡   r�   s         rN   rŸ   Ú&Factory._make_base_candidate_from_link¼   sb  € ð ×'Ñ'Ó'ð à××Ø×9Ñ9Ó9ð Ü;LØØ Ø $Ø!Ø 'ñ<�D×2Ñ2°4Ñ8ð" ×1Ñ1°$Ñ7Ð7à×5Ñ5Ó5ð Ü7DØØ Ø $Ø!Ø 'ñ8�D×.Ñ.¨tÑ4ð  ×-Ñ-¨dÑ3Ð3øô= -¬oÐ>ó  Ü—K‘KØMÜœs 4›yÓ)Üœs 1›v›Ø'¨Ð.ð	  ñ ð 23×(Ñ(¨Ñ.Üûð ûô* ,ó  Ü—K‘KØMÜœs 4›yÓ)Üœs 1›v›Ø'¨Ð.ð	  ñ ð 23×(Ñ(¨Ñ.Üûð ús1   ²B Á+C; ÂC8Â$A
C3Ã3C8Ã;
EÄA
EÅEc                ó   ^ ^^^^^^• U(       d  gUS   mTR                   (       d   S5       eU(       ay  TR                  (       dh  [        UR                  5       5      (       aJ  [        R                  " T5      mUR                  5        VVs0 s H  u  pxU[        U5      _M     snnTl        TR                   (       d   e[        TR                   R                  5      m[        5       mU H^  n	U	R                   (       d   S5       eTU	R                   R                  -  mTU	R                  SS9-  mT[        U	R                  5      -  mM`     SUUUU UU4S jjn
S	UUUU UU4S jjn[        UU
" 5       UT5      $ s  snnf )
NrE   r   z)Candidates found on index must be PEP 508F)Útrust_internetc                 ó(  >• TR                   (       a  g TR                  T   n  TR                  U R                  SS9(       d  g TR                  U TTS9n[        U5      T;   a  gU$ ! [         a     gf = f! [
         a  n[        XS9eSnAff = f)z6Get the candidate for the currently-installed version.NT)Úprereleases)rw   Úinvalid_exc)rw   r”   r›   )	rb   rl   r’   Úcontainsr¡   r   r   rœ   r�   )	Úinstalled_distr�   r–   r”   Úincompatible_idsr    rm   Ú	specifierr›   s	      €€€€€€rN   Ú_get_installed_candidateÚ@Factory._iter_found_candidates.<locals>._get_installed_candidate  sº   ø€ ð ×$×$ØðØ!%×!6Ñ!6°tÑ!<�ðRð !×)Ñ)¨.×*@Ñ*@ÈdÐ)ÖSØð Tð
 ×6Ñ6Ø#ØØ!ð 7ð ˆIô �)‹}Ð 0Ó0ØØÐøô' ó Ùðûô "ó RÜ-°>ÑQÐQûðRús(   •A) ¥A9 Á)
A6Á5A6Á9
BÂ	BÂBc            
   3  ó¢  >#   • T
R                   R                  T	TTS9n U R                  n[        S U 5       5      nSS jnU" T5      n[	        U5       Hu  nU(       a  U(       d  UR
                  R                  (       a  M.  [        R                  " T
R                  UR
                  TTT	UR                  S9nUR                  U4v •  Mw     g 7f)N)Úproject_namer´   Úhashesc              3  óL   #   • U  H  oR                   R                  v •  M     g 7fr{   )rƒ   Ú	is_yanked)rŒ   Úicans     rN   rŽ   ÚUFactory._iter_found_candidates.<locals>.iter_index_candidate_infos.<locals>.<genexpr>B  s   é € ÐCºU°TŸY™Y×0Ö0ºUùs   ‚"$c                ó¢   • U  HI  nUR                   S:X  a    gUR                   S:w  a  M'  UR                  R                  S5      (       a  MI    g   g)Nz===Tú==z.*F)Úoperatorr¡   Úendswith)r´   Úsps     rN   Ú	is_pinnedÚUFactory._iter_found_candidates.<locals>.iter_index_candidate_infos.<locals>.is_pinnedD  sJ   € Û#�BØ—{‘{ eÓ+Ù#Ø—{‘{ dÓ*Ù Ø—z‘z×*Ñ*¨4×0Ñ0Ù Ùñ $ð rM   )rƒ   r”   r›   r    r¡   )r´   r   ÚreturnÚbool)r\   Úfind_best_candidateÚapplicable_candidatesÚallÚreversedrƒ   r»   Ú	functoolsÚpartialr¢   r¡   )ÚresultÚicansÚ
all_yankedrÃ   Úpinnedr¼   Úfuncr”   r¹   r    rm   r´   r›   s          €€€€€€rN   Úiter_index_candidate_infosÚBFactory._iter_found_candidates.<locals>.iter_index_candidate_infos7  s½   øé € Ø—\‘\×5Ñ5Ø!Ø#Øð 6ð ˆFð
 ×0Ñ0ˆEô
 ÑC¹UÓCÓCˆJô	ñ ˜yÓ)ˆFô ! ž�Þ"¦v°4·9±9×3F×3FÙÜ ×(Ò(Ø×2Ñ2ØŸ™Ø!Ø%ØØ ŸL™Lñ�ð —l‘l DÐ(Ô(ò (ùs   ƒCC)rÅ   úCandidate | None)rÅ   zIterator[IndexCandidateInfo])ÚreqÚhash_optionsÚanyÚvaluesÚcopyÚitemsÚlistr   r    r‘   r´   r¹   r”   r9   )rm   Úireqsr´   r¹   Úprefers_installedr³   Úconstraint_hash_optionsÚkÚvÚireqrµ   rÒ   r”   r    r›   s   ` `` `      @@@rN   Ú_iter_found_candidatesÚFactory._iter_found_candidatesõ   sA  þ€ ö Øð ˜‘8ˆØ�|�|ÐHÐHÓHˆ|æ#Ø×)×)ÜÐ+×2Ñ2Ó4×5Ñ5ä—y’y Ó*ˆHà'>×'DÑ'DÔ'Fô%Ú'F™t˜q�”4˜“7’
Ñ'Fò%ˆHÔ!ð �|�|Ðˆ|Ü  §¡×!2Ñ!2Ó3ˆä!*£ˆÛˆDØ—8—8ÐHÐHÓH�8Ø˜Ÿ™×+Ñ+Ñ+ˆIØ�d—k‘k°�kÐ7Ñ7ˆFØ”i §¡Ó,Ñ,ŠFñ	 ÷	ô 	÷:&	)ô &	)ôP Ø&Ù$Ó&ØØó	
ð 	
ùóe%s   ÂE:c              #  óœ   #   • U HB  nUR                  5       u  pEUc  M  [        U5      nUc   S5       eU R                  Xb5      v •  MD     g7f)a  Produce explicit candidates from the base given an extra-ed package.

:param base_requirements: Requirements known to the resolver. The
    requirements are guaranteed to not have extras.
:param extras: The extras to inject into the explicit requirements'
    candidates.
Nzno extras here)Úget_candidate_lookupr8   r—   )rm   Úbase_requirementsr”   rÕ   Úlookup_candÚ_Ú	base_cands          rN   Ú#_iter_explicit_candidates_from_baseÚ+Factory._iter_explicit_candidates_from_basef  sY   é € ó %ˆCØ ×5Ñ5Ó7‰NˆKØÑ"Ùô *¨+Ó6ˆIØÑ(Ð:Ð*:Ó:Ð(Ø×-Ñ-¨iÓ@Ô@ò %ùs   ‚A
Ac              #  óð  #   • [        5       nUn[        R                  " [        5         [	        U5      nUR
                  U:w  a*  [        UR
                  5      n[        UR                  5      nSSS5        UR                   H]  nU R                  U5        U R                  U[        Xs5      [        U5      SS9nUc  M=  U(       a  U R                  X„5      v •  MY  Uv •  M_     g! , (       d  f       N|= f7f)z¾Produce explicit candidates from constraints.

This creates "fake" InstallRequirement objects that are basically clones
of what "should" be the template, but with original_link set to link.
N©r›   r    r¡   )r‘   Ú
contextlibÚsuppressr   r,   r    r   r”   Úlinksr†   rŸ   r&   r—   )	rm   Ú
identifierÚ
constraintr›   r”   Úbase_identifierÚparsed_requirementrƒ   Úbase_candidates	            rN   Ú!_iter_candidates_from_constraintsÚ)Factory._iter_candidates_from_constraints|  sÛ   é € ô "+£ˆØ$ˆÜ× Ò Ô!3Õ4Ü!0°Ó!<ÐØ!×&Ñ&¨*Ó4Ü"3Ð4F×4KÑ4KÓ"L�Ü"Ð#5×#<Ñ#<Ó=�÷	 5ð ×$Ô$ˆDØ×3Ñ3°DÔ9Ø!×@Ñ@ØÜ7¸ÓGÜ& Ó7Øð	 Að ˆNð Ñ%ÙÞØ×1Ñ1°.ÓIÔIà$Ô$ò %÷ 5Õ4üs   ‚'C6©AC%Á/A6C6Ã%
C3Ã/C6c           	     óò  ^^^^^• [        5       n/ nTT    H?  n	U	R                  5       u  p«U
b  UR                  U
5        Uc  M.  UR                  U5        MA     [        R
                  " [        5         [        T5      nUR                  T:w  a™  UR                  U R                  TR                  UR                  S5      [        UR                  5      5      5        TR                  UR                  / 5       H+  n	U	R                  5       u  pÛUc  M  UR                  U5        M-     S S S 5        U(       a$   UR                  U R                  TTUS   S95        UR                  TS5       Vs1 s H  n[!        U5      iM     snmU(       d4  U R#                  UTR$                  TR&                  UTTR(                  5      $ UUUUU4S jU 5       $ ! , (       d  f       N°= f! [         a     gf = fs  snf )NrE   r   )r›   c              3  ó¼   >^#   • U  HP  m[        T5      T;  d  M  TR                  T5      (       d  M,  [        UU4S  jTT    5       5      (       d  ML  Tv •  MR     g7f)c              3  ó6   >#   • U  H  nT" UT5      v •  M     g 7fr{   rE   )rŒ   rÕ   ÚcÚis_satisfied_bys     €€rN   rŽ   Ú4Factory.find_candidates.<locals>.<genexpr>.<genexpr>è  s   øé € ÐPÒ7O°‘O C¨×+Ð+Ò7Oùs   ƒN)r�   rü   rÉ   )rŒ   rû   rò   rñ   Úincompat_idsrü   rS   s    @€€€€€rN   rŽ   Ú*Factory.find_candidates.<locals>.<genexpr>ã  sU   ùé € ð 
â(�Ü�!‹u˜LÑ(ó ð ×*Ñ*¨1×-ó ô ÕP°|ÀJÒ7OÓP×P÷	 ‰AÚ(ùs   „A›A³AÁ	A)Úsetrå   ÚaddÚappendrî   rï   r   r,   r    Úupdaterê   Úgetr‘   r”   rö   r   r�   râ   r´   r¹   rÖ   )rm   rñ   rS   Úincompatibilitiesrò   rÝ   rü   Úexplicit_candidatesrÜ   rÕ   Úcandrá   rô   rè   rû   rþ   s    `` ` `        @rN   Úfind_candidatesÚFactory.find_candidatesž  sã  ü€ ô /2«eÐØ*,ˆØ 
Ô+ˆCØ×1Ñ1Ó3‰JˆDØÑØ#×'Ñ'¨Ô-ØÓØ—‘˜TÖ"ñ ,ô × Ò Ô!3Õ4Ü!0°Ó!<ÐØ!×&Ñ&¨*Ó4Ø#×*Ñ*Ø×<Ñ<Ø$×(Ñ(Ð);×)@Ñ)@À"ÓEÜ!Ð"4×";Ñ";Ó<óôð (×+Ñ+Ð,>×,CÑ,CÀRÖH�CØ!×6Ñ6Ó8‘G�AØÓ'ØŸ™ TÖ*ñ I÷ 5ö$ ðØ#×*Ñ*Ø×:Ñ:Ø"Ø"Ø!& q¡ð ;ð ôð (9×'<Ñ'<¸ZÈÔ'LÓMÒ'L !œ˜1žÑ'LÑMˆö #Ø×.Ñ.ØØ×$Ñ$Ø×!Ñ!Ø!ØØ×'Ñ'óð ÷
ð 
á(ó
ð 	
÷a 5Õ4ûô6 $ó ñ ðüò Ns+   Á4BGÄGÄ9#G$ Å0G4Ç
G!Ç$
G1Ç0G1c              #  óž  #   • UR                  U5      (       d,  [        R                  SUR                  UR                  5        gUR
                  (       dT  UR                  (       a5  UR                  b(  UR                  R                  (       a  [        U5      v •  [        U5      v •  gU R                  UR
                  5        U R                  UR
                  UR                  (       a  [        U5      OUUR                  (       a  [        UR                  5      OSSS9nUcK  UR                  (       d  U R                  UR
                     e[!        [        UR                  5      5      v •  gU R#                  U5      v •  UR                  (       a7  U R#                  U R%                  U['        UR                  5      5      5      v •  gg7f)a  
Returns requirement objects associated with the given InstallRequirement. In
most cases this will be a single object but the following special cases exist:
    - the InstallRequirement has markers that do not apply -> result is empty
    - the InstallRequirement has both a constraint (or link) and extras
        -> result is split in two requirement objects: one with the constraint
        (or link) and one with the extra. This allows centralized constraint
        handling for the base, resulting in fewer candidate rejections.
z6Ignoring %s: markers '%s' don't match your environmentNrí   )Úmatch_markersr¨   r©   r    Úmarkersrƒ   r”   rÕ   r´   r>   r=   r†   rŸ   r%   r   rd   r?   Úmake_requirement_from_candidater—   r‘   )rm   rá   Úrequested_extrasr  s       rN   Ú#_make_requirements_from_install_reqÚ+Factory._make_requirements_from_install_reqë  sO  é € ð ×!Ñ!Ð"2×3Ñ3Ü�K‰KØHØ—	‘	Ø—‘õð
 ——Ø�{�{˜tŸx™xÑ3¸¿¹×8J×8JÜ7¸Ó=Ò=Ü& tÓ,Ó,à×3Ñ3°D·I±IÔ>ð
 ×6Ñ6Ø—	‘	Ø:>¿+¿+Ô0°Ô6È4Ø59·Y·YÔ& t§y¡yÔ1ÀDØð	 7ð ˆDð ‰|ð —y—yØ×.Ñ.¨t¯y©yÑ9Ð9Ü.Ô/@ÀÇÁÓ/KÓLÓLð ×:Ñ:¸4Ó@Ò@Ø—;—;à×>Ñ>Ø×3Ñ3°D¼)ÀDÇKÁKÓ:PÓQóó ð ùs   ‚GGc                ó  • [        / 0 0 5      n[        U5       GHJ  u  p4UR                  (       a®  [        U5      nU(       a  [	        U5      eUR                  5       (       d  MK  UR                  (       d   S5       e[        UR                  5      nXbR                  ;   a  UR                  U==   U-  ss'   M   [        R                  " U5      UR                  U'   MÅ  [        U R                  USS95      nU(       d  Mç  US   nUR                  (       a2  UR                  UR                  ;  a  X2R                  UR                  '   UR                  R!                  U5        GMM     UR                  R#                  S S9  U$ )NzConstraint must be namedrE   )r  r   c                ó4   • U R                   U R                  :g  $ r{   )r    r¸   )Úrs    rN   Ú<lambda>Ú3Factory.collect_root_requirements.<locals>.<lambda>G  s   € °!·&±&¸A¿N¹NÒ2JrM   )Úkey)rQ   Ú	enumeraterò   r(   r   r  r    r   rU   r0   Ú	from_ireqrÛ   r  Úuser_suppliedrV   rS   ÚextendÚsort)	rm   Ú
root_ireqsÚ	collectedÚirá   Úproblemr    Úreqsr›   s	            rN   Úcollect_root_requirementsÚ!Factory.collect_root_requirements   sF  € ô .¨b°"°bÓ9ˆ	Ü  ×,‰GˆAØ��ä7¸Ó=�ÞÜ+¨GÓ4Ð4Ø×)Ñ)×+Ñ+ÙØ—y—yÐ<Ð"<Ó<�yÜ(¨¯©Ó3�Ø×0Ñ0Ó0Ø×)Ñ)¨$Ó/°4Ñ7Õ/ä2<×2FÒ2FÀtÓ2L�I×)Ñ)¨$Ó/äØ×<Ñ<ØØ)+ð =ð ó�ö ÙØ ™7�Ø×%×%¨(¯-©-¸y×?WÑ?WÓ*WØ>?×,Ñ,¨X¯]©]Ñ;Ø×&Ñ&×-Ñ-¨d×3ñ5 -ðF 	×Ñ×#Ñ#Ñ(JÐ#ÑKØÐrM   c                ó   • [        U5      $ r{   )r;   )rm   r–   s     rN   r  Ú'Factory.make_requirement_from_candidateJ  s   € ô # 9Ó-Ð-rM   c                óF   • U R                  X5      nU R                  XC5      $ )aè  
Returns requirement objects associated with the given specifier. In most cases
this will be a single object but the following special cases exist:
    - the specifier has markers that do not apply -> result is empty
    - the specifier has both a constraint and extras -> result is split
        in two requirement objects: one with the constraint and one with the
        extra. This allows centralized constraint handling for the base,
        resulting in fewer candidate rejections.
)r`   r  )rm   r´   r‰   r  rá   s        rN   Úmake_requirements_from_specÚ#Factory.make_requirements_from_specO  s%   € ð ×/Ñ/°	ÓFˆØ×7Ñ7¸ÓOÐOrM   c                ór   • U R                   (       a  g [        U5      (       d  g [        XR                  5      $ r{   )rc   rª   r<   r_   )rm   r´   s     rN   Ú make_requires_python_requirementÚ(Factory.make_requires_python_requirementa  s-   € ð ×'×'Øä�9�~‰~ØÜ(¨×4JÑ4JÓKÐKrM   c                óh   • U R                   c  gU R                   R                  UUU R                  S9$ )ag  Look up the link in the wheel cache.

If ``preparer.require_hashes`` is True, don't use the wheel cache,
because cached wheels, always built locally, have different hashes
than the files downloaded from the index server and thus throw false
hash mismatches. Furthermore, cached wheels at present have
nondeterministic contents due to file modification times.
N)rƒ   Úpackage_nameÚsupported_tags)r^   Úget_cache_entryri   )rm   rƒ   r    s      rN   Úget_wheel_cache_entryÚFactory.get_wheel_cache_entryl  s@   € ð ×ÑÑ$ØØ× Ñ ×0Ñ0ØØØ×5Ñ5ð 1ð 
ð 	
rM   c                ó0  • U R                   R                  UR                  5      nUc  g U R                  (       d  U$ UR                  (       a  U$ [        5       (       a8  UR                  (       a'  SUR                   SUR                   3n[        U5      eg )NzNWill not install to the user site because it will lack sys.path precedence to z in )
rl   r  r¸   ra   Úin_usersiter-   Úin_site_packagesÚraw_nameÚlocationr   )rm   r–   rw   Úmessages       rN   Úget_dist_to_uninstallÚFactory.get_dist_to_uninstall}  sŒ   € à×$Ñ$×(Ñ(¨×)?Ñ)?Ó@ˆØ‰<Øð
 ×"×"ØˆKð ××ØˆKô $×%Ñ%¨$×*?×*?ð*Ø*.¯-©-¨¸¸T¿]¹]¸OðMð ô $ GÓ,Ð,ØrM   c                óÊ  • U(       d   S5       eU R                   R                  n[        U5      S:X  aQ  [        US   R                  R
                  5      nSUS   R                  R                  < SU SU< 3n[        U5      $ SU S3nU HI  nUR                  R                  5       n[        UR                  R
                  5      nUS	U< S
U S3-  nMK     [        U5      $ )Nz,Requires-Python error reported with no causer.   r   zPackage z requires a different Python: z not in z%Packages require a different Python. z not in:Ú
z (required by Ú))
r_   r¡   Úlenrª   rC   r´   rD   r    r   Úformat_for_error)rm   Úcausesr¡   r´   r6  ÚcauseÚpackages          rN   Ú_report_requires_python_errorÚ%Factory._report_requires_python_error™  sî   € ö ÐEÐEÓEˆvà×(Ñ(×0Ñ0ˆäˆv‹;˜!ÓÜ˜F 1™I×1Ñ1×;Ñ;Ó<ˆIà˜6 !™9×+Ñ+×0Ñ0Ñ3ð 4Ø"˜) 8¨I©=ð:ð ô ,¨GÓ4Ð4à9¸'¸À(ÐKˆÛˆEØ—l‘l×3Ñ3Ó5ˆGÜ˜E×-Ñ-×7Ñ7Ó8ˆIØ˜˜I™=¨°w°i¸qÐAÑAŠGñ ô (¨Ó0Ð0rM   c                óú  • Uc  [        U5      nOU SUR                   S3nU R                  R                  UR                  5      nU R                  R                  5       n[        5       n[        5       nU Hk  nUR                  (       a  UR                  R                  OSn	U	(       a  UR                  UR                  5        MP  UR                  UR                  5        Mm     [        U5       V
s/ s H  n
[        U
5      PM     nn
[        U5       V
s/ s H  n
[        U
5      PM     nn
U(       a.  [        R                  SSR                  U5      =(       d    S5        U(       a.  [        R                  SSR                  U5      =(       d    S5        S	nS nU R                  R                  b?  U R                  R                  R!                  [#        UR                  5      5      nUSL a  S
n[%        U5      S:X  a�  US   R&                  (       a|  US   R                  R(                  (       a7  USL a2  [        R                  SUS   R                  US   R                  5        OW[        R                  SUSR                  U5      5        O0[        R                  SUUSR                  U5      =(       d    S5        [        U5      S:X  a  [        R+                  S5        [-        SU 35      $ s  sn
f s  sn
f )Nz (from r;  Fz)Ignored the following yanked versions: %sú, ÚnonezJIgnored the following versions that require a different python version: %sz; r¡   zfinal versionr.   r   zhA pre-release version %s is specified in a provided lock file for %s but only final versions are allowedzVThe requirement %s is not compatible with version %s specified in a provided lock filezICould not find a %s that satisfies the requirement %s (from versions: %s)zrequirements.txtz¶HINT: You are attempting to install a package literally named "requirements.txt" (which cannot exist). Consider using the '-r' flag to install the packages listed in requirements.txtz#No matching distribution found for )rª   r    r\   Úfind_all_candidatesr¸   Úrequires_python_skipped_reasonsr   rƒ   r»   r  r¡   Úsortedr¨   ÚcriticalÚjoinÚrelease_controlÚallows_prereleasesr   r<  ÚlockedÚis_prereleaser©   r   )rm   rÕ   rD   Úreq_dispÚcandsÚskipped_by_requires_pythonÚversions_setÚyanked_versions_setrû   r»   rà   ÚversionsÚyanked_versionsÚversion_typeÚ
allows_pres                  rN   Ú#_report_single_requirement_conflictÚ+Factory._report_single_requirement_conflict¯  ss  € ð ‰>Ü˜3“x‰Hà˜˜g f§k¡k ]°!Ð4ˆHà—‘×0Ñ0°×1AÑ1AÓBˆØ%)§\¡\×%QÑ%QÓ%SÐ"ä%(£UˆÜ,/«EÐÛˆAØ,-¯F¯F˜Ÿ™×(Ò(¸ˆIÞØ#×'Ñ'¨¯	©	Ö2à× Ñ  §¡Ö+ñ ô %+¨<Ô$8Ó9Ò$8˜q”C˜–FÑ$8ˆÐ9Ü+1Ð2EÔ+FÓGÒ+F aœ3˜qž6Ñ+FˆÐGæô �O‰OØ;Ø—	‘	˜/Ó*×4¨fôö &Ü�O‰Oðà—	‘	Ð4Ó5×?¸ôð !ˆØˆ
Ø�<‰<×'Ñ'Ñ3ØŸ™×5Ñ5×HÑHÜ! #×"2Ñ"2Ó3óˆJð ˜UÒ"Ø.�äˆu‹:˜‹?˜u Q™xŸŸð �Q‰x×Ñ×-×-°*ÀÒ2EÜ—‘ðAà˜!‘H×$Ñ$Ø˜!‘H—M‘Mõ	ô —‘ðCàØ—I‘I˜hÓ'õ	ô �O‰Oð&àØØ—	‘	˜(Ó#×- vôô ˆs‹8Ð)Ó)Ü�K‰Kð#ôô $Ð&IÈ#ÈÐ$OÓPÐPùò{ :ùÚGs   Ã3K3ÄK8c                óh   • [        U R                  UU/ 00 [        R                  " 5       SS S95      $ )zC
Check if there are any candidates available for the project name.
Tc                ó   • g)NTrE   )r  rû   s     rN   r  Ú-Factory._has_any_candidates.<locals>.<lambda>  s   € ¨TrM   )rS   r  rò   rÝ   rü   )r×   r  r0   Úempty)rm   r¸   s     rN   Ú_has_any_candidatesÚFactory._has_any_candidates  sD   € ô Ø× Ñ ØØ*¨BÐ/Ø"$Ü%×+Ò+Ó-Ø"&Ù 1ð !ð ó	
ð 		
rM   c                ó  • UR                   (       d   S5       eUR                    Vs/ s HR  n[        UR                  [        5      (       d  M$  UR                  R	                  U R
                  5      (       a  MP  UPMT     nnU(       a  U R                  [        SU5      5      $ [        UR                   5      S:X  aA  [        [        UR                   5      5      u  pVUR                  U;  a  U R                  XV5      $ SS jnSS jn[        5       n	UR                    H2  u  pVUc  UR                  5       n
OU" U5      n
U	R                  U
5        M4     U	(       a  U" [!        U	5      5      nOSnSU S3n["        R%                  U5        S	n[        5       nUR                    Hr  u  pVUR                  U;   a  UR                  UR                  5        US
-   nU(       a  XÆR                   SUR&                   S3-   nOUS-   nXÅR                  5       -   nMt     U H!  nU X.   R                  5        3nUSU 3-  nM#     [        5       nUR                    H!  u  nnUR                  UR                  5        M#     U Vs1 s H  nU R)                  U5      (       a  M  UiM     nnU(       a)  US-   S-   S-   S
-   S
R+                  [!        U5      5      -   nUS-   S-   S-   S-   S-   n["        R-                  U5        [/        S5      $ s  snf s  snf )Nz)Installation error reported with no causeúSequence[ConflictCause]r.   c                ód   • [        U 5      S:X  a  U S   $ SR                  U S S 5      S-   U S   -   $ )Nr.   r   rD  éÿÿÿÿz and )r<  rJ  )Úpartss    rN   Ú	text_joinÚ1Factory.get_installation_error.<locals>.text_join5  s9   € Ü�5‹z˜Q‹Ø˜Q‘x�à—9‘9˜U 3 B˜ZÓ(¨7Ñ2°U¸2±YÑ>Ð>rM   c                ó.  • U R                  5       nU(       a  UR                  (       d  U R                   SU R                   3$ [	        UR                  [
        5      (       a  [        UR                  R                  5      $ [        UR                  5      $ )Nr¿   )Úget_install_requirementr‰   r    r¡   Ú
isinstancer'   rª   )rD   rá   s     rN   Údescribe_triggerÚ8Factory.get_installation_error.<locals>.describe_trigger;  si   € Ø×1Ñ1Ó3ˆDÞ˜tŸŸØ Ÿ+™+˜ b¨¯©Ð(8Ð9Ð9Ü˜$Ÿ/™/Ô+=×>Ñ>Ü˜4Ÿ?™?×/Ñ/Ó0Ð0Ü�t—‘Ó'Ð'rM   zthe requested packageszCannot install z> because these package versions have conflicting dependencies.z
The conflict is caused by:z
    Ú z depends on zThe user requested z%
    The user requested (constraint) z

z7Additionally, some packages in these conflicts have no z6matching distributions available for your environment:zTo fix this you could try to:
z91. loosen the range of package versions you've specified
z<2. remove package versions to allow pip to attempt to solve zthe dependency conflict
z‚ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts)rd  z	list[str]rÅ   rª   )rD   r/   rÅ   rª   )r>  ri  rC   r<   rü   r_   rA  r   r<  ÚnextÚiterr    rX  r   r=  r  rH  r¨   rI  r¡   r^  rJ  r©   r   )rm   r�   rU   r?  Úrequires_python_causesrÕ   rD   re  rj  ÚtriggersÚtriggerr©   r…   Úrelevant_constraintsr  Úconstraint_textr>  rè   rû   Úno_candidatess                       rN   Úget_installation_errorÚFactory.get_installation_error  s  € ð
 �x�xÐDÐDÓDˆxð Ÿšó"
â!�Ü˜%×+Ñ+Ô-F×Gó ð ×%Ñ%×5Ñ5°d×6LÑ6L×M÷ Ù!ð 	ð "
ö "ð ×5Ñ5ÜÐ.Ð0FÓGóð ô ˆq�x‰x‹=˜AÓÜœt A§H¡H›~Ó.‰KˆCØ�x‰x˜{Ó*Ø×?Ñ?ÀÓLÐLô	?ô	(ô “5ˆØŸ8œ8‰KˆCØ‰~à×.Ñ.Ó0‘á*¨6Ó2�Ø�L‰L˜Ö!ñ $ö ÙœV HÓ-Ó.‰Dà+ˆDð ˜d˜Vð $-ð -ð 	ô 	�‰˜ÔØ,ˆä"›uÐØŸ8œ8‰KˆCØ�x‰x˜;Ó&Ø$×(Ñ(¨¯©Ô2Ø˜‘.ˆCÞØŸ{™{˜m¨1¨V¯^©^Ð,<¸LÐIÑI‘àÐ1Ñ1�Ø×,Ñ,Ó.Ñ.ŠCñ $ó (ˆCØ!$  kÑ&6×&GÑ&GÓ&IÐ%JÐKˆOØÐ;¸OÐ;LÐMÑMŠCñ (ô
 “ˆØ—h”h‰FˆC�Ø�J‰J�s—x‘xÖ ñ ñ %+ÓN¢F˜q°$×2JÑ2JÈ1×2MŸ¡FˆÐNÞàØñàKñLð KñKð ñ	ð
 —-‘-¤ }Ó 5Ó6ñ7ð ð Øñà/ñ0ð KñKð Mñ	Mð
 *ñ*ð 	ô 	�‰�CÔä#ð1ó
ð 	
ùòO"
ùòb Os   §#LÁ(LÁ:LÉ>L
ÊL
)rd   rf   rh   r\   rb   rc   rg   rl   re   r`   r_   ri   ra   r^   r]   r{   )rn   r   r]   r$   ro   r)   rp   zWheelCache | Nonerq   rÆ   rr   rÆ   rs   rÆ   rt   rÆ   ru   ztuple[int, ...] | NonerÅ   ÚNone)rÅ   rÆ   )rƒ   r"   rÅ   rw  )r“   r3   r”   úfrozenset[str]r‰   úInstallRequirement | NonerÅ   r5   )rw   r    r”   rx  r›   r'   rÅ   r/   )rƒ   r"   r”   rx  r›   r'   r    úNormalizedName | Noner¡   úVersion | NonerÅ   rÔ   )
rƒ   r"   r›   r'   r    rz  r¡   r{  rÅ   zBaseCandidate | None)rÜ   zSequence[InstallRequirement]r´   r   r¹   r+   rÝ   rÆ   r³   zset[int]rÞ   zdict[str, list[str]] | NonerÅ   úIterable[Candidate])ræ   zIterable[Requirement]r”   rx  rÅ   úIterator[Candidate])rñ   rª   rò   r0   r›   r'   rÅ   r}  )rñ   rª   rS   z#Mapping[str, Iterable[Requirement]]r  z!Mapping[str, Iterator[Candidate]]rò   r0   rÝ   rÆ   rü   z(Callable[[Requirement, Candidate], bool]rÅ   r|  )rá   r'   r  úIterable[str]rÅ   úIterator[Requirement])r  zlist[InstallRequirement]rÅ   rQ   )r–   r/   rÅ   r;   )rE   )r´   rª   r‰   ry  r  r~  rÅ   r  )r´   r   rÅ   zRequirement | None)rƒ   r"   r    z
str | NonerÅ   zCacheEntry | None)r–   r/   rÅ   zBaseDistribution | None)r>  ra  rÅ   r   )rÕ   r1   rD   rÔ   rÅ   r   )r¸   rª   rÅ   rÆ   )r�   z,ResolutionImpossible[Requirement, Candidate]rU   rT   rÅ   r   )rG   rH   rI   rJ   rx   Úpropertyrr   r†   r—   rœ   r¢   rŸ   râ   rê   rö   r  r  r!  r  r&  r)  r/  r7  rA  rX  r^  ru  rL   rE   rM   rN   rX   rX   Z   sh  † ð 37ð%'àð%'ð &ð%'ð 5ð	%'ð
 'ð%'ð ð%'ð ð%'ð ð%'ð !%ð%'ð 0ð%'ð 
õ%'ðN ó%ó ð%ô$ð 15ñàðð ðð
 .ðð 
õðNàðNð ðNð %ð	Nð
 
ôNðNàðNð ðNð %ð	Nð
 $ðNð  ðNð 
ôNð74àð74ð %ð74ð $ð	74ð
  ð74ð 
ô74ð@ @Dðo
à+ðo
ð  ðo
ð ð	o
ð
  ðo
ð #ðo
ð "=ðo
ð 
õo
ðbAà0ðAð ðAð 
ô	Að, %àð %ð ð %ð %ð	 %ð
 
ô %ðDK
àðK
ð :ðK
ð =ð	K
ð
 ðK
ð  ðK
ð BðK
ð 
ôK
ðZ3Ø&ð3Ø:Gð3à	ô3ðj(Ø2ð(à	"ô(ðT.Ø"ð.à	ô.ð +-ð	PàðPð .ðPð (ð	Pð
 
õPð$	Làð	Lð 
ô	Lô
ô"ð81Ø-ð1à	!ô1ð,QQØðQQØ(8ðQQà	ôQQôf
ðt
à7ðt
ð +ðt
ð 
÷	t
rM   rX   )dÚ
__future__r   rî   rÙ   rË   ÚloggingÚcollections.abcr   r   r   r   r   Útypingr	   r
   r   r   r   Ú"pip._vendor.packaging.requirementsr   Ú pip._vendor.packaging.specifiersr   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   r   Úpip._vendor.resolvelibr   Úpip._vendor.rich.markupr   Úpip._internal.cacher   r   Úpip._internal.exceptionsr   r   r   r   r   r   r   Ú"pip._internal.index.package_finderr   Úpip._internal.metadatar    r!   Úpip._internal.models.linkr"   Úpip._internal.models.wheelr#   Ú pip._internal.operations.preparer$   Úpip._internal.req.constructorsr%   r&   Úpip._internal.req.req_installr'   r(   Úpip._internal.resolution.baser)   Ú&pip._internal.utils.compatibility_tagsr*   Úpip._internal.utils.hashesr+   Úpip._internal.utils.packagingr,   Úpip._internal.utils.virtualenvr-   r“   r/   r0   r1   Ú
candidatesr2   r3   r4   r5   r6   r7   r8   Úfound_candidatesr9   r:   rS   r;   r<   r=   r>   r?   rA   Ú	getLoggerrG   r¨   rO   ÚdictÚCacherQ   rX   rE   rM   rN   Ú<module>rž     sî   ðÝ "ã Û Û Û ß KÕ K÷õ õ BÝ 9ß Iß AÝ 7Ý *ç 6÷÷ ñ õ =ß LÝ *Ý ,Ý @÷÷õ EÝ @Ý -Ý 9Ý Cç 4Ñ 4÷÷ ñ ÷ B÷õ ö ô˜ô ð
 
×	Ò	˜8Ó	$€áˆCƒL€ØˆT�1ˆW‰€ô# 
ô #÷k
ò k
rM   