Ë
    ��hÌ‹  ã                   óœ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m6Z: d dl;m<Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZS d dlTmUZU d dlVmWZWmXZX d dlYmZZZ d d l[m\Z\ d d!l]m^Z^  ej¾                  e`«      Za G d"„ d#«      Zbd$ebd%ecfd&„Zdd'ed(eeb   d)ecd%eefd*„Zfd'ed(eeb   d%dfd+„Zgy),é    N)ÚValues)ÚPath)ÚAnyÚ
CollectionÚDictÚIterableÚListÚOptionalÚSequenceÚUnion)ÚMarker)ÚRequirement)ÚSpecifierSet)Úcanonicalize_name)ÚVersion)Úparse)ÚBuildBackendHookCaller)ÚBuildEnvironmentÚNoOpBuildEnvironment)ÚInstallationErrorÚPreviousBuildDirError)Ú
get_scheme)ÚBaseDistributionÚget_default_environmentÚget_directory_distributionÚget_wheel_distribution)ÚFilesystemWheel)Ú	DirectUrl)ÚLink)Úgenerate_metadata)Úgenerate_editable_metadata)Úinstall_editable)Úinstall_wheel)Úload_pyproject_tomlÚmake_pyproject_path)ÚUninstallPathSet)Ú
deprecated)ÚHashes)Ú ConfiguredBuildBackendHookCallerÚask_path_existsÚ
backup_dirÚdisplay_pathÚhide_urlÚis_installable_dirÚredact_auth_from_requirementÚredact_auth_from_url)Úget_requirement)Úrunner_with_spinner_message)ÚTempDirectoryÚtempdir_kinds)Úunpack_file)Úrunning_under_virtualenv)Úvcsc                    óÄ  — e Zd ZdZ	 	 	 	 	 dLddddddddœdee   deeed f      ded	ee	   d
ee
   dee   dedeee      deeeee   f      deeeeeee   f   f      dedee   dededdfd„Zdefd„Zdefd„Zdefd„Zedee   fd„«       Zej*                  defd„«       Zedefd„«       Zedefd„«       Zedefd„«       ZdMdeee      defd„Zedefd „«       ZdNd!edefd"„Zdee   fd#„Z d$ed%ed&edefd'„Z!dOd(„Z"dOd)„Z#d*eddfd+„Z$edefd,„«       Z%edefd-„«       Z&edefd.„«       Z'edefd/„«       Z(edefd0„«       Z)edefd1„«       Z*dOd2„Z+dOd3„Z,dOd4„Z-ede.fd5„«       Z/de0fd6„Z1dOd7„Z2	 	 dPd8ed%ed&eddfd9„Z3d:e4ddfd;„Z5dOd<„Z6dOd=„Z7	 dPd>ed?edee8   fd@„Z9dAedBedCedefdD„Z:d$ee   ddfdE„Z;	 	 	 	 	 	 	 dQdee<e      dFee   dGee   dHee   dIed*edJeddfdK„Z=y)RÚInstallRequirementzÆ
    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_optionsÚconfig_settingsÚ
constraintÚextrasÚuser_suppliedÚpermit_editable_wheelsÚreqÚ
comes_fromÚeditableÚlinkÚmarkersÚ
use_pep517Úisolatedr;   r<   r=   r>   r?   r@   rA   Úreturnc                ót  — |�t        |t        «      sJ |«       ‚|| _        || _        || _        || _        || _        d | _        | j
                  r[|sJ ‚|j                  rKt        j                  j                  t        j                  j                  |j                  «      «      | _        |€#|r!|j                  rt        |j                  «      }|x| _        | _        d | _        d | _        d | _        | j                   r1| j                   j                  r| j                   j                  | _        |r|| _        n#|r|j*                  | _        nt-        «       | _        |€|r|j.                  }|| _        d | _        d| _        d | _        d | _        |r|ng | _        |	r|	ni | _        |
| _        d| _         || _!        || _"        tG        «       | _$        d | _%        d | _&        g | _'        d | _(        || _)        | j>                  r+| jR                  du rtT        jW                  d| «       d| _)        d| _,        d | _-        y )NFzG--no-use-pep517 ignored for %s because --config-settings are specified.T).Ú
isinstancer   rB   rC   r>   rD   rA   Ú
source_dirÚis_fileÚosÚpathÚnormpathÚabspathÚ	file_pathÚurlr   rE   Úoriginal_linkÚcached_wheel_source_linkÚdownload_infoÚlocal_file_pathr?   ÚsetÚmarkerrF   Úsatisfied_byÚshould_reinstallÚ_temp_build_dirÚinstall_succeededr;   r<   r=   Úpreparedr@   rH   r   Ú	build_envÚmetadata_directoryÚpyproject_requiresÚrequirements_to_checkÚpep517_backendrG   ÚloggerÚwarningÚneeds_more_preparationÚ_archive_source)ÚselfrB   rC   rD   rE   rF   rG   rH   r;   r<   r=   r>   r?   r@   rA   s                  ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/req/req_install.pyÚ__init__zInstallRequirement.__init__H   s  € ð$ ˆ{œj¨¬kÔ:Ð?¸CÓ?Ð:ØˆŒØ$ˆŒØ$ˆŒØ ˆŒØ&<ˆÔ#ð *.ˆŒØ�=Š=ÙˆK�4Ø�|Š|Ü"$§'¡'×"2Ñ"2´2·7±7·?±?À4Ç>Á>Ó3RÓ"S�”ð ˆ<™C C§G¢Gä˜Ÿ™“=ˆDØ)-Ð-ˆŒ	�DÔ&ð
 9=ˆÔ%ð 37ˆÔð /3ˆÔØ�9Š9˜Ÿ™×*Ò*Ø#'§9¡9×#6Ñ#6ˆDÔ áØ ˆD�KÙØŸ*™*ˆD�Kä›%ˆDŒKØˆ?™sØ—j‘jˆGØˆŒð 9=ˆÔð !&ˆÔà8<ˆÔà15ˆÔá0>™nÀBˆÔÙ,8™L¸bˆÔØ.ˆÔàˆŒð +ˆÔà ˆŒÜ+?Ó+AˆŒð 26ˆÔð 8<ˆÔð 13ˆÔ"ð AEˆÔð %ˆŒð ×ÒØ�‰ %Ñ'Ü—‘ð?àôð
 #ˆDŒOð ',ˆÔ#ð 04ˆÕó    c                 óP  — | j                   rGt        | j                   «      }| j                  rT|dt        | j                  j                  «      › �z  }n.| j                  r t        | j                  j                  «      }nd}| j
                  �@| j
                  j                  � t        | j
                  j                  «      }nd}|d|› �z  }| j                  rLt        | j                  t        «      r| j                  }n| j                  j                  «       }|r	|d|› d�z  }|S )Nz from z<InstallRequirement>z<memory>ú in z (from ú))rB   r/   rE   r0   rS   rZ   Úlocationr,   rC   rK   ÚstrÚ	from_path)rh   Úsro   rC   s       ri   Ú__str__zInstallRequirement.__str__È   sñ   € Ø�8Š8Ü,¨T¯X©XÓ6ˆAØ�yŠyØ�vÔ2°4·9±9·=±=ÓAÐBÐCÑC‘Ø�YŠYÜ$ T§Y¡Y§]¡]Ó3‰Aà&ˆAØ×ÑÐ(Ø× Ñ ×)Ñ)Ð5Ü'¨×(9Ñ(9×(BÑ(BÓC‘à%�Ø�4˜�zÐ"Ñ"ˆAØ�?Š?Ü˜$Ÿ/™/¬3Ô/Ø,0¯O©O‘
à!Ÿ_™_×6Ñ6Ó8�
ÙØ�w˜z˜l¨!Ð,Ñ,�Øˆrk   c                 óh   — d| j                   j                  › dt        | «      › d| j                  ›d�S )Nú<z	 object: z
 editable=ú>)Ú	__class__Ú__name__rp   rD   ©rh   s    ri   Ú__repr__zInstallRequirement.__repr__à   s6   € à�—‘×'Ñ'Ð(¨	Ü�4‹yˆk˜ D§M¡MÐ#4°Að7ð	
rk   c                 óÄ   ‡— t        | «      Št        ‰«      }ˆfd„t        |«      D «       }dj                  | j                  j                  dj                  |«      ¬«      S )z5An un-tested helper for getting state, for debugging.c              3   ó2   •K  — | ]  }|› d ‰|   ›�–— Œ y­w)ú=Nr:   )Ú.0ÚattrÚ
attributess     €ri   ú	<genexpr>z2InstallRequirement.format_debug.<locals>.<genexpr>ë   s"   øè ø€ ÒJ°D�D�6˜˜: dÑ+Ð.Ô/ÑJùs   ƒz<{name} object: {{{state}}}>z, )ÚnameÚstate)ÚvarsÚsortedÚformatrw   rx   Újoin)rh   Únamesrƒ   r€   s      @ri   Úformat_debugzInstallRequirement.format_debugæ   sU   ø€ ä˜$“Zˆ
Ü�zÓ"ˆãJ¼FÀ5»MÔJˆØ-×4Ñ4Ø—‘×(Ñ(Ø—)‘)˜EÓ"ð 5ó 
ð 	
rk   c                 óH   — | j                   €y | j                   j                  S ©N)rB   r‚   ry   s    ri   r‚   zInstallRequirement.nameò   s   € à�8‰8ÐØØ�x‰x�}‰}Ðrk   c                 ó@  — | j                   sy| j                  sJ ‚| j                  5  t        d«      }| j                  j	                  |«      5  d| j                  j                  «       v cd d d «       cd d d «       S # 1 sw Y   nxY w	 d d d «       y # 1 sw Y   y xY w)NFz1Checking if build backend supports build_editableÚbuild_editable)rG   rc   r_   r2   Úsubprocess_runnerÚ_supported_features)rh   Úrunners     ri   Úsupports_pyproject_editablez.InstallRequirement.supports_pyproject_editableø   s¦   € à�ŠØØ×"Ò"Ð"Ð"Ø�^‰^ñ 	UÜ0ØCóˆFð ×$Ñ$×6Ñ6°vÓ>ñ UØ'¨4×+>Ñ+>×+RÑ+RÓ+TÐT÷Uð U÷		Uñ 	U÷Uð Uúð U÷		U÷ 	Uñ 	Uús#   ¨'BÁA>Á+	BÁ>B	ÂBÂBc                 óJ   — | j                   €J ‚| j                   j                  S r‹   )rB   Ú	specifierry   s    ri   r“   zInstallRequirement.specifier  s"   € à�x‰xÐ#Ð#Ð#Ø�x‰x×!Ñ!Ð!rk   c                 ó   — | j                   duS )z7Whether this requirement was specified as a direct URL.N)rT   ry   s    ri   Ú	is_directzInstallRequirement.is_direct	  s   € ð ×!Ñ!¨Ð-Ð-rk   c                 óª   — | j                   €J ‚| j                   j                  }t        |«      dk(  xr  t        t	        |«      «      j
                  dv S )z„Return whether I am pinned to an exact version.

        For example, some-package==1.2 is pinned; some-package>1.2 is not.
        é   >   ú==ú===)rB   r“   ÚlenÚnextÚiterÚoperator)rh   Ú
specifierss     ri   Ú	is_pinnedzInstallRequirement.is_pinned  sL   € ð �x‰xÐ#Ð#Ð#Ø—X‘X×'Ñ'ˆ
Ü�:‹ !Ñ#ÒX¬¬T°*Ó-=Ó(>×(GÑ(GÈ=Ð(XÐXrk   Úextras_requestedc                 óN   ‡ — |sd}‰ j                   �t        ˆ fd„|D «       «      S y)N)Ú c              3   óX   •K  — | ]!  }‰j                   j                  d |i«      –— Œ# y­w)ÚextraN)rF   Úevaluate)r~   r¤   rh   s     €ri   r�   z3InstallRequirement.match_markers.<locals>.<genexpr>  s*   øè ø€ ò Ø<A�—‘×%Ñ% w°Ð&6×7ñùs   ƒ'*T)rF   Úany)rh   r    s   ` ri   Úmatch_markersz InstallRequirement.match_markers  s7   ø€ Ùð  %ÐØ�<‰<Ð#Üó ØEUôó ð ð rk   c                 ó,   — t        | j                  «      S )z©Return whether any known-good hashes are specified as options.

        These activate --require-hashes mode; hashes specified as part of a
        URL do not.

        )Úboolr<   ry   s    ri   Úhas_hash_optionsz#InstallRequirement.has_hash_options$  s   € ô �D×%Ñ%Ó&Ð&rk   Útrust_internetc                 óZ  — | j                   j                  «       }|r| j                  }n'| j                  r| j                  r| j
                  }nd}|rO|j                  rC|j                  €J ‚|j                  |j                  g «      j                  |j                  «       t        |«      S )a§  Return a hash-comparer that considers my option- and URL-based
        hashes to be known-good.

        Hashes in URLs--ones embedded in the requirements file, not ones
        downloaded from an index server--are almost peers with ones from
        flags. They satisfy --require-hashes (whether it was implicitly or
        explicitly activated) but do not activate it. md5 and sha224 are not
        allowed in flags, which should nudge people toward good algos. We
        always OR all hashes together, even ones from URLs.

        :param trust_internet: Whether to trust URL-based (#md5=...) hashes
            downloaded from the internet, as by populate_link()

        N)r<   ÚcopyrE   r•   r@   rT   ÚhashÚ	hash_nameÚ
