§
    è ph  ã            	       ó´  — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZ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j%        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ee)e0f         fd„Z1	 dde)dee	e2ge0f                  de.fd„Z3dee$         de/fd„Z4dee"         dee         dee"ddf         fd„Z5dee$         de)dee         fd„Z6dee         de)dee         fd„Z7dS )z&Validation of dependencies of packagesé    N)Úsuppress)ÚParser)Úreduce)
ÚCallableÚDictÚ	FrozenSetÚ	GeneratorÚIterableÚListÚ
NamedTupleÚOptionalÚSetÚTuple)ÚRequirement)ÚTagÚ	parse_tag)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú)make_distribution_for_install_requirement)Úget_default_environment)ÚBaseDistribution)ÚInstallRequirementc                   ó0   — e Zd ZU eed<   ee         ed<   dS )ÚPackageDetailsÚversionÚdependenciesN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r   © ó    úkC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\pip\_internal\operations\check.pyr   r   !   s/   € € € € € € ØÐÐÑØ�{Ô#Ð#Ð#Ñ#Ð#Ð#r#   r   Úreturnc                  ó\  — i } d}t          ¦   «         }|                     dd¬¦  «        D ]}|j        }	 t          |                     ¦   «         ¦  «        }t          |j        |¦  «        | |<   ŒD# t          t          f$ r(}t           
                    d||¦  «         d}Y d}~Œxd}~ww xY w| |fS )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_installedr7   1   sÏ   € à€KØ€HÝ
