id<ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z m Z mZmZmZmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd l m!Z!m"Z"dd l#m$Z$dd l%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+ddl,m-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m3Z7ddl8m9Z:ddl;mZ>m?Z?ddl@mAZAddlBmCZCddlDmEZEddlFmGZGmHZHmIZImJZJmKZKmLZLddlMmNZNddlOmPZPddlQmRZRmSZSddlTmUZUddlVmWZWejXeYZZGd d!Z[d"e[d#e\fd$Z]d%ed&ee[d'e\d#e^fd(Z_d%ed&ee[d#dfd)Z`dS)*N)Values)Any CollectionDictIterableListOptionalSequenceUnion)Marker) Requirement) SpecifierSet)canonicalize_name)Version)parse)BuildBackendHookCaller)BuildEnvironmentNoOpBuildEnvironment)InstallationError) get_scheme)BaseDistributionget_default_environmentget_directory_distributionget_wheel_distribution)FilesystemWheel) DirectUrl)Link)generate_metadata)generate_editable_metadata)install_editable) install_wheel)load_pyproject_tomlmake_pyproject_path)UninstallPathSet) deprecated)Hashes) ConfiguredBuildBackendHookCallerask_path_exists backup_dir display_pathhide_urlredact_auth_from_url safe_extra)runner_with_spinner_message) TempDirectory tempdir_kinds)running_under_virtualenv)vcsc eZdZdZ dJdddddddddeedeeedfded ee d ee d eed ed ee edee ee efdee eeee effdede edededdfdZdefdZdefdZdefdZedeefdZejdefdZedefdZedefdZedefdZdKdeeedefdZedefd ZdLd"edefd#Zdeefd$Z d%ed&ed'edefd(Z!dMd)Z"dMd*Z#d+eddfd,Z$edefd-Z%edefd.Z&edefd/Z'edefd0Z(edefd1Z)edefd2Z*dMd3Z+dMd4Z,dMd5Z-ede.fd6Z/de0fd7Z1dMd8Z2 dNd9ed&ed'eddfd:Z3dMd;Z4 dNdZ6d?ed@edAedefdBZ7d%eeddfdCZ8 dOd ee9edDeedEeedFeedGed+edHeddfdIZ:dS)PInstallRequirementz Represents something that may be installed later on, may have information about where to fetch the relevant requirement and also contains logic for installing the said requirement. FN)global_options hash_optionsconfig_settings constraintextras user_suppliedpermit_editable_wheelsreq comes_fromeditablelinkmarkers use_pep517isolatedr7r8r9r:r;r<r=returnc|t|ts J|||_||_| |_||_||_d|_|jrQ|sJ|jrFtj tj |j |_||r|jrt|j}|x|_|_d|_d|_d|_|jr|jjr|jj |_| r| |_n,|rd|jD|_nt-|_| |r|j}||_d|_d|_d|_d|_|r|ng|_| r| ni|_| |_d|_ | |_!||_"tG|_$d|_%d|_&g|_'d|_(||_)d|_*dS)Nc,h|]}t|Sr6r-).0extras R/opt/cloudlinux/venv/lib/python3.11/site-packages/pip/_internal/req/req_install.py z.InstallRequirement.__init__..s EEE:e,,EEEF)+ isinstancer r>r?r:r@r= source_diris_fileospathnormpathabspath file_pathurlrrA original_linkcached_wheel_source_link download_infolocal_file_pathr;setmarkerrB satisfied_byshould_reinstall_temp_build_dirinstall_succeededr7r8r9preparedr<rDr build_envmetadata_directorypyproject_requiresrequirements_to_checkpep517_backendrCneeds_more_preparation)selfr>r?r@rArBrCrDr7r8r9r:r;r<r=s rJ__init__zInstallRequirement.__init__Gs ${jk::{{C{{{$$  &<#*. = TKKK| T"$'"2"227??4>3R3R"S"S FnnB,8@LLb. +  +?+A+A 268<13"AE%',###rLc|jrKt|j}|jr/|dt |jjz }n#|jrt |jj}nd}|j0|jjt|jj}nd}|d|z }|j rFt|j tr|j }n|j }|r |d|dz }|S)Nz from {}zz in z (from )) r>strrAformatr,rUr\locationr*r?rM from_path)rgsrnr?s rJ__str__zInstallRequirement.__str__s  8 'DH Ay LZ&&';DIM'J'JKKK Y '$TY]33AA&A   ( )5'(9(BCC% """ "A ? -$/3// 9,0O !_6688  -,z,,,,rLchd|jjt||jS)Nz<{} object: {} editable={!r}>)rm __class____name__rlr@rgs rJ__repr__zInstallRequirement.__repr__s..55 N #SYY    rLct|t}fdt|D}d|jjd|S)z5An un-tested helper for getting state, for debugging.c3PK|] }d||V!dS)z{}={!r}N)rm)rHattr attributess rJ z2InstallRequirement.format_debug..s8TTd!!$ 4(899TTTTTTrLz<{name} object: {{{state}}}>z, )namestate)varssortedrmrsrtjoin)rgnamesr}rzs @rJ format_debugzInstallRequirement.format_debugsn$ZZ z""TTTTfUmmTTT-44())E""5   rLc,|jdS|jjSN)r>r|rus rJr|zInstallRequirement.names 8 4x}rLc<|jsdS|jsJ|j5td}|j|5d|jvcdddcdddS#1swxYwY ddddS#1swxYwYdS)NFz1Checking if build backend supports build_editablebuild_editable)rCrerar/subprocess_runner_supported_features)rgrunners rJsupports_pyproject_editablez.InstallRequirement.supports_pyproject_editables~ 5"""" ^ U U0CF$66v>> U U'4+>+R+R+T+TT U U U U U U U  U U U U U U U U U U U U U U U U U  U U U U U U U U U U U U U U U U U Us5*BA8 B8A< <B?A< BBBc|jjSr)r> specifierrus rJrzInstallRequirement.specifiers x!!rLc|jduS)z7Whether this requirement was specified as a direct URL.N)rVrus rJ is_directzInstallRequirement.is_directs!--rLc||j}t|dko"tt|jdvS)zReturn whether I am pinned to an exact version. For example, some-package==1.2 is pinned; some-package>1.2 is not. >=====)rlennextiteroperator)rg specifierss rJ is_pinnedzInstallRequirement.is_pinneds9 ^ :!#XT*-=-=(>(>(G=(XXrLextras_requestedcT|sd}jtfd|DSdS)N)c3PK|] }jd|iV!dS)rIN)rBevaluate)rHrIrgs rJr{z3InstallRequirement.match_markers.. sI2 6 6 = =di H H Hk"""rLc|jdSt|j}|jrEt|jtr|j}n|j}|r|d|zz }|S)z8Format a nice indicator to show where this "comes from" Nz->)r>rlr?rMro)rgrpr?s rJrozInstallRequirement.from_path7sr 8 4 MM ? '$/3// 9!_ !_6688  'TJ&&rL build_dir autodeleteparallel_buildscD|J|j|jjsJ|jjS|j,ttjd|_|jjSt |j}|r|dtj j }tj |s/td|tj|tj||}|rdnd}t||tjdjS)NT)kindglobally_managed_zCreating directory %sF)rQdeleterr)r^rQr>r0r1 REQ_BUILDrr|uuiduuid4hexrPexistsloggerdebugmakedirsr)rgrrrdir_nameactual_build_dir delete_args rJensure_build_locationz(InstallRequirement.ensure_build_locationEs1$$$   +', , , ,', , 8 $1",t$$$D ', ,*$)44  8"77TZ\\%577Hw~~i(( # LL0) < < < K " " "7<< 8<<(2TTU !(!      rLc |jJ|jJ|jJtt |jdt rd}nd}t d|jd||jdg|_dS)z*Set requirement after generating metadata.NrrrrName)r>metadatarNrM parse_versionrr r)rgops rJ_set_requirementz#InstallRequirement._set_requirementpsx}(((*** mDM)$<==w G G BBB GGM&)M),    rLct|jd}t|jj|krdStd|j||jt ||_dS)NrzeGenerating metadata for package %s produced metadata for project name %s. Fix your #egg=%s fragments.)rrr>r|rwarningr )rg metadata_names rJwarn_on_mismatching_namez+InstallRequirement.warn_on_mismatching_namess)$-*?@@ TX] + +} < < F  ! I  I    }--rL use_user_sitec|jdSt|jj}|sdS|jj|jd}|sZd|_|rH|jr d|_ dStr&|j r!td|j d|jdSdSd|_ dS|jrd|_ d|_dS||_dS)zFind an installed distribution that satisfies or conflicts with this requirement, and set self.satisfied_by or self.should_reinstall appropriately. NT) prereleaseszNWill not install to the user site because it will lack sys.path precedence to rj)r>rget_distributionr|rcontainsversionr\ in_usersiter]r2in_site_packagesrraw_namernr@)rgr existing_distversion_compatibles rJcheck_if_existsz"InstallRequirement.check_if_existss: 8  F/11BB48=QQ   F!X/88  !9  " 2 $D  - ,,0D)))-//M4R+77D7M77+477)-%%%} 2(,%%)!!!$1!!!rLc,|jsdS|jjS)NF)rAis_wheelrus rJrzInstallRequirement.is_wheelsy 5y!!rLc|jduSr)rWrus rJis_wheel_from_cachez&InstallRequirement.is_wheel_from_caches,D88rLcrtj|j|jr |jjpdS)Nr)rPrQrrNrAsubdirectory_fragmentrus rJunpacked_source_directoryz,InstallRequirement.unpacked_source_directorys2w|| OTYJ49+JPb   rLcx|js Jd|tj|jd}|S)NNo source dir for zsetup.pyrNrPrQrr)rgsetup_pys rJ setup_py_pathz InstallRequirement.setup_py_paths>;; ;T ; ;;;;7<< > KKrLcx|js Jd|tj|jd}|S)Nrz setup.cfgr)rg setup_cfgs rJsetup_cfg_pathz!InstallRequirement.setup_cfg_paths?;; ;T ; ;;;;GLL!?MM rLcR|js Jd|t|jS)Nr)rNr#rrus rJpyproject_toml_pathz&InstallRequirement.pyproject_toml_paths2;; ;T ; ;;;;"4#ABBBrLc$t|j|j|jt |}|&|jrt d|dddd|_dSd|_|\}}}}||_||_t||j || |_ dS) aALoad the pyproject.toml file. After calling this routine, all of the attributes related to PEP 517 processing for this requirement have been set. In particular, the use_pep517 attribute can be used to determine whether we should follow the PEP 517 or legacy (setup.py) code path. Nz(Config settings are ignored for project .z?to use --use-pep517 or add a pyproject.toml file to the project23.3)reason replacementgone_inFT) backend_path) r"rCrrrlr9r%rdrcr'rre)rgpyproject_toml_datarequiresbackendcheckrs rJr"z&InstallRequirement.load_pyproject_tomls2 OT5t7I3t99    &# MdMMM=# $DO F1D.'5,%*""*>   * %    rLc|jrv|jrq|s_tj|js=tj|jstd|ddSdSdSdSdS)zCheck that an editable requirement if valid for use with PEP 517/518. This verifies that an editable that has a pyproject.toml either supports PEP 660 or as a setup.py or a setup.cfg zProject z has a 'pyproject.toml' and its build backend is missing the 'build_editable' hook. Since it does not have a 'setup.py' nor a 'setup.cfg', it cannot be installed in editable mode. Consider using a build backend that supports PEP 660.N) r@rCrrPrQisfilerrrrus rJisolated_editable_sanity_checkz1InstallRequirement.isolated_editable_sanity_checks M  4466 GNN4#566  GNN4#677 $I4III           rLc|jsJ|jp d|j}|jro|jJ|jr=|jr6|r"t|j |j||_ nOt|j |j||_ n-t|j |j |j|j||_ |js|n||dS)zEnsure that project metadata is available. Under PEP 517 and PEP 660, call the backend hook to prepare the metadata. Under legacy processing, call setup.py egg-info. zfrom N)rardetails)rarrNrDr)rNr|rArCrer@r=rrrarbrgenerate_metadata_legacyrrrDrrassert_source_matches_version)rgrs rJprepare_metadataz#InstallRequirement.prepare_metadatas? )22ty22 ? &222  / 4466  +E"n /#+++'' +<"n /#+++'' '?."09 '''D #y ,  ! ! # # # #  ) ) + + + **,,,,,rLclt|ds|j|_|jS)N _metadata)hasattrget_distrrrus rJrzInstallRequirement.metadataHs.t[)) 6!]]__5DN~rLc|jrt|jS|jr;|jr4t t |jt |jStd|d)NzInstallRequirement zC has no metadata directory and no wheel: can't make a distribution.) rbrrYrrrrr|AssertionErrorrus rJrzInstallRequirement.get_distOs  " -d.EFF F  ! dm ) 4557H7S7S  *$ * * *   rLc|jsJ|jd}|jjr,||jjvrtd||dStdt|j||dS)Nrz'Requested %s, but installing version %sz;Source in %s has version %s, which satisfies requirement %s)rNrr>rrrrr*)rgrs rJrz0InstallRequirement.assert_source_matches_version[s- * 8  '1C"C"C NN9      LLMT_--      rL parent_dircR|j|||||_dSdS)aAEnsure that a source_dir is set. This will create a temporary build dir if the name of the requirement isn't known yet. :param parent_dir: The ideal pip parent_dir for the source_dir. Generally src_dir for editables and build_dir for sdists. :return: self.source_dir N)rr)rNr)rgrrrs rJensure_has_source_dirz(InstallRequirement.ensure_has_source_dirms= ? ""88% /9DOOO # "rLcz|js"td|jdS|jsJ|jsJ|jjdkrdSt j|jj}|sJd|jjt|jj}| |j|ddS)Nz>Cannot update repository at %s; repository location is unknownfilezUnsupported VCS URL r)rU verbosity) rArrrNr@schemer3get_backend_for_schemerUr+obtain)rg vcs_backend hidden_urls rJupdate_editablez"InstallRequirement.update_editablesy  LLP    F} 9 v % % F01ABB BBB49=BBBBBdim,, 4? aHHHHHrL auto_confirmverbosec@|jsJt|jj}|s"td|jdStd|tj|}| |||S)a Uninstall the distribution currently satisfying this requirement. Prompts before removing or modifying files unless ``auto_confirm`` is True. Refuses to delete or modify files outside of ``sys.prefix`` - thus uninstallation within a virtual environment can only modify that virtual environment, even if the virtualenv is linked to global site-packages. z#Skipping %s as it is not installed.NzFound existing installation: %s) r>rrr|rrinfor$ from_distremove)rgrrdistuninstalled_pathsets rJ uninstallzInstallRequirement.uninstallsx&((99$(-HH  NN@$) L L L4 5t<<<.8>>""<999""rLrQ parentdirrootdircdtdtdtfd}tj||}|||}|jdz|zS)Nr|prefixrEc||tjjzsJd|d||t |dzd}|tjjd}|S)Nzname z doesn't start with prefix r/) startswithrPrQseprreplace)r|rs rJ_clean_zip_namez=InstallRequirement._get_archive_name.._clean_zip_names??$ E EDtDD&DD E E EF a))*D<< S11DKrLr)rlrPrQrr|)rgrQrrr r|s rJ_get_archive_namez$InstallRequirement._get_archive_namesd # s s    w||It,,tW--y3%%rLc|jsJ|dSd}d|j|jd}tj||}tj|rtdt|d}|dkrd}n|d kr=t d t|t j |n{|d kr[t|}t d t|t|tj||n|d krt!jd|sdSt%j|d t$jd}|5tjtj|j}t j|D]\} } } | D]N} || | |} t%j| dz}d|_||dO| D]P}||| |}tj| |}|||Q dddn #1swxYwYtdt|dS)z}Saves archive to provided build_dir. Used for saving downloaded VCS requirements as part of `pip download`. NTz {}-{}.ziprz8The file {} exists. (i)gnore, (w)ipe, (b)ackup, (a)bort )iwbar#Fr$z Deleting %sr%zBacking up %s to %sr&) allowZip64)rrrirzSaved %s)rNrmr|rrPrQrrr(r*rrrr)shutilmovesysexitzipfileZipFile ZIP_DEFLATEDnormcaserSrwalkr!ZipInfo external_attrwritestrwriter)rgrcreate_archive archive_name archive_pathresponse dest_file zip_outputdirdirpathdirnames filenamesdirname dir_arcnamezipdirfilename file_arcnames rJarchivezInstallRequirement.archives    F"))$)T]95MNN w||I|<< 7>>, ' ' &%%+VL,F,F%G%G$H 3!&S}l<.H.HIII ,''''S&|44 ) .. ++  L)4444S   F_         = ='""27??43Q#R#RSSC02  = =,9'44G"&"8"8") ##9##K %_[3->??F+6F(''3333 )==H#'#9#9 ") #$:$$L "w||GX>>H$$X|<<<<= = = = = = = = = = = = = = = = =*  J \ : :;;;;;sDJ""J&)J&roothomerwarn_script_location pycompilec t|j||||j|}|jrE|js>t ||ng||||j|j|j|j|j d|_ dS|jsJ|j sJt|j|j |t|j |||jr|jnd|jd|_ dS)N)userrGrFrDr) r7rrGrr|rrDrarT)rreq_descriptionrIrH direct_url requested)rr|rDr@rinstall_editable_legacyrrarr_rYr!rlr>rrXr<) rgr7rFrGrrHrrIrs rJinstallzInstallRequirement.installs I]     =   #1?1K~~QS+Y"0.*.*H    &*D " F}#### I  MM!5-1^Et))( "&rL)FNNNFr)T)rEN)FF)NNNNTFT);rt __module__ __qualname____doc__r r r rlrrr rrrrhrqrvrpropertyr| functools lru_cacherrrrrrrrr&rrorrrrrrrrrrr"rrrrrrrrr r$rr!rEr rPr6rLrJr5r5@s#$(%)q,/37;FJ "$#',!q,q,q, k "q,U3(<#<=>q, q, tn q, &! q,TNq,q,!c+q,tCcN34q,"$sE#tCy.,A'A"BCq,q,3q,q, !%!q," #q,q,q,q,f0 #     c     hsmX Y UT U U U U"<"""X".4...X.Y4YYYXY  hx}.E QU    '$'''X'##T#V####4 8C=    ))*.)AE) ))))V    ,...."#2T#2d#2#2#2#2L"$"""X" 9T999X9  3   X sX X CSCCCXC" " " " H**-*-*-*-X#X  *     *! %    .IIII*;@## #37# " #####4 &c &c &C &C & & & &A<#A<4A<A<A<ArEcnd}|jsd}n|jrd}n |jrd}|rtdddd|S) Nrz3Unnamed requirements are not allowed as constraintsz4Editable requirements are not allowed as constraintszConstraints cannot have extrasaConstraints are only allowed to take the form of a package name and a version specifier. Other forms were originally permitted as an accident of the implementation, but were undocumented. The new implementation of the resolver no longer supports these forms.z+replacing the constraint with a requirementi )rrrissue)r|r@r;r%)r>problems rJcheck_invalid_constraint_typerZ4soG 83G 3H 32  / F  NrLoptionsreqsoptionc^t||drdS|D]}t||drdSdS)NTF)getattr)r[r\r]r>s rJ _has_optionr`PsOw%%t 3 % % 44  5rLct||d}t||d}|s|rHtddddtd|jdSdS) N build_optionsr7z2--build-option and --global-option are deprecated.iS.zto use --config-settingsr)rrXrrzTImplying --no-binary=:all: due to the presence of --build-option / --global-option. )r`r%rrformat_controldisallow_binaries)r[r\has_build_optionshas_global_optionss rJcheck_legacy_setup_py_optionsrgYs$GT?CC$Wd4DEE 3. 3G2      1    0022222 3 3rL)arUloggingrPr)r+rr-optparsertypingrrrrrr r r pip._vendor.packaging.markersr "pip._vendor.packaging.requirementsr pip._vendor.packaging.specifiersrpip._vendor.packaging.utilsrpip._vendor.packaging.versionrrrpip._vendor.pyproject_hooksrpip._internal.build_envrrpip._internal.exceptionsrpip._internal.locationsrpip._internal.metadatarrrrpip._internal.metadata.baserpip._internal.models.direct_urlrpip._internal.models.linkr'pip._internal.operations.build.metadatar0pip._internal.operations.build.metadata_editabler.pip._internal.operations.build.metadata_legacyr0pip._internal.operations.install.editable_legacyr rO&pip._internal.operations.install.wheelr!pip._internal.pyprojectr"r#pip._internal.req.req_uninstallr$pip._internal.utils.deprecationr%pip._internal.utils.hashesr&pip._internal.utils.miscr'r(r)r*r+r,pip._internal.utils.packagingr.pip._internal.utils.subprocessr/pip._internal.utils.temp_dirr0r1pip._internal.utils.virtualenvr2pip._internal.vcsr3 getLoggerrtrr5rlrZrr`rgr6rLrJrs SSSSSSSSSSSSSSSSSSSS000000::::::999999999999111111@@@@@@>>>>>>JJJJJJJJ666666...... 877777555555******EEEEEEWWWWWWA@@@@@LLLLLLLL<<<<<<666666------544444FFFFFFEEEEEEEECCCCCC!!!!!!  8 $ $q &q &q &q &q &q &q &q &h'9c8t,>'?QU3 3 ! "3 333333rL