setdefaultÚappendr(   )rh   r«   Úgood_hashesrE   s       ri   ÚhasheszInstallRequirement.hashes.  sŠ   € ð ×'Ñ'×,Ñ,Ó.ˆÙØ—9‘9‰DØ�^Š^ × 2Ò 2Ø×%Ñ%‰DàˆDÙ�D—I’IØ—>‘>Ð-Ð-Ð-Ø×"Ñ" 4§>¡>°2Ó6×=Ñ=¸d¿i¹iÔHÜ�kÓ"Ð"rk   c                 óø   — | j                   €yt        | j                   «      }| j                  rKt        | j                  t        «      r| j                  }n| j                  j	                  «       }|r|d|z   z  }|S )z8Format a nice indicator to show where this "comes from" Nz->)rB   rp   rC   rK   rq   )rh   rr   rC   s      ri   rq   zInstallRequirement.from_pathI  sc   € à�8‰8ÐØÜ�—‘‹MˆØ�?Š?ä˜$Ÿ/™/¬3Ô/Ø!Ÿ_™_‘
à!Ÿ_™_×6Ñ6Ó8�
ÙØ�T˜JÑ&Ñ&�Øˆrk   Ú	build_dirÚ
autodeleteÚparallel_buildsc                 ó¸  — |€J ‚| j                   �.| j                   j                  sJ ‚| j                   j                  S | j                  €6t        t        j
                  d¬«      | _         | j                   j                  S t        | j                  j                  «      }|r#|› dt        j                  «       j                  › �}t        j                  j                  |«      s+t        j                  d|«       t        j                  |«       t        j                  j!                  ||«      }|rd nd}t        ||t        j
                  d¬«      j                  S )NT)ÚkindÚglobally_managedÚ_zCreating directory %sF)rO   Údeleter¹   rº   )r\   rO   rB   r3   r4   Ú	REQ_BUILDr   r‚   ÚuuidÚuuid4ÚhexrN   Úexistsrd   ÚdebugÚmakedirsr‡   )rh   rµ   r¶   r·   Údir_nameÚactual_build_dirÚ