!Ñ
#Ô
#€CØ×0Ò0¸EÈÐ0ÑKÔKð ð ˆØÔ"ˆð	Ý × 6Ò 6Ñ 8Ô 8Ñ9Ô9ˆLÝ .¨t¬|¸\Ñ JÔ JˆK˜ÑÐøÝ�Ð$ð 	ð 	ð 	å�NŠNÐAÀ4ÈÑKÔKÐKØˆHˆHˆHˆHˆHˆHøøøøð	øøøð ˜Ð Ð s   ´9A.Á.B'Á?B"Â"B'r1   Úshould_ignorec                 óN  — i }i }|                       ¦   «         D �]\  }}t          ¦   «         }t          ¦   «         }|r ||¦  «        rŒ0|j        D ]š}t          |j        ¦  «        }	|	| vr?d}
|j        �|j                             ddi¦  «        }
|
r|                     |	|f¦  «         ŒY| |	         j        }|j	         
                    |d¬¦  «        s|                     |	||f¦  «         Œ›|rt          |t          ¬¦  «        ||<   |r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.
    TNÚextraÚ )Úprereleases)Úkey)ÚitemsÚsetr   r   r5   ÚmarkerÚevaluateÚaddr   Ú	specifierÚcontainsÚsortedÚstr)r1   r8   ÚmissingÚconflictingÚpackage_nameÚpackage_detailÚmissing_depsÚconflicting_depsÚreqr5   Úmissedr   s               r$   Úcheck_package_setrO   B   sp  € ð €GØ€Kà(3×(9Ò(9Ñ(;Ô(;ð Jñ JÑ$ˆ�nå%(¡U¤UˆÝ-0©U¬UÐàð 	˜]˜]¨<Ñ8Ô8ð 	Øà!Ô.ð 	;ð 	;ˆCÝ$ S¤XÑ.Ô.ˆDð ˜;Ð&ð Ø�Ø”:ð @Ø œZ×0Ò0°'¸2°Ñ?Ô?�FØð 2Ø ×$Ò$ d¨C [Ñ1Ô1Ð1Øð " $Ô'Ô/ˆGØ”=×)Ò)¨'¸tÐ)ÑDÔDð ;Ø ×$Ò$ d¨G°SÐ%9Ñ:Ô:Ð:øàð 	BÝ$*¨<½SÐ$AÑ$AÔ$AˆG�LÑ!Øð 	JÝ(.Ð/?ÅSÐ(IÑ(IÔ(IˆK˜Ñ%ùà�KÐÐr#   Ú
to_installc                 ó’   ‡— 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"   )r5   Ú	whitelists    €r$   ú<lambda>z)check_install_conflicts.<locals>.<lambda>~   s   ø€ °DÀ	Ð4I€ r#   )r8   )r7   Ú_simulate_installation_ofÚ_create_whitelistrO   )rP   r1   Ú_Úwould_be_installedrT   s       @r$   Úcheck_install_conflictsrZ   o   sf   ø€ õ
 7Ñ8Ô8�N€K�å2°:¸{ÑKÔKÐõ "Ð"4°kÑBÔB€Ið 	ÝØÐ'IÐ'IÐ'IÐ'Ið	
ñ 	
ô 	
ðð r#   ÚpackagesÚsupported_tagsc              #   ó¢  K  — | D ]É}t          t          ¦  «        5  |                     d¦  «        }t          t          j        t          t          t          ¦   «          	                    |¦  «         
                    dg ¦  «        ¦  «        t	          ¦   «         ¦  «        }|                     |¦  «        r|V — d d d ¦  «         n# 1 swxY w Y   ŒÊd S )NÚWHEELr   )r   ÚFileNotFoundErrorÚ	read_textr   Ú	frozensetÚunionÚmapr   r   ÚparsestrÚget_allÚ
isdisjoint)r[   r\   ÚpÚ
wheel_fileÚ
wheel_tagss        r$   Úcheck_unsupportedrj   ƒ   s  è è € ð ð 	ð 	ˆÝÕ'Ñ(Ô(ð 	ð 	ØŸš WÑ-Ô-ˆJÝ)/Ý”Ý•I�v™xœx×0Ò0°Ñ<Ô<×DÒDÀUÈBÑOÔOÑPÔPÝ‘”ñ*ô *ˆJð
 ×$Ò$ ^Ñ4Ô4ð Ø���ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð	ð 	s   ›BCÃC	Ã
C	c                 ó  — t          ¦   «         }| D ]x}t          |¦  «        }|                     ¦   «         }|j        }t	          |j        t          |                     ¦   «         ¦  «        ¦  «        ||<   |                     |¦  «         Œy|S )z=Computes the version of packages after installing to_install.)	r?   r   Úget_metadata_distributionr*   r   r   r+   r,   rB   )rP   r1   Ú	installedÚinst_reqÚabstract_distr4   r5   s          r$   rV   rV   “   s‰   € õ
 ‘”€Ið ð ð ˆÝAÀ(ÑKÔKˆØ×6Ò6Ñ8Ô8ˆØÔ"ˆÝ*¨4¬<½¸d×>TÒ>TÑ>VÔ>VÑ9WÔ9WÑXÔXˆ�DÑà�Š�dÑÔÐÐàÐr#   rY   c                 ó²   — t          | ¦  «        }|D ]D}||v rŒ||         j        D ]/}t          |j        ¦  «        |v r|                     |¦  «          nŒ0ŒE|S rS   )r?   r   r   r5   rB   )rY   r1   Úpackages_affectedrI   rM   s        r$   rW   rW   ¦   s‰   € õ Ð.Ñ/Ô/Ðà#ð ð ˆØÐ,Ð,ð 	Øà˜|Ô,Ô9ð 	ð 	ˆCÝ  ¤Ñ*Ô*Ð.?Ð?ð Ø!×%Ò% lÑ3Ô3Ð3Ø�ðøð Ðr#   rS   )8Ú__doc__ÚloggingÚ
contextlibr   Úemail.parserr   Ú	functoolsr   Útypingr   r   r   r	   r
   r   r   r   r   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   Ú
PackageSetÚMissingÚConflictingÚMissingDictÚConflictingDictÚCheckResultÚConflictDetailsÚboolr7   rF   rO   rZ   rj   rV   rW   r"   r#   r$   ú<module>r‰      sd  ðØ ,Ð ,à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 1Ð 1Ð 1Ð 1Ð 1Ð 1à QÐ QÐ QÐ QÐ QÐ QØ :Ð :Ð :Ð :Ð :Ð :Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø <Ð <Ð <Ð <Ð <Ð <à	ˆÔ	˜8Ñ	$Ô	$€ð$ð $ð $ð $ð $�Zñ $ô $ð $ð �. .Ð0Ô1€
Ø
� Ð+Ô
,€Ø�N G¨[Ð8Ô9€à�> 4¨¤=Ð0Ô1€Ø�~ t¨KÔ'8Ð8Ô9€Ø�K Ð0Ô1€Ø˜
 KÐ/Ô0€ð!¨5°¸TÐ1AÔ+Bð !ð !ð !ð !ð$ OSð* ð * Øð* Ø,4°X¸s¸eÀT¸kÔ5JÔ,Kð* àð* ð * ð * ð * ðZ¨Ð-?Ô(@ð À_ð ð ð ð ð(ØÐ'Ô(ðà˜S”Mðð Ð  tÐ+Ô,ðð ð ð ð ØÐ'Ô(ðØ7AðàˆÔðð ð ð ð&Ø˜NÔ+ðØ:DðàˆÔðð ð ð ð ð r#   