Ë
    ”U.j  ã                  óÔ  — d Z ddlmZ ddl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mZ dd	lmZ dd
lmZ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!  ejD                  e#«      Z$ G d„ de«      Z%e&ee%f   Z'e(eef   Z)e(eeef   Z*e&ee+e)   f   Z,e&ee+e*   f   Z-e(e,e-f   Z.e(e'e.f   Z/dd„Z0	 d	 	 	 	 	 dd„Z1dd„Z2	 	 	 	 	 	 dd„Z3	 	 	 	 	 	 dd„Z4	 	 	 	 	 	 dd„Z5y) z&Validation of dependencies of packagesé    )ÚannotationsN)Ú	GeneratorÚIterable)Úsuppress)ÚParser)Úreduce)ÚCallableÚ
NamedTuple)ÚRequirement)ÚTagÚ	parse_tag)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú)make_distribution_for_install_requirement)Úget_default_environment)ÚBaseDistribution)ÚInstallRequirementc                  ó"   — e Zd ZU ded<   ded<   y)ÚPackageDetailsr   Úversionzlist[Requirement]ÚdependenciesN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú`C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/operations/check.pyr   r      s   … ØÓØ#Ô#r   r   c                 ó>  — i } d}t        «       }|j                  dd¬«      D ]A  }|j                  }	 t        |j	                  «       «      }t        |j                  |«      | |<   ŒC | |fS # t        t        f$ r#}t        j                  d||«       d}Y d}~Œud}~ww xY w)z3Converts a list of distributions into a PackageSet.Fr   )Ú
local_onlyÚskipz$Error parsing dependencies of %s: %sTN)r   Úiter_installed_distributionsÚcanonical_nameÚlistÚiter_dependenciesr   r   ÚOSErrorÚ
ValueErrorÚloggerÚwarning)Úpackage_setÚproblemsÚenvÚdistÚnamer   Úes          r   Ú!create_package_set_from_installedr1   ,   s¡   € à€KØ€HÜ
!Ó
#€CØ×0Ñ0¸EÈÐ0ÖKˆØ×"Ñ"ˆð	Ü × 6Ñ 6Ó 8Ó9ˆLÜ .¨t¯|©|¸\Ó JˆK˜Òð	 Lð ˜Ð Ð øô	 œÐ$ò 	ä�N‰NÐAÀ4ÈÔKØ�Hûð	ús   ²2A*Á*BÁ9BÂBc                ó2  — i }i }| j                  «       D ]ý  \  }}t        «       }t        «       }|r	 ||«      rŒ%|j                  D ]�  }t        |j                  «      }	|	| vrAd}
|j
                  �|j
                  j                  ddi«      }
|
r|j                  |	|f«       Œ]| |	   j                  }|j                  j                  |d¬«      rŒŠ|j                  |	||f«       ŒŸ |rt        |t        ¬«      ||<   |sŒêt        |t        ¬«      ||<   Œÿ ||fS )z—Check if a package set is consistent

    If should_ignore is passed, it should be a callable that takes a
    package name and returns a boolean.
    TÚextraÚ )Úprereleases)Úkey)ÚitemsÚsetr   r   r/   ÚmarkerÚevaluateÚaddr   Ú	specifierÚcontainsÚsortedÚstr)r+   Úshould_ignoreÚmissingÚconflictingÚpackage_nameÚpackage_detailÚmissing_depsÚconflicting_depsÚreqr/   Úmissedr   s               r   Úcheck_package_setrI   =   s  € ð €GØ€Kà(3×(9Ñ(9Ö(;Ñ$ˆ�nä%(£UˆÜ-0«UÐá™]¨<Ô8Øà!×.Ô.ˆCÜ$ S§X¡XÓ.ˆDð ˜;Ñ&Ø�Ø—:‘:Ð)Ø ŸZ™Z×0Ñ0°'¸2°Ó?�FÙØ ×$Ñ$ d¨C [Ô1Øð " $Ñ'×/Ñ/ˆGØ—=‘=×)Ñ)¨'¸tÐ)ÕDØ ×$Ñ$ d¨G°SÐ%9Õ:ð /ñ" Ü$*¨<¼SÔ$AˆG�LÑ!ÚÜ(.Ð/?ÄSÔ(IˆK˜Ò%ð9 )<ð< �KÐÐr   c                ór   ‡— t        «       \  }}t        | |«      }t        ||«      Š|t        |ˆfd„¬«      fS )zeFor checking if the dependency graph would be consistent after     installing given requirements
    c                ó   •— | ‰vS ©Nr   )r/   Ú	whitelists    €r   Ú<lambda>z)check_install_conflicts.<locals>.<lambda>y   s
   ø€ °DÀ	Ñ4Ir   )r@   )r1   Ú_simulate_installation_ofÚ_create_whitelistrI   )Ú