delete_args          ri   Úensure_build_locationz(InstallRequirement.ensure_build_locationX  s"  € ð Ð$Ð$Ð$Ø×ÑÐ+Ø×'Ñ'×,Ò,Ð,Ð,Ø×'Ñ'×,Ñ,Ð,Ø�8‰8Ðô $1Ü"×,Ñ,¸tô$ˆDÔ ð ×'Ñ'×,Ñ,Ð,ô *¨$¯(©(¯-©-Ó8ˆÙØ"˜ 1¤T§Z¡Z£\×%5Ñ%5Ð$6Ð7ˆHô �w‰w�~‰~˜iÔ(Ü�L‰LÐ0°)Ô<Ü�K‰K˜	Ô"ÜŸ7™7Ÿ<™<¨	°8Ó<Ðñ (‘T¨Uˆ
ÜØ!ØÜ×(Ñ(Ø!ô	
÷
 ‰$ð	rk   c                 ó&  — | j                   �J ‚| j                  €J ‚| j                  €J ‚t        t	        | j                  d   «      t
        «      rd}nd}t        dj                  | j                  d   || j                  d   g«      «      | _         y)z*Set requirement after generating metadata.Nr   r˜   r™   r¢   ÚName)rB   ÚmetadatarL   rK   Úparse_versionr   r1   r‡   )rh   Úops     ri   Ú_set_requirementz#InstallRequirement._set_requirementƒ  sŽ   € à�x‰xÐÐÐØ�}‰}Ð(Ð(Ð(Ø�‰Ð*Ð*Ð*ô ”m D§M¡M°)Ñ$<Ó=¼wÔGØ‰BàˆBä"Ø�G‰Gà—M‘M &Ñ)ØØ—M‘M )Ñ,ðóó
ˆ�rk   c                 ó  — | j                   €J ‚t        | j                  d   «      }t        | j                   j                  «      |k(  ry t        j                  d| j                  || j                  «       t        |«      | _         y )NrÉ   zeGenerating metadata for package %s produced metadata for project name %s. Fix your #egg=%s fragments.)rB   r   rÊ   r‚   rd   re   r1   )rh   Úmetadata_names     ri   Úwarn_on_mismatching_namez+InstallRequirement.warn_on_mismatching_name™  sq   € Ø�x‰xÐ#Ð#Ð#Ü)¨$¯-©-¸Ñ*?Ó@ˆÜ˜TŸX™XŸ]™]Ó+¨}Ò<àô 	�‰ð!ð �I‰IØØ�I‰Iô	
ô # =Ó1ˆ�rk   Úuse_user_sitec                 óì  — | j                   €yt        «       j                  | j                   j                  «      }|sy| j                   j                  j                  |j                  d¬«      }|sbd| _        |rO|j                  rd| _	        yt        «       r:|j                  r-t        d|j                  › d|j                  › �«      ‚d| _	        yyy| j                  rd| _	        d| _        y|| _        y)z¬Find 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 rm   )rB   r   Úget_distributionr‚   r“   ÚcontainsÚversionrZ   Úin_usersiter[   r6   Úin_site_packagesr   Úraw_namero   rD   )rh   rÑ   Úexisting_distÚversion_compatibles       ri   Úcheck_if_existsz"InstallRequirement.check_if_exists«  sø   € ð
 �8‰8ÐØÜ/Ó1×BÑBÀ4Ç8Á8Ç=Á=ÓQˆÙØà!ŸX™X×/Ñ/×8Ñ8Ø×!Ñ!Øð 9ó 
