7idZddlZddlmZmZmZmZmZmZm Z ddl m Z ddl m Z ddlmZmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZej:eZGd deZ eee fZ!e ee fZ"e eee fZ#eeee"fZ$eeee#fZ%e e$e%fZ&e e!e&fZ'de e!e(ffdZ) dde!deee*ge(fde&fdZ+deede'fdZ,deede!deefdZ-deede!deefdZ.de!ddfdZ/y)z'Validation of dependencies of packages N)CallableDictList NamedTupleOptionalSetTuple) Requirement)LegacySpecifier)NormalizedNamecanonicalize_name) LegacyVersion))make_distribution_for_install_requirement)get_default_environment)DistributionVersion)InstallRequirement) deprecatedc(eZdZUeed<eeed<y)PackageDetailsversion dependenciesN)__name__ __module__ __qualname__r__annotations__rr g/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pip/_internal/operations/check.pyrrs  {##rrreturnc>i}d}t}|jddD]A}|j} t|j }t |j |||<C||fS#ttf$r#}tjd||d}Yd}~ud}~wwxYw)z3Converts a list of distributions into a PackageSet.Fr) local_onlyskipz%Error parsing requirements for %s: %sTN) riter_installed_distributionscanonical_namelistiter_dependenciesrrOSError ValueErrorloggerwarning) package_setproblemsenvdistnameres r!create_package_set_from_installedr1%sKH ! #C00E0K""  6 6 89L .t||\ JK     $  NNBD! LH s2A**B9BBr+ should_ignorecHt|i}i}|jD]\}}t}t}|r ||r%|jD]}t |j } | |vrAd} |j |j jddi} | r|j| |f]|| j} |jj| dr|j| | |f|rt|t||<|st|t||<||fS)zCheck 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. Textra) prereleases)key)#warn_legacy_versions_and_specifiersitemssetrr r/markerevaluateaddr specifiercontainssortedstr) r+r2missing conflicting package_namepackage_detail missing_depsconflicting_depsreqr/missedrs rcheck_package_setrJ6s3( 4GK(3(9(9(;J$ n%(U -0U ]<8 !.. ;C$SXX.D;&::) ZZ00'2?F $$dC[1"$'//G==))'t)D $$dGS%9: ;" $*z)check_install_conflicts..ts D 4Ir)r2)r1_simulate_installation_of_create_whitelistrJ)rKr+_would_be_installedrOs @rcheck_install_conflictsrUesJ 78NK2:{K""4kBI  'I  rct}|D]j}t|}|j}|j}t |j t |j||<|j|l|S)z=Computes the version of packages after installing to_install.) r:rget_metadata_distributionr$rrr%r&r=)rKr+ installedinst_req abstract_distr.r/s rrQrQysv IA(K 668""*4<<d>T>T>V9WX D d  rrTct|}|D]E}||vr||jD],}t|j|vs|j |EG|SrN)r:rr r/r=)rTr+packages_affectedrDrHs rrRrRsp./# , , |,99 C *.??!%%l3   rc V|jD]\}}t|jtr#t |d|jdd|ddd|j D]E}t d|jDs t |d|jd |d d|d ddGy) N z# has a non-standard version number.z!to upgrade to a newer version of z^ or contact the author to suggest that they release a version with a conforming version numberi/z24.1)reason replacementissuegone_inc3<K|]}t|tywrN) isinstancer ).0specs r z6warn_legacy_versions_and_specifiers..sO:dO4Osz) has a non-standard dependency specifier .ze or contact the author to suggest that they release a version with a conforming dependency specifiers)r9rdrrrranyr>)r+ project_namepackage_detailsdeps rr8r8s)4):):)<% o o--} = #nAo&=&=%>?9:8 ~FIJ #// COOO'./*A*A)BCCCF%qJJTU "  rrN)0__doc__loggingtypingrrrrrrr "pip._vendor.packaging.requirementsr pip._vendor.packaging.specifiersr pip._vendor.packaging.utilsr r pip._vendor.packaging.versionrpip._internal.distributionsrpip._internal.metadatarpip._internal.metadata.baserpip._internal.req.req_installrpip._internal.utils.deprecationr getLoggerrr)r PackageSetMissing Conflicting MissingDictConflictingDict CheckResultConflictDetailsboolr1rArJrUrQrRr8rrrrsIII:<I7Q:;<6   8 $$Z$ ..0 1  + ,N$7DE >4=01 ~tK'889K01  K/0!5T1A+B!$OS, , ,4XseTk5J,K, , ^-?(@_('(7A&N+:D"ZDr