"JdddlZddlmZddlmZmZmZmZmZddl m Z ddl m Z ddl mZddlmZddlmZejeZGd d ZdS) N) OrderedDict)DictIterableListOptionalTuple)canonicalize_name)InstallationError)Wheel)InstallRequirement)compatibility_tagsc eZdZddeddfdZdefdZdefdZdeddfd Z deddfd Z dded e ed e e ede eee effd ZdedefdZdedefdZedeefdZdS)RequirementSetTcheck_supported_wheelsreturnNcHt|_||_g|_dS)zCreate a RequirementSet.N)r requirementsrunnamed_requirements)selfrs L/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/req/req_set.py__init__zRequirementSet.__init__s'@!!!ctd|jDd}dd|DS)Nc3(K|] }|j |VdSN) comes_from.0reqs r z)RequirementSet.__str__..s) M MScn MS M M M M M Mrc.t|jpdSNr namers rz(RequirementSet.__str__..-chn"==rkey c3>K|]}t|jVdSrstrrrs rr z)RequirementSet.__str__..s*==CG ======r)sortedrvaluesjoin)rrs r__str__zRequirementSet.__str__s_ M MD-4466 M M M==   xx== ======rct|jd}d}||jjt |dd|DS)Nc.t|jpdSr"r$r&s rr'z)RequirementSet.__repr__.."r(rr)z4<{classname} object; {count} requirement(s): {reqs}>z, c3>K|]}t|jVdSrr-rs rr z*RequirementSet.__repr__..)s*@@C3sw<<@@@@@@r) classnamecountreqs)r/rr0format __class____name__lenr1)rr format_strings r__repr__zRequirementSet.__repr__s   $ $ & &==   O ##n-l##@@<@@@@@$   r install_reqcL|jrJ|j|dSr)r%rappend)rr?s radd_unnamed_requirementz&RequirementSet.add_unnamed_requirement,s.#### !((55555rcT|jsJt|j}||j|<dSr)r%r r)rr? project_names radd_named_requirementz$RequirementSet.add_named_requirement0s4()9:: *5,'''rparent_req_nameextras_requestedc0||s*td|j|jgdfS|jr{|jjrot|jj}tj }|j r<| |s'td|j|jr | Jd|js|||gdfS ||j}n#t$$rd}YnwxYw|duoA|o?|j o7|j|jko'|jo |jo|jj|jjk}|r)td|||j|s|||g|fS|js|jsg|fS|jo!|jo|jj|jjk }|r'td|jd|_|jrd|_t3t5t7|jt7|jz|_td ||j|g|fS) a&Add install_req as a requirement to install. :param parent_req_name: The name of the requirement that needed this added. The name is used because when multiple unnamed requirements resolve to the same name, we could otherwise end up with dependency links that point outside the Requirements set. parent_req must already be added. Note that None implies that this is a user supplied requirement, vs an inferred one. :param extras_requested: an iterable of extras used to evaluate the environment markers. :return: Additional requirements to scan. That is either [] if the requirement is not applicable, or [install_req] if the requirement is applicable and has just been added. z6Ignoring %s: markers '%s' don't match your environmentNz-{} is not a supported wheel on this platform.z+a user supplied req shouldn't have a parentz7Double requirement given: {} (already in {}, name={!r})zhCould not satisfy constraints for '{}': installation from path or url cannot be constrained to a versionFTzSetting %s extras to: %s) match_markersloggerinfor%markerslinkis_wheelr filenamer get_supportedr supportedr r9 user_suppliedrBget_requirementKeyError constraintextrasr specifierrEpathtupler/setdebug) rr?rFrGwheeltags existing_reqhas_conflicting_requirementdoes_not_satisfy_constraints radd_requirementzRequirementSet.add_requirement6sL*(()9::  KKH #    t8O    0 9 +*344E%355D* 5??43H3H 'CJJ) 9-<-D-D 8.E-D-D  '  ( ( 5 5 5=$& & 9=9M9M ::LL   LLL  t # H H ++ H#{'99 H  H   H  *ko.GG $ ' #IPP{/?  .  & &{ 3 3 3=+- -  ! $)@ $|# #&1&6'   Q+"2"7<;L;Q"Q< # ' #++16+2B+C+C #(   $ .)-L &# 3|*++c+2D.E.EE F F    &      ~|++s7D D! D!r%cXt|}||jvo|j|j Sr)r rrUrr%rDs rhas_requirementzRequirementSet.has_requirements7(..  D- - ?%l3>> rcpt|}||jvr |j|Std|)NzNo project with the name )r rrTrcs rrSzRequirementSet.get_requirementsB(.. 4, , ,$\2 2;4;;<<r rBrErrrrrardrSpropertyrhrrrrsAAtAtAAAA>>>>>  #     63E6$666661C66666*.48 s,s,'s,"#s,#8C=1 s, t&'2D)EE F s,s,s,s,j C D    =C=,>====L$'9":LLLXLLLrr)logging collectionsrtypingrrrrrpip._vendor.packaging.utilsr pip._internal.exceptionsr pip._internal.models.wheelr pip._internal.req.req_installr pip._internal.utilsr getLoggerr;rJrrmrrrws######88888888888888999999666666,,,,,,<<<<<<222222  8 $ $nLnLnLnLnLnLnLnLnLnLr