Ðñ "Ø $ˆDÔÙØ ×,Ò,Ø,0�DÕ)Ü-Ô/°M×4RÒ4RÜ+ð7Ø7D×7MÑ7MÐ6Nð OØ+×4Ñ4Ð5ð7óð ð )-�Õ%ð 5SÐ/ð �}Š}Ø(,�Ô%ð %)�Õ!à$1�Õ!rk   c                 óH   — | j                   sy| j                   j                  S )NF)rE   Úis_wheelry   s    ri   rÞ   zInstallRequirement.is_wheelÑ  s   € à�yŠyØØ�y‰y×!Ñ!Ð!rk   c                 ó   — | j                   d uS r‹   )rU   ry   s    ri   Úis_wheel_from_cachez&InstallRequirement.is_wheel_from_cache×  s   € ð ×,Ñ,°DÐ8Ð8rk   c                 óÎ   — | j                   s
J d| › �«       ‚t        j                  j                  | j                   | j                  xr | j                  j
                  xs d«      S )NúNo source dir for r¢   )rL   rN   rO   r‡   rE   Úsubdirectory_fragmentry   s    ri   Úunpacked_source_directoryz,InstallRequirement.unpacked_source_directoryÞ  sQ   € à�ŠÐ;Ð"4°T°FÐ ;Ó;ˆÜ�w‰w�|‰|Ø�O‰O˜TŸY™YÒJ¨4¯9©9×+JÑ+JÒPÈbó
ð 	
rk   c                 ó†   — | j                   s
J d| › �«       ‚t        j                  j                  | j                  d«      }|S )Nrâ   zsetup.py©rL   rN   rO   r‡   rä   )rh   Úsetup_pys     ri   Úsetup_py_pathz InstallRequirement.setup_py_pathå  s:   € à�ŠÐ;Ð"4°T°FÐ ;Ó;ˆÜ—7‘7—<‘< × >Ñ >À
ÓKˆàˆrk   c                 ó†   — | j                   s
J d| › �«       ‚t        j                  j                  | j                  d«      }|S )Nrâ   z	setup.cfgræ   )rh   Ú	setup_cfgs     ri   Úsetup_cfg_pathz!InstallRequirement.setup_cfg_pathì  s;   € à�ŠÐ;Ð"4°T°FÐ ;Ó;ˆÜ—G‘G—L‘L ×!?Ñ!?ÀÓMˆ	àÐrk   c                 óX   — | j                   s
J d| › �«       ‚t        | j                  «      S )Nrâ   )rL   r%   rä   ry   s    ri   Úpyproject_toml_pathz&InstallRequirement.pyproject_toml_pathó  s,   € à�ŠÐ;Ð"4°T°FÐ ;Ó;ˆÜ" 4×#AÑ#AÓBÐBrk   c                 ó  — t        | j                  | j                  | j                  t	        | «      «      }|€| j
                  rJ ‚d| _        yd| _        |\  }}}}|| _        || _        t        | | j                  ||¬«      | _
        y)aA  Load 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.
        NFT)Úbackend_path)r$   rG   rí   rè   rp   r=   rb   ra   r)   rä   rc   )rh   Úpyproject_toml_dataÚrequiresÚbackendÚcheckrï   s         ri   r$   z&InstallRequirement.load_pyproject_tomlø  s‘   € ô 2Ø�O‰O˜T×5Ñ5°t×7IÑ7IÌ3ÈtË9ó
