kghpZdZddlZddlmZddlmZmZmZmZm Z m Z ddl m Z ddl mZddlmZejeZe e egeeffZd eed eefd Zd ed eed eefd Zd ed eed eefdZGddeeZdS)aUtilities to lazily create and visit candidates found. Creating and visiting a candidate is a *very* costly operation. It involves fetching, extracting, potentially building modules from source, and verifying distribution metadata. It is therefore crucial for performance to keep everything here lazy all the way down, so we only touch candidates that we absolutely need, and not "download the world" when we only need one version of something. N)Sequence)AnyCallableIteratorOptionalSetTuple) _BaseVersion)MetadataInvalid) Candidateinfosreturnc#4Kt}|D]\}}||vr |}||V||2#t$rF}td||jj|||Yd}~}d}~wwxYwdS)zIterator for ``FoundCandidates``. This iterator is used when the package is not already installed. Candidates from index come later in their normal ordering. NzpIgnoring version %s of %s since it has invalid metadata: %s Please use pip<24.1 if you need to use this version.)setaddr loggerwarningireqname)rversions_foundversionfunc candidatees /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py _iter_builtrs ),N((  n $ $  (I OOO   w ' ' ' '! ( ( ( NNG        w ' ' ' ' ' ' ' ' ( ((s A Bz+FoundCandidates.__iter__..s6KKar!uuD4J'J'J'J'J'J'JKKr")r,r-rr.r!r$)r1riterators` r__iter__zFoundCandidates.__iter__sv!! I"5))HH  $ I1$/5IIHH0%HHHKKKK8KKKKr"c tdr5r6r1s r__len__zFoundCandidates.__len__r9r"c|j|jS|jr|jr d|_dSt||_|jS)NT)r0r.r-anyrCs r__bool__zFoundCandidates.__bool__sG : !:   " t DJ4YY zr"N)__name__ __module__ __qualname____doc__rrIndexCandidateInforr boolrintr2rr8rArDrGr"rr&r&os *B); <<= *I& * * c( * * * *333333 L(9-LLLL33333 $      r"r&)rKloggingcollections.abcrtypingrrrrrr pip._vendor.packaging.versionr pip._internal.exceptionsr baser getLoggerrHrrLrr!r$r&rOr"rrWs$$$$$$@@@@@@@@@@@@@@@@666666444444  8 $ $<"hy6I2I)JJK(x 23(8K((((>$$!)*