§
    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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*d„Z0	 d+d,d„Z1d-d„Z2d.d%„Z3d/d'„Z4d0d)„Z5dS )1z&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<   dS )ÚPackageDetailsr   Úversionzlist[Requirement]ÚdependenciesN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úm/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pip/_internal/operations/check.pyr   r      s*   € € € € € € ØÐÐÑØ#Ð#Ð#Ñ#Ð#Ð#r   r   Úreturnútuple[PackageSet, bool]c                 ó\  — 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_installedr3   ,   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'r-   Ú
PackageSetÚshould_ignoreúCallable[[str], bool] | NoneÚCheckResultc                ó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   r1   ÚmarkerÚevaluateÚaddr   Ú	specifierÚcontainsÚsortedÚstr)r-   r5   ÚmissingÚconflictingÚpackage_nameÚpackage_detailÚmissing_depsÚconflicting_depsÚreqr1   Úmissedr   s               r   Úcheck_package_setrN   =   sk  € ð €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_installúlist[InstallRequirement]ÚConflictDetailsc                ó’   ‡— 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   )r1   Ú	whitelists    €r   ú<lambda>z)check_install_conflicts.<locals>.<lambda>y   s   ø€ °DÀ	Ð4I€ r   )r5   )r3   Ú_simulate_installation_ofÚ_create_whitelistrN   )rO   r-   Ú_Úwould_be_installedrU   s       @r   Úcheck_install_conflictsr[   j   sf   ø€ õ
 7Ñ8Ô8�N€K�å2°:¸{ÑKÔKÐõ "Ð"4°kÑBÔB€Ið 	ÝØÐ'IÐ'IÐ'IÐ'Ið	
ñ 	
ô 	
ðð r   ÚpackagesúIterable[BaseDistribution]Úsupported_tagsúIterable[Tag]ú'Generator[BaseDistribution, None, None]c              #  ó¢  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_unsupportedrn   ~   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	úset[NormalizedName]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(   rA   )rO   r-   Ú	installedÚinst_reqÚabstract_distr0   r1   s          r   rW   rW   Ž   s‰   € õ
 ‘”€Ið ð ð ˆÝAÀ(ÑKÔKˆØ×6Ò6Ñ8Ô8ˆØÔ"ˆÝ*¨4¬<½¸d×>TÒ>TÑ>VÔ>VÑ9WÔ9WÑXÔXˆ�DÑà�Š�dÑÔÐÐàÐr   rZ   c                ó²   — t          | ¦  «        }|D ]D}||v rŒ||         j        D ]/}t          |j        ¦  «        |v r|                     |¦  «          nŒ0ŒE|S rT   )r>   r   r   r1   rA   )rZ   r-   Úpackages_affectedrH   rL   s        r   rX   rX   ¡   s†   € õ Ð.Ñ/Ô/Ðà#ð ð ˆØÐ,Ð,Ð,Øà˜|Ô,Ô9ð 	ð 	ˆCÝ  ¤Ñ*Ô*Ð.?Ð?Ð?Ø!×%Ò% lÑ3Ô3Ð3Ø�ð @øð Ðr   )r    r!   rT   )r-   r4   r5   r6   r    r7   )rO   rP   r    rQ   )r\   r]   r^   r_   r    r`   )rO   rP   r-   r4   r    ro   )rZ   ro   r-   r4   r    ro   )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   Údictr4   ÚtupleÚMissingÚConflictingr'   ÚMissingDictÚConflictingDictr7   rQ   r3   rN   r[   rn   rW   rX   r   r   r   ú<module>rŽ      s{  ðØ ,Ð ,à "Ð "Ð "Ð "Ð "Ð "à €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð
 ;Ð :Ð :Ð :Ð :Ð :Ø 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€ð!ð !ð !ð !ð$ LPð* ð * ð * ð * ð * ðZð ð ð ð(ð ð ð ð ð ð ð ð&ð ð ð ð ð r   