Ðð Ð&Ø×+Ò+Ð+Ð+Ø#ˆDŒOØàˆŒØ1DÑ.ˆ�'˜5 ,Ø%*ˆÔ"Ø"*ˆÔÜ>ØØ×*Ñ*ØØ%ô	
ˆÕrk   c                 ó  — | j                   r}| j                  rp| j                  sct        j                  j                  | j                  «      s9t        j                  j                  | j                  «      st        d| › d�«      ‚yyyyy)zÐCheck 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
        zProject 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)	rD   rG   r‘   rN   rO   Úisfilerè   rë   r   ry   s    ri   Úisolated_editable_sanity_checkz1InstallRequirement.isolated_editable_sanity_check  s€   € ð �MŠMØ—’Ø×4Ò4Ü—G‘G—N‘N 4×#5Ñ#5Ô6Ü—G‘G—N‘N 4×#6Ñ#6Ô7ä#Ø˜4˜&ð !Hð Ióð ð 8ð 7ð 5ð  ð rk   c                 óz  — | j                   s
J d| › �«       ‚| j                  xs d| j                  › �}| j                  r‚| j                  €J ‚| j
                  r@| j                  r4| j                  r(t        | j                  | j                  |¬«      | _
        net        | j                  | j                  |¬«      | _
        n=t        | j                  | j                  | j                  | j                  |¬«      | _
        | j                  s| j!                  «        n| j#                  «        | j%                  «        y)z¿Ensure 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.
        râ   zfrom N)r_   rò   Údetails)r_   rè   rL   rH   rø   )rL   r‚   rE   rG   rc   rD   rA   r‘   r!   r_   r`   r    Úgenerate_metadata_legacyrè   rä   rH   rÍ   rÐ   Úassert_source_matches_version)rh   rø   s     ri   Úprepare_metadataz#InstallRequirement.prepare_metadata)  s	  € ð �ŠÐ;Ð"4°T°FÐ ;Ó;ˆØ—)‘)Ò2  t§y¡y kÐ2ˆà�?Š?Ø×&Ñ&Ð2Ð2Ð2à—’Ø×/Ò/Ø×4Ò4ä*DØ"Ÿn™nØ ×/Ñ/Ø#ô+�Õ'ô +<Ø"Ÿn™nØ ×/Ñ/Ø#ô+�Õ'ô '?ØŸ.™.Ø"×0Ñ0Ø×9Ñ9ØŸ™Øô'ˆDÔ#ð �yŠyØ×!Ñ!Õ#à×)Ñ)Ô+à×*Ñ*Õ,rk   c                 óp   — t        | d«      s| j                  «       j                  | _        | j                  S )NÚ	_metadata)ÚhasattrÚget_distrÊ   rý   ry   s    ri   rÊ   zInstallRequirement.metadataU  s)   € ä�t˜[Ô)Ø!Ÿ]™]›_×5Ñ5ˆDŒNà�~‰~Ðrk   c                 ó&  — | j                   rt        | j                   «      S | j                  rV| j                  rJ| j                  €J ‚t        t        | j                  «      t        | j                  j                  «      «      S t        d| › d�«      ‚)NzInstallRequirement zC has no metadata directory and no wheel: can't make a distribution.)
r`   r   rW   rÞ   rB   r   r   r   r‚   ÚAssertionErrorry   s    ri   rÿ   zInstallRequirement.get_dist\  s†   € Ø×"Ò"Ü-¨d×.EÑ.EÓFÐFØ×!Ò! d§m¢mØ—8‘8Ð'Ð'Ð'Ü)Ü × 4Ñ 4Ó5Ü! $§(¡(§-¡-Ó0óð ô Ø! $ ð ()ð *ó
ð 	
rk   c                 óH  — | j                   s
J d| › �«       ‚| j                  d   }| j                  rF| j                  j                  r0|| j                  j                  vrt        j                  d| |«       y t        j                  dt        | j                   «      || «       y )Nrâ   rÖ   z'Requested %s, but installing version %sz;Source in %s has version %s, which satisfies requirement %s)rL   rÊ   rB   r“   rd   re   rÂ   r,   )rh   rÖ   s     ri   rú   z0InstallRequirement.assert_source_matches_versionj  s…   € Ø�ŠÐ;Ð"4°T°FÐ ;Ó;ˆØ—-‘- 	Ñ*ˆØ�8Š8˜Ÿ™×*Ò*¨w¸d¿h¹h×>PÑ>PÑ/PÜ�N‰NØ9ØØõô �L‰LØMÜ˜TŸ_™_Ó-ØØõ	rk   Ú
parent_dirc                 óP   — | j                   €| j                  |||¬«      | _         yy)aA  Ensure 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)r¶   r·   )rL   rÇ   )rh   r  r¶   r·   s       ri   Úensure_has_source_dirz(InstallRequirement.ensure_has_source_dir|  s3   € ð �?‰?Ð"Ø"×8Ñ8ØØ%Ø /ð 9ó ˆD�Oð #rk   Úarchive_sourcec                 ó.   — | j                   �J ‚|| _         y r‹   )rg   )rh   r  s     ri   Úneeds_unpacked_archivez)InstallRequirement.needs_unpacked_archive’  s   € Ø×#Ñ#Ð+Ð+Ð+Ø-ˆÕrk   c                 óî   — | j                   €J ‚| j                  �*t        t        | j                  «      | j                   «       yt	        | j                   «      rt        d| › d| j                   › d�«      ‚y)z6Ensure the source directory has not yet been built in.Nz%pip can't proceed with requirements 'z)' due to a pre-existing build directory (zœ). This is likely due to a previous installation that failed . pip is being responsible and not assuming it can delete this. Please delete it and try again.)rL   rg   r5   rp   r.   r   ry   s    ri   Úensure_pristine_source_checkoutz2InstallRequirement.ensure_pristine_source_checkout–  sx   € à�‰Ð*Ð*Ð*Ø×ÑÐ+Üœ˜D×0Ñ0Ó1°4·?±?ÕCÜ §¡Ô0ô (Ø7¸°vð >1Ø15·±Ð0Að B2ð2óð ð	 1rk   c                 óÖ  — | j                   s!t        j                  d| j                  «       y | j                  sJ ‚| j                  sJ ‚| j                   j
                  dk(  ry t        j                  | j                   j
                  «      }|sJ d| j                   j                  › �«       ‚t        | j                   j                  «      }|j                  | j                  |d¬«       y )Nz>Cannot update repository at %s; repository location is unknownÚfilezUnsupported VCS URL r   )rS   Ú	verbosity)rE   rd   rÂ   rL   rD   Úschemer7   Úget_backend_for_schemerS   r-   Úobtain)rh   Úvcs_backendÚ
