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 dependencies of %s: %sTN) riter_installed_distributionscanonical_namelistiter_dependenciesrrOSError ValueErrorloggerwarning) package_setproblemsenvdistnameres r!create_package_set_from_installedr1,sKH ! #C00E0K""  6 6 89L .t||\ JK     $  NNA4 KH s2A**B9BBc2i}i}|jD]\}}t}t}|r ||r%|jD]}t|j} | |vrAd} |j |j j ddi} | 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) itemssetrrr/markerevaluateaddr specifiercontainssortedstr) r+ should_ignoremissing conflicting package_namepackage_detail missing_depsconflicting_depsreqr/missedrs rcheck_package_setrI=s+GK(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..ys D 4Ir)r@)r1_simulate_installation_of_create_whitelistrI) to_installr+_would_be_installedrMs @rcheck_install_conflictsrTjsJ 78NK2:{K""4kBI  'I  rc #^K|D]}tt5|jd}ttj t ttj|jdgt }|j|r|dddy#1swYxYww)NWHEELr ) rFileNotFoundError read_textr frozensetunionmapr rparsestrget_all isdisjoint)packagessupported_tagsp wheel_file wheel_tagss rcheck_unsupportedrd~s  ' ( W-J)/Ivx00<DDUBOP *J $$^4     sB-A?B! B-!B* &B-ct}|D]j}t|}|j}|j}t |j t |j||<|j|l|S)z=Computes the version of packages after installing to_install.) r8rget_metadata_distributionr$rrr%r&r;)rQr+ installedinst_req abstract_distr.r/s rrOrOsv IA(K 668""*4<<d>T>T>V9WX D d  rct|}|D]E}||vr||jD],}t|j|vs|j |EG|SrL)r8rrr/r;)rSr+packages_affectedrCrGs rrPrPsp./# , , |,99 C *.??!%%l3   r)returnztuple[PackageSet, bool]rL)r+ PackageSetr@zCallable[[str], bool] | Nonerl CheckResult)rQlist[InstallRequirement]rlConflictDetails)r_zIterable[BaseDistribution]r`z Iterable[Tag]rlz'Generator[BaseDistribution, None, None])rQror+rmrlset[NormalizedName])rSrqr+rmrlrq)6__doc__ __future__rloggingcollections.abcrr contextlibr email.parserr functoolsrtypingr r "pip._vendor.packaging.requirementsr pip._vendor.packaging.tagsr r pip._vendor.packaging.utilsrrpip._vendor.packaging.versionrpip._internal.distributionsrpip._internal.metadatarpip._internal.metadata.baserpip._internal.req.req_installr getLoggerrr)rdictrmtupleMissing Conflictingr% MissingDictConflictingDictrnrpr1rIrTrdrOrPrrrrsU,"/ ;5I1Q:8<   8 $$Z$ ..0 1  + ,NG[89 >4=01 ~tK'889K01  K/0!$LP* * ,H* * Z( ( ! -  (7A&+:Dr