kghOJddlZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z ddl mZmZddlmZddlmZmZmZmZmZddlmZddlmZmZdd lmZdd lm Z m!Z!dd l"m#Z#dd l$m%Z%dd l&m'Z'ddl(m)Z)m*Z*m+Z+erddl,m-Z-ej.e/Z0e dZ1e edZ2de)dee1fdZ3dede#de#fdZ4dede#de#fdZ5dede#de#fdZ6Gdde)Z7Gdde7Z8Gd d!e7Z9Gd"d#e)Z:Gd$d%e)Z;Gd&d'e)Z candidatereturncRtttf}t||r|SdS)z%The runtime version of BaseCandidate.N)r"r#r$ isinstance)r%base_candidate_classess /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.pyas_base_candidater+,s5 " )344 4linktemplatec ,|jr Jd|jrt|j}n|j}t ||j|j|j|j|j |j |j |j  }|j |_ ||_|j|_|S)Nztemplate is editable user_supplied comes_from use_pep517isolated constraintglobal_options hash_optionsconfig_settings)editablereqstrurlrr1r2r3r4r5r6r7r8 original_linkr-extras)r-r.lineireqs r*make_install_req_from_linkrA8s 88"888 |8<  x  ,&&"&.* 0   D"/DDI/DK Kr,c |js Jdt|j|j|j|j|j|j|j|j |j |j  }|j |_ |S)Nztemplate not editable) r1r2r3r4r5permit_editable_wheelsr6r7r8) r9rr<r1r2r3r4r5rCr6r7r8r>)r-r.r@s r*make_install_req_from_editablerDQs{  55555  $ ,&&"&'>.* 0   D/DK Kr,distc *|jrt|j}n/|jr|jd|jj}n|jd|j}t ||j|j|j |j |j |j |j |j }||_|S)Nz @ z==r0)r:r;r-canonical_namer<versionrr1r2r3r4r5r6r7r8 satisfied_by)rEr.r?r@s r*_make_install_req_from_distrJes|88<   8%==(-*;==%7777  ,&&"&.* 0   DD Kr,ceZdZUdZeed<dZ ddedededd d e e d e e d dfd Z d e fdZd e fdZd efdZded efdZed e efdZed e fdZed e fdZed e fdZd e fdZd efdZded dfdZd efdZded ee efdZ d e efdZ!dS)"_InstallRequirementBackedCandidateaA candidate backed by an ``InstallRequirement``. This represents a package request with the target not being already in the environment, and needs to be fetched and installed. The backing ``InstallRequirement`` is responsible for most of the leg work; this class exposes appropriate information to the resolver. :param link: The link passed to the ``InstallRequirement``. The backing ``InstallRequirement`` will use this link to fetch the distribution. :param source_link: The link this candidate "originates" from. This is different from ``link`` when the link is found in the wheel cache. ``link`` would point to the wheel cache, while this points to the found remote link (e.g. from pypi.org). rEFNr- source_linkr@factoryr!namerHr&c||_||_||_||_||_||_||_d|_dSN) _link _source_link_factory_ireq_name_version_preparerE_hash)selfr-rMr@rNrOrHs r*__init__z+_InstallRequirementBackedCandidate.__init__sI '    MMOO $( r,c$|jd|jS)N rOrHrZs r*__str__z*_InstallRequirementBackedCandidate.__str__s),,dl,,,r,cJ|jjdt|jdSN()) __class____name__r;rRr_s r*__repr__z+_InstallRequirementBackedCandidate.__repr__s&.)@@C OO@@@@r,cl|j|jSt|j|jf|_|jSrQ)rYhashrerRr_s r*__hash__z+_InstallRequirementBackedCandidate.__hash__s2 : !: 4>4:677 zr,othercdt||jrt|j|jSdSNF)r(rerrRrZrks r*__eq__z)_InstallRequirementBackedCandidate.__eq__s/ eT^ , , =#DJ << <ur,c|jSrQ)rSr_s r*rMz._InstallRequirementBackedCandidate.source_link   r,c@|j|jj|_|jSz:The normalised name of the project the candidate refers to)rVrErGr_s r* project_namez/_InstallRequirementBackedCandidate.project_names  : 1DJzr,c|jSrQrtr_s r*rOz'_InstallRequirementBackedCandidate.namerqr,c@|j|jj|_|jSrQrWrErHr_s r*rHz*_InstallRequirementBackedCandidate.version =  I-DM}r,cf|jd|jd|jjr |jjn|jdS)Nr]z (from rd)rOrHrRis_file file_pathr_s r*format_for_errorz3_InstallRequirementBackedCandidate.format_for_errorsSy S S4< S S-1Z-?OTZ))TZ S S S r,c td)NzOverride in subclass)NotImplementedErrorr_s r*_prepare_distributionz8_InstallRequirementBackedCandidate._prepare_distributions!"8999r,c|j1|j|jkr!t|jd|j|j|jK|j|jkr;t|jdt |jt |j t|t| dS#t$r'}t|jt |d}~wwxYw)z:Check for consistency of project name and version of dist.NrOrH) rVrGrrUrWrHr;listiter_dependenciesiter_provided_extrasr r)rZrEes r*_check_metadata_consistencyz>_InstallRequirementBackedCandidate._check_metadata_consistencys : !djD4G&G&G&  #   = $$,)F)F& DM""DL!!   6 ''T-F-F-H-H(I(IJJ K K K K K! 6 6 6!$*c!ff55 5 6s AC D"C;;Dc |}n4#t$r}|j|_d}~wt$r }d|_d}~wwxYw|||S)NzSee above for output.)rrrUr:rcontextr)rZrErexcs r*rXz+_InstallRequirementBackedCandidate._prepares --//DD   JAE *   1CK   ((... s A . AAA with_requiresc#K|j|jjV|r|jnd}|D]5}|jt ||jEd{V6dSN)rT make_requires_python_requirementrErequires_pythonrmake_requirements_from_specr;rU)rZrrequiresrs r*rz4_InstallRequirementBackedCandidate.iter_dependenciessm<r2r&cz||_td|D|_||n |jj|_dS)a :param comes_from: the InstallRequirement that led to this candidate if it differs from the base's InstallRequirement. This will often be the case in the sense that this candidate's requirement has the extras while the base's does not. Unlike the InstallRequirement backed candidates, this requirement is used solely for reporting purposes, it does not do any leg work. c34K|]}t|VdSrQ)r ).0rs r* z+ExtrasCandidate.__init__..s+EE 1! 4 4EEEEEEr,N)r frozensetr>rU _comes_from)rZrr>r2s r*r[zExtrasCandidate.__init__sD EEfEEEEE )3)?::TY_r,ct|jdd\}}d|d|j|S)Nr]rz {}[{}] {},)r;rsplitformatjoinr>)rZrOrests r*r`zExtrasCandidate.__str__sI^^))#q11 d!!$(=(=tDDDr,c@|jjd|jd|jdS)Nz(base=z , extras=rd)rerfrr>r_s r*rgzExtrasCandidate.__repr__s*.)WWWWt{WWWWr,c8t|j|jfSrQ)rirr>r_s r*rjzExtrasCandidate.__hash__sTY ,---r,rkcpt||jr |j|jko|j|jkSdSrm)r(rerr>rns r*rozExtrasCandidate.__eq__s9 eT^ , , K9 *Jt{el/J Jur,c|jjSrQ)rrtr_s r*rtzExtrasCandidate.project_name y%%r,c@t|jj|jSrs)r rrtr>r_s r*rOzExtrasCandidate.names4914;???r,c|jjSrQ)rrHr_s r*rHzExtrasCandidate.versions y  r,cd|jdt |jS)Nz{} [{}]z, )rrr}rsortedr>r_s r*r}z ExtrasCandidate.format_for_errorsC I & & ( ($))F4;4G4G*H*H   r,c|jjSrQ)rrr_s r*rzExtrasCandidate.is_installedrr,c|jjSrQ)rrr_s r*rzExtrasCandidate.is_editable y$$r,c|jjSrQ)rrMr_s r*rMzExtrasCandidate.source_linkrr,rc#XK|jj}||jV|sdS|j|jj}|j|jj}t|D].}t d|jj |j |/|jj |D]1}|t||j|Ed{V2dS)Nz%%s %s does not provide the extra '%s')rrTmake_requirement_from_candidater> intersectionrEr differencerrwarningrOrHrrr;r)rZrrN valid_extrasinvalid_extrasextrars r*rz!ExtrasCandidate.iter_dependenciessE)$55di@@@@@  F{// 0S0S0U0UVV // 0S0S0U0UVVN++  E NN7       11,??  A::A           r,cdSrQrr_s r*rz'ExtrasCandidate.get_install_requirements tr,) rfrrr BaseCandidaterr;rrr[r`rgrrjrrrorr rtrOrrHr}rrrrMrrrrrr,r*rrsS:48 UUUU#U /0 U  UUUU&EEEEEX#XXXX.#....CD &n&&&X&@c@@@X@!!!!X! #    &d&&&X&%T%%%X%%Xd^%%%X%t+AV8W82D)Er,rceZdZdZdZdeeedfddfdZde fdZ de fdZ e de fd Ze de fd Ze defd Zde fd Zd edeeefdZdeefdZdS)RequiresPythonCandidateFNpy_version_info.r&c|t|}ntjdd}tdd|D|_dS)N.c34K|]}t|VdSrQ)r;)rcs r*rz3RequiresPythonCandidate.__init__..$s((F(FAQ(F(F(F(F(F(Fr,)rsys version_inforrrW)rZrrs r*r[z RequiresPythonCandidate.__init__sV  &1/BBLL+BQB/L(F(F(F(F(F F FGG r,cd|jSNzPython rWr_s r*r`zRequiresPythonCandidate.__str__*s((((r,c0|jjd|jdSrb)rerfrWr_s r*rgz RequiresPythonCandidate.__repr__-s .)>>DM>>>>r,ctSrQREQUIRES_PYTHON_IDENTIFIERr_s r*rtz$RequiresPythonCandidate.project_name0))r,ctSrQrr_s r*rOzRequiresPythonCandidate.name4rr,c|jSrQrr_s r*rHzRequiresPythonCandidate.version8s }r,cd|jSr)rHr_s r*r}z(RequiresPythonCandidate.format_for_error<s''''r,rcdSrr)rZrs r*rz)RequiresPythonCandidate.iter_dependencies?srr,cdSrQrr_s r*rz/RequiresPythonCandidate.get_install_requirementBrr,)rfrrrrMrrrr[r;r`rgrr rtrOrrHr}rrrrrrrr,r*rrsfLKHsCx(AHdHHHH)))))?#????*n***X**c***X*X(#((((t+AV8W2D)Er,r)=loggingrtypingrrrrrrr r "pip._vendor.packaging.requirementsr pip._vendor.packaging.utilsr r pip._vendor.packaging.versionrpip._internal.exceptionsrrrrrpip._internal.metadatarpip._internal.models.linkrrpip._internal.models.wheelrpip._internal.req.constructorsrrpip._internal.req.req_installr&pip._internal.utils.direct_url_helpersrpip._internal.utils.miscrrrrr rNr! getLoggerrfrrrr+rArDrJrLr$r#r"rrrr,r*rs XXXXXXXXXXXXXXXXXXXXAAAAAAIIIIIIII111111433333<<<<<<<<,,,,,,=<<<<<GGGGGG;;;;;;5555555555!       8 $ $ "T.2QRR  x /F     ,2 ,( &80GGGGGGGGT6U6U6U6U6U66U6U6UrOOOOO:OOO0DDDDD DDDNyyyyyiyyyx(((((i(((((r,