hidden_urls      ri   Úupdate_editablez"InstallRequirement.update_editable¨  sµ   € Ø�yŠyÜ�L‰LØPØ—‘ôð Ø�}Š}Ðˆ}Ø�ŠÐˆØ�9‰9×Ñ˜vÒ%àÜ×0Ñ0°·±×1AÑ1AÓBˆñ ÐBÐ2°4·9±9·=±=°/ÐBÓBˆ{Ü˜dŸi™iŸm™mÓ,ˆ
Ø×Ñ˜4Ÿ?™?°
ÀaÐÕHrk   Úauto_confirmÚverbosec                 ó<  — | j                   sJ ‚t        «       j                  | j                   j                  «      }|s!t        j                  d| j                  «       yt        j                  d|«       t        j                  |«      }|j                  ||«       |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.NzFound existing installation: %s)
rB   r   rÔ   r‚   rd   re   Úinfor&   Ú	from_distÚremove)rh   r  r  ÚdistÚuninstalled_pathsets        ri   Ú	uninstallzInstallRequirement.uninstall¼  sy   € ð �xŠxˆˆxÜ&Ó(×9Ñ9¸$¿(¹(¿-¹-ÓHˆÙÜ�N‰NÐ@À$Ç)Á)ÔLØÜ�‰Ð5°tÔ<ä.×8Ñ8¸Ó>ÐØ×"Ñ" <°Ô9Ø"Ð"rk   rO   Ú	parentdirÚrootdirc                 óÔ   — dt         dt         dt         fd„}| j                  €J ‚t        j                  j	                  ||«      } |||«      }| j                  j
                  dz   |z   S )Nr‚   ÚprefixrI   c                 óî   — | j                  |t        j                  j                  z   «      sJ d| ›d|›�«       ‚| t	        |«      dz   d  } | j                  t        j                  j                  d«      } | S )Nzname z doesn't start with prefix r—   ú/)Ú
startswithrN   rO   Úseprš   Úreplace)r‚   r   s     ri   Ú_clean_zip_namez=InstallRequirement._get_archive_name.<locals>._clean_zip_name×  st   € Ø—?‘?ØœŸ™Ÿ™Ñ$ôð Eà�t�hÐ9¸&¸ÐDóEð ð œ˜F› a™Ð)Ð*ˆDØ—<‘<¤§¡§¡¨SÓ1ˆDØˆKrk   r"  )rp   rB   rN   rO   r‡   r‚   )rh   rO   r  r  r&  r‚   s         ri   Ú_get_archive_namez$InstallRequirement._get_archive_nameÖ  sf   € ð	¤#ð 	¬sð 	´só 	ð �x‰xÐ#Ð#Ð#Ü�w‰w�|‰|˜I tÓ,ˆÙ˜t WÓ-ˆØ�x‰x�}‰}˜sÑ" TÑ)Ð)rk   c                 ó@  — | j                   sJ ‚|€yd}dj                  | j                  | j                  d   «      }t        j
                  j                  ||«      }t        j
                  j                  |«      rÅt        dt        |«      › d�d«      }|dk(  rd	}n¤|d
k(  r5t        j                  dt        |«      «       t	        j                  |«       nj|dk(  rKt        |«      }t        j                  dt        |«      t        |«      «       t        j                  ||«       n|dk(  rt!        j"                  d«       |syt%        j&                  |d
t$        j(                  d¬«      }|5  t        j
                  j+                  t        j
                  j-                  | j.                  «      «      }t	        j0                  |«      D ]Ÿ  \  }	}
}|
D ]G  }| j3                  ||	|¬«      }t%        j4                  |dz   «      }d|_        |j9                  |d«       ŒI |D ]H  }| j3                  ||	|¬«      }t        j
                  j                  |	|«      }|j;                  ||«       ŒJ Œ¡ 	 ddd«       t        j=                  dt        |«      «       y# 1 sw Y   Œ)xY w)z}Saves archive to provided build_dir.

        Used for saving downloaded VCS requirements as part of `pip download`.
        NTz	{}-{}.ziprÖ   z	The file z- exists. (i)gnore, (w)ipe, (b)ackup, (a)bort )ÚiÚwÚbÚar)  Fr*  zDeleting %sr+  zBacking up %s to %sr,  éÿÿÿÿ)Ú
