zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
U
H=®d_ã@s,dZddlZddlmZddlmZddlmZddlm    Z    ddl
m Z ddl m Z e e¡Ze rðdd    lmZdd
lmZmZmZmZmZmZmZeed fZeeefZeeeefZeeeefZeeeefZ eee fZ!eee!fZ"ed d d gƒZ#dd„Z$ddd„Z%dd„Z&dd„Z'dd„Z(dS)z'Validation of dependencies of packages
éN)Ú
namedtuple)Úcanonicalize_name)ÚRequirementParseError)Ú)make_distribution_for_install_requirement)Úget_installed_distributions)ÚMYPY_CHECK_RUNNING)ÚInstallRequirement)ÚAnyÚCallableÚDictÚOptionalÚSetÚTupleÚListÚPackageDetailsÚversionÚrequiresc KsŠ|ikrdddœ}i}d}tf|ŽD]\}t|jƒ}zt|j| ¡ƒ||<Wq$tk
r~}zt d||¡d}W5d}~XYq$Xq$||fS)z8Converts a list of distributions into a PackageSet.
    F©)Ú
local_onlyÚskipz%Error parsing requirements for %s: %sTN)    rrÚ project_namerrrrÚloggerÚwarning)ÚkwargsÚ package_setÚproblemsÚdistÚnameÚerrúUD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/operations/check.pyÚ!create_package_set_from_installed%s
 
r c CsÔi}i}|D]¾}tƒ}tƒ}|r*||ƒr*q ||jD]l}t|jƒ}||krvd}    |jdk    rb|j ¡}    |    r4| ||f¡q4||j}
|jj    |
dds4| ||
|f¡q4|r¶t
|t d||<|r t
|t d||<q ||fS)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)Ú prereleases)Úkey) ÚsetrrrÚmarkerÚevaluateÚaddrÚ    specifierÚcontainsÚsortedÚstr) rÚ should_ignoreÚmissingÚ conflictingÚ package_nameÚ missing_depsÚconflicting_depsÚreqrÚmissedrrrrÚcheck_package_set:s0 
 
 
 
r3cs6tƒ\}}t||ƒ}t||ƒ‰|t|‡fdd„dfS)zeFor checking if the dependency graph would be consistent after     installing given requirements
    cs|ˆkS©Nr)r©Ú    whitelistrrÚ<lambda>vóz)check_install_conflicts.<locals>.<lambda>)r+)r Ú_simulate_installation_ofÚ_create_whitelistr3)Ú
to_installrÚ_Úwould_be_installedrr5rÚcheck_install_conflictsfs
 
 
 
ÿþr>cCsXtƒ}|D]H}t|ƒ}| ¡}|dk    s*t‚t|jƒ}t|j| ¡ƒ||<|     |¡q
|S)zBComputes the version of packages after installing to_install.
    N)
r#rÚget_pkg_resources_distributionÚAssertionErrorrr"rrrr&)r;rÚ    installedÚinst_reqÚ abstract_distrrrrrr9{s 
 r9cCsLt|ƒ}|D]:}||krq ||jD] }t|jƒ|kr$| |¡q q$q |Sr4)r#rrrr&)r=rÚpackages_affectedr.r1rrrr:‘s
r:)N))Ú__doc__ÚloggingÚ collectionsrZpip._vendor.packaging.utilsrZpip._vendor.pkg_resourcesrÚpip._internal.distributionsrÚpip._internal.utils.miscrÚpip._internal.utils.typingrÚ    getLoggerÚ__name__rZpip._internal.req.req_installrÚtypingr    r
r r r rrr*Z
PackageSetZMissingZ ConflictingZ MissingDictZConflictingDictZ CheckResultZConflictDetailsrr r3r>r9r:rrrrÚ<module>s0      
 $    
,