to_installr+   Ú_Úwould_be_installedrM   s       @r   Úcheck_install_conflictsrT   j   sJ   ø€ ô
 7Ó8�N€K�ä2°:¸{ÓKÐô "Ð"4°kÓB€Ið 	ÜØÓ'Iô	
ðð r   c              #  ó^  K  — | D ]˜  }t        t        «      5  |j                  d«      }t        t        j
                  t        t        t        «       j                  |«      j                  dg «      «      t	        «       «      }|j                  |«      r|–— d d d «       Œš y # 1 sw Y   Œ¥xY w­w)NÚWHEELr   )r   ÚFileNotFoundErrorÚ	read_textr   Ú	frozensetÚunionÚmapr   r   ÚparsestrÚget_allÚ
isdisjoint)ÚpackagesÚsupported_tagsÚpÚ
wheel_fileÚ
wheel_tagss        r   Úcheck_unsupportedrd   ~   s†   è ø€ ó ˆÜÔ'Õ(ØŸ™ WÓ-ˆJÜ)/Ü—‘Ü”Iœv›x×0Ñ0°Ó<×DÑDÀUÈBÓOÓPÜ“ó*ˆJð
 ×$Ñ$ ^Ô4Ø’÷ )Ð(ñ ß(Ð(üs   ‚B-—A?B!ÂB-Â!B*	Â&B-c                óø   — t        «       }| D ]j  }t        |«      }|j                  «       }|j                  }t	        |j
                  t        |j                  «       «      «      ||<   |j                  |«       Œl |S )z=Computes the version of packages after installing to_install.)	r8   r   Úget_metadata_distributionr$   r   r   r%   r&   r;   )rQ   r+   Ú	installedÚinst_reqÚabstract_distr.   r/   s          r   rO   rO   Ž   sq   € ô
 “€Ió ˆÜAÀ(ÓKˆØ×6Ñ6Ó8ˆØ×"Ñ"ˆÜ*¨4¯<©<¼¸d×>TÑ>TÓ>VÓ9WÓXˆ�DÑà�‰�dÕð ð Ðr   c                ó°   — t        | «      }|D ]E  }||v rŒ||   j                  D ],  }t        |j                  «      |v sŒ|j	                  |«        ŒE ŒG |S rL   )r8   r   r   r/   r;   )rS   r+   Úpackages_affectedrC   rG   s        r   rP   rP   ¡   sf   € ô Ð.Ó/Ðã#ˆØÐ,Ñ,Øà˜|Ñ,×9Ô9ˆCÜ  §¡Ó*Ð.?Ò?Ø!×%Ñ% lÔ3Ùñ :ð	 $ð Ðr   )Úreturnztuple[PackageSet, bool]rL   )r+   Ú
PackageSetr@   zCallable[[str], bool] | Nonerl   ÚCheckResult)rQ   úlist[InstallRequirement]rl   ÚConflictDetails)r_   zIterable[BaseDistribution]r`   zIterable[Tag]rl   z'Generator[BaseDistribution, None, None])rQ   ro   r+   rm   rl   úset[NormalizedName])rS   rq   r+   rm   rl   rq   )6Ú__doc__Ú
__future__r   ÚloggingÚcollections.abcr   r   Ú
contextlibr   Úemail.parserr   Ú	functoolsr   Útypingr	   r
   Ú"pip._vendor.packaging.requirementsr   Úpip._vendor.packaging.tagsr   r   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   Úpip._internal.distributionsr   Úpip._internal.metadatar   Úpip._internal.metadata.baser   Úpip._internal.req.req_installr   Ú	getLoggerr   r)   r   Údictrm   ÚtupleÚMissingÚConflictingr%   ÚMissingDictÚConflictingDictrn   rp   r1   rI   rT   rd   rO   rP   r   r   r   Ú<module>r‰      sU  ðÙ ,å "ã ß /Ý Ý Ý ÷õ
 ;ß 5ß IÝ 1å QÝ :Ý 8Ý <à	ˆ×	Ñ	˜8Ó	$€ô$�Zô $ð �. .Ð0Ñ1€
Ø
� Ð+Ñ
,€Ø�N G¨[Ð8Ñ9€à�> 4¨¡=Ð0Ñ1€Ø�~ t¨KÑ'8Ð8Ñ9€Ø�K Ð0Ñ1€Ø˜
 KÐ/Ñ0€ó!ð$ LPð* Øð* Ø,Hð* àó* óZð(Ø(ðà!ðð -óð Ø(ðØ7Aðàóð&Ø+ðØ:Dðàôr   