allowZip64)r  r  r"  i  ír¢   zSaved %s)rL   r†   r‚   rÊ   rN   rO   r‡   rÁ   r*   r,   rd   re   r  r+   ÚshutilÚmoveÚsysÚexitÚzipfileÚZipFileÚZIP_DEFLATEDÚnormcaserQ   rä   Úwalkr'  ÚZipInfoÚexternal_attrÚwritestrÚwriter  )rh   rµ   Úcreate_archiveÚarchive_nameÚarchive_pathÚresponseÚ	dest_fileÚ
zip_outputÚdirÚdirpathÚdirnamesÚ	filenamesÚdirnameÚdir_arcnameÚzipdirÚfilenameÚfile_arcnames                    ri   ÚarchivezInstallRequirement.archiveä  sT  € ð
 �ŠÐˆØÐØàˆØ"×)Ñ)¨$¯)©)°T·]±]À9Ñ5MÓNˆÜ—w‘w—|‘| I¨|Ó<ˆä�7‰7�>‰>˜,Ô'Ü&ØœL¨Ó6Ð7ð 8%ð %à$óˆHð
 ˜3ŠØ!&‘Ø˜S’Ü—‘˜}¬l¸<Ó.HÔIÜ—	‘	˜,Õ'Ø˜S’Ü& |Ó4�	Ü—‘Ø)Ü  Ó.Ü  Ó+ôô
 —‘˜L¨)Õ4Ø˜S’Ü—‘˜”áØä—_‘_ØØÜ× Ñ Øô	
ˆ
ð ñ 	=Ü—'‘'×"Ñ"¤2§7¡7§?¡?°4×3QÑ3QÓ#RÓSˆCÜ02·±¸³ò =Ñ,�˜ 9Ø'ò 4�GØ"&×"8Ñ"8ØØ")Ø #ð #9ó #�Kô
 %Ÿ_™_¨[¸3Ñ->Ó?�FØ+6�FÔ(Ø×'Ñ'¨°Õ3ð4ð !*ò =�HØ#'×#9Ñ#9Ø Ø")Ø #ð $:ó $�Lô
  "Ÿw™wŸ|™|¨G°XÓ>�HØ×$Ñ$ X¨|Õ<ñ=ñ=÷	=ô* 	�‰�J¤¨\Ó :Õ;÷+	=ð 	=ús   Å-C>JÊJÚrootÚhomer   Úwarn_script_locationÚ	pycompilec                 óâ  — | j                   €J ‚t        | j                   j                  |||| j                  |¬«      }| j                  r�| j
                  s‘t        d| › d�ddd¬«       | j                  rt        j                  d| «       t        |�|ng |||| j                   j                  | j                  | j                  | j                  | j                  ¬	«	       d
| _        y | j
                  sJ ‚| j                  sJ ‚t!        | j                   j                  | j                  |t#        | j                   «      ||| j$                  r| j&                  nd | j(                  ¬«       d
| _        y )N)ÚuserrM  rL  rH   r   zLegacy editable install of z" (setup.py develop) is deprecated.z÷to add a pyproject.toml or enable --use-pep517, and use setuptools >= 64. If the resulting installation is not behaving as expected, try using --config-settings editable_mode=compat. Please consult the setuptools documentation for more informationú25.3iÁ,  ©ÚreasonÚreplacementÚgone_inÚissuez‰--config-settings ignored for legacy editable install of %s. Consider upgrading to a version of setuptools that supports PEP 660 (>= 64).)	r;   r   rM  rÑ   r‚   rè   rH   r_   rä   T)r  Úreq_descriptionrO  rN  Ú
direct_urlÚ	requested)rB   r   r‚   rH   rD   rÞ   r'   r=   rd   re   Úinstall_editable_legacyrè   r_   rä   r]   rW   r#   rp   r•   rV   r@   )	rh   r;   rL  rM  r   rN  rÑ   rO  r  s	            ri   ÚinstallzInstallRequirement.install'  sX  € ð �x‰xÐ#Ð#Ð#ÜØ�H‰H�M‰MØØØØ—]‘]Øô
ˆð �=Š= §¢Üà1°$°ð 8%ð %ðWð Øõð ×#Ò#Ü—‘ð5ð ô	ô $Ø1?Ð1K™~ÐQSØØØ+Ø—X‘X—]‘]Ø"×0Ñ0ØŸ™ØŸ.™.Ø*.×*HÑ*Hõ
ð &*ˆDÔ"Øà�}Š}Ðˆ}Ø×#Ò#Ð#Ð#äØ�H‰H�M‰MØ× Ñ ØÜ §¡›MØØ!5Ø-1¯^ª^�t×)Ò)ÀØ×(Ñ(õ		
ð "&ˆÕrk   )FNNNFr‹   )T)rI   N)FF)NNNNTFT)>rx   Ú
__module__Ú__qualname__Ú__doc__r
   r   r   rp   r©   r   r   r	   r   r   rj   rs   rz   r‰   Úpropertyr‚   Ú	functoolsÚcached_propertyr‘   r   r“   r•   rŸ   r   r§   rª   r(   r³   rq   rÇ   rÍ   rÐ   rÜ   rÞ   rà   rä   rè   rë   rí   r$   rö   rû   r   rÊ   r   rÿ   rú   r  r   r  r
  r  r&   r  r'  rK  r   r\  r:   rk   ri   r9   r9   A   s¶  „ ñð Ø#Ø$(Ø%)Øð~4ð /3Ø7;ØFJØ Ø"$Ø#Ø',ò!~4à�kÑ"ð~4ð ˜U 3Ð(<Ð#<Ñ=Ñ>ð~4ð ð	~4ð
 �t‰nð~4ð ˜&Ñ!ð~4ð ˜T‘Nð~4ð ð~4ð !  c¡Ñ+ð~4ð ˜t C¨¨c© NÑ3Ñ4ð~4ð " $ s¨E°#°t¸C±y°.Ñ,AÐ'AÑ"BÑCð~4ð ð~4ð ˜3‘ð~4ð ð~4ð  !%ð!~4ð" 
ó#~4ð@˜ó ð0
˜#ó 
ð	
˜có 	
ð ð�h˜s‘mò ó ðð
 ×Ñð	U¨Tò 	Uó ð	Uð ð"˜<ò "ó ð"ð ð.˜4ò .ó ð.ð ðY˜4ò Yó ðYñ
¨h°xÀ±}Ñ.Eð 
ÐQUó 
ð ð' $ò 'ó ð'ñ# Tð #°Vó #ð6˜8 C™=ó ð)Øð)Ø*.ð)ØAEð)à	ó)óV
ó,2ð$#2¨Tð #2°dó #2ðL ð"˜$ò "ó ð"ð
 ð9 Tò 9ó ð9ð ð
¨3ò 
ó ð
ð ð˜sò ó ðð ð ò ó ðð ðC Sò Có ðCó
ó8ó**-ðX ð˜#ò ó ðð
Ð*ó 
óð* !Ø %ñ	àðð ðð ð	ð
 
óð,.°Tð .¸dó .óó$Ið* ;@ñ#Ø ð#Ø37ð#à	Ð"Ñ	#ó#ð4* cð *°cð *ÀCð *ÈCó *ðA< ¨#¡ð A<°4ó A<ðJ 37Ø"Ø"Ø $Ø%)Ø#ØñF&à  ¨#¡Ñ/ðF&ð �s‰mðF&ð �s‰mð	F&ð
 ˜‘ðF&ð #ðF&ð ðF&ð ðF&ð 
ôF&rk   r9   rB   rI   c                 ó„   — d}| j                   sd}n| j                  rd}n| j                  rd}|rt        ddd d¬«       |S )	Nr¢   z3Unnamed requirements are not allowed as constraintsz4Editable requirements are not allowed as constraintszConstraints cannot have extrasa  Constraints 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   rS  )r‚   rD   r?   r'   )rB   Úproblems     ri   Úcheck_invalid_constraint_typere  p  sN   € à€GØ�8Š8ØG‰Ø	�ŠØH‰Ø	�ŠØ2ˆáÜð/ð FàØõ	
ð €Nrk   ÚoptionsÚreqsÚoptionc                 óL   — t        | |d «      ry|D ]  }t        ||d «      sŒ y y)NTF)Úgetattr)rf  rg  rh  rB   s       ri   Ú_has_optionrk  Œ  s4   € Üˆw˜ Ô%ØØò ˆÜ�3˜ Õ%Ùðð rk   c                 ó¾   — t        | |d«      }t        | |d«      }|s|r?t        dddd¬«       t        j                  d«       | j                  j                  «        y y )	NÚbuild_optionsr;   z2--build-option and --global-option are deprecated.iS.  zto use --config-settingsrR  )rT  rW  rU  rV  zTImplying --no-binary=:all: due to the presence of --build-option / --global-option. )rk  r'   rd   re   Úformat_controlÚdisallow_binaries)rf  rg  Úhas_build_optionsÚhas_global_optionss       ri   Úcheck_legacy_setup_py_optionsrr  •  si   € ô $ G¨T°?ÓCÐÜ$ W¨dÐ4DÓEÐÙÑ.ÜØGØØ2Øõ		
ô 	�‰ð1ô	
ð 	×Ñ×0Ñ0Õ2ð /rk   )hra  ÚloggingrN   r/  r1  r¾   r3  Úoptparser   Úpathlibr   Útypingr   r   r   r   r	   r
   r   r   Úpip._vendor.packaging.markersr   Ú"pip._vendor.packaging.requirementsr   Ú pip._vendor.packaging.specifiersr   Úpip._vendor.packaging.utilsr   Úpip._vendor.packaging.versionr   r   rË   Úpip._vendor.pyproject_hooksr   Úpip._internal.build_envr   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.metadatar   r   r   r   Úpip._internal.metadata.baser   Úpip._internal.models.direct_urlr   Úpip._internal.models.linkr   Ú'pip._internal.operations.build.metadatar    Ú0pip._internal.operations.build.metadata_editabler!   Ú.pip._internal.operations.build.metadata_legacyrù   Ú0pip._internal.operations.install.editable_legacyr"   r[  Ú&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.   r/   r0   Úpip._internal.utils.packagingr1   Úpip._internal.utils.subprocessr2   Úpip._internal.utils.temp_dirr3   r4   Úpip._internal.utils.unpackingr5   Úpip._internal.utils.virtualenvr6   Úpip._internal.vcsr7   Ú	getLoggerrx   rd   r9   rp   re  r©   rk  rr  r:   rk   ri   ú<module>r•     s!  ðÛ Û Û 	Û Û 
Û Û Ý Ý ß S× SÓ Så 0Ý :Ý 9Ý 9Ý 1Ý @Ý >ç Jß MÝ .÷ó õ 8Ý 5Ý *Ý EÝ Wõõõ Aß LÝ <Ý 6Ý -÷	÷ 	ó 	õ :Ý Fß EÝ 5Ý CÝ !à	ˆ×	Ñ	˜8Ó	$€÷l&ñ l&ð^Ð'9ð ¸có ð8˜ð  tÐ,>Ñ'?ð Èð ÐQUó ð3Øð3à
Ð!Ñ
"ð3ð 
ô3rk   