Ë
    Êmxiy7  ã                  óÞ  — d Z ddlm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 ddl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mZmZ ddl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*m+Z+ erddl,m-Z- ddl.m/Z/  G d„ ded¬«      Z0 ejb                  e2«      Z3d%d„Z4 G d„ d«      Z5d&d„Z6d'd„Z7 G d„ de«      Z8 G d„ d «      Z9 G d!„ d"«      Z: G d#„ d$e:«      Z;y)(z:Build Environment used for isolation during sdist buildingé    )ÚannotationsN)ÚOrderedDict)ÚIterable)ÚTracebackType)ÚTYPE_CHECKINGÚProtocolÚ	TypedDict)ÚVersion)Ú__file__)Úopen_spinner)Úget_platlibÚget_purelibÚ
get_scheme)Úget_default_environmentÚget_environment)Ú
deprecated)ÚVERBOSE)Úget_requirement)Úcall_subprocess)ÚTempDirectoryÚtempdir_kinds)ÚPackageFinder)ÚInstallRequirementc                  ó   — e Zd ZU ded<   y)ÚExtraEnvironzdict[str, str]Úextra_environN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úN/home/htdocs/ttos/venv/lib/python3.12/site-packages/pip/_internal/build_env.pyr   r       s   … Ø%Ô%r"   r   F)Útotalc                ó   — | |k7  r| |fS | fS ©Nr!   )ÚaÚbs     r#   Ú_dedupr)   '   s   € Ø˜!’VˆAˆqˆ6Ð% ! Ð%r"   c                  ó   — e Zd Zdd„Zy)Ú_Prefixc                ó¦   — || _         d| _        t        d|¬«      }|j                  | _        t        |j                  |j                  «      | _        y )NFÚ )Úprefix)	ÚpathÚsetupr   ÚscriptsÚbin_dirr)   ÚpurelibÚplatlibÚlib_dirs)Úselfr/   Úschemes      r#   Ú__init__z_Prefix.__init__,   s=   € ØˆŒ	ØˆŒ
Ü˜B tÔ,ˆØ—~‘~ˆŒÜ˜vŸ~™~¨v¯~©~Ó>ˆ�r"   N)r/   ÚstrÚreturnÚNone)r   r   r   r8   r!   r"   r#   r+   r+   +   s   „ ô?r"   r+   c                 óÊ   — t        j                  t        «      j                  «       j                  } | j                  «       st        | «      S t        j                  | dz  «      S )z¸Get a file to pass to a Python executable, to run the currently-running pip.

    This is used to run a pip subprocess, for installing requirements into the build
    environment.
    z__pip-runner__.py)	ÚpathlibÚPathÚpip_locationÚresolveÚparentÚis_dirr9   ÚosÚfsdecode)Úsources    r#   Úget_runnable_piprF   4   sK   € ô �\‰\œ,Ó'×/Ñ/Ó1×8Ñ8€Fà�=‰=Œ?ô �6‹{Ðä�;‰;�vÐ 3Ñ3Ó4Ð4r"   c                 óØ   — t        t        d«      rt        j                  «       } nt        «       t	        «       g} | D �ch c]!  }t
        j                  j                  |«      ’Œ# c}S c c}w )zâGet system site packages

    Usually from site.getsitepackages,
    but fallback on `get_purelib()/get_platlib()` if unavailable
    (e.g. in a virtualenv created by virtualenv<20)

    Returns normalized set of strings.
    Úgetsitepackages)ÚhasattrÚsiterH   r   r   rC   r/   Únormcase)Úsystem_sitesr/   s     r#   Ú_get_system_sitepackagesrM   D   sP   € ô ŒtÐ&Ô'Ü×+Ñ+Ó-‰ô $›¤{£}Ð5ˆØ/;Ö< tŒB�G‰G×Ñ˜TÕ"Ò<Ð<ùÒ<s   ¾&A'c                  ó,   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚBuildEnvironmentInstallerz]
    Interface for installing build dependencies into an isolated build
    environment.
    c                ó   — y r&   r!   )r6   Úrequirementsr.   ÚkindÚfor_reqs        r#   Úinstallz!BuildEnvironmentInstaller.install^   s   € ð r"   N©
rQ   úIterable[str]r.   r+   rR   r9   rS   úInstallRequirement | Noner:   r;   )r   r   r   Ú__doc__rT   r!   r"   r#   rO   rO   X   s<   „ ñð
à#ðð ðð
 ðð +ðð 
ôr"   rO   c                  óP   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 d	d„Zy)
Ú#SubprocessBuildEnvironmentInstallerzD
    Install build dependencies by calling pip in a subprocess.
    Nc                ó6   — || _         |xs g | _        || _        y r&   )ÚfinderÚ_build_constraintsÚ!_build_constraint_feature_enabled)r6   r\   Úbuild_constraintsÚ build_constraint_feature_enableds       r#   r8   z,SubprocessBuildEnvironmentInstaller.__init__m   s    € ð ˆŒØ"3Ò"9°rˆÔØ1QˆÕ.r"   c                ó¸   — | j                   s| j                  ryt        j                  j	                  d«      }|r|j                  «       syt        dddd¬«       y)zÇ
        Check for deprecation warning: PIP_CONSTRAINT affecting build environments.

        This warns when build-constraint feature is NOT enabled and PIP_CONSTRAINT
        is not empty.
        NÚPIP_CONSTRAINTzGSetting PIP_CONSTRAINT will not affect build constraints in the future,zÍto specify build constraints using --build-constraint or PIP_BUILD_CONSTRAINT. To disable this warning without any build constraints set --use-feature=build-constraint or PIP_USE_FEATURE="build-constraint"z26.2)ÚreasonÚreplacementÚgone_inÚissue)r^   r]   rC   ÚenvironÚgetÚstripr   )r6   Úpip_constraints     r#   Ú_deprecation_constraint_checkzASubprocessBuildEnvironmentInstaller._deprecation_constraint_checkw   sV   € ð ×1Ò1°T×5LÒ5LØäŸ™Ÿ™Ð(8Ó9ˆÙ ^×%9Ñ%9Ô%;Øäð3ð5ð
 Øö	
r"   c               ó²  — | j                  «        | j                  }t        j                  t	        «       dddd|j
                  ddddd	g}t        j                  «       t        j                  k  r|j                  d
«       n,t        j                  «       t        k  r|j                  d«       dD ][  }t        |j                  |«      }|j                  d|j                  dd«      z   dj!                  t#        |xs dh«      «      f«       Œ] |j$                  }	|	r4|j                  d|	d   g«       |	dd  D ]  }
|j                  d|
g«       Œ n|j                  d«       |j&                  D ]  }|j                  d|g«       Œ |j(                  r|j                  d|j(                  g«       |j*                  D ]  }|j                  d|g«       Œ |j,                  r|j                  d|j,                  g«       |j.                  r|j                  d|j.                  g«       |j0                  r|j                  d«       |j2                  r|j                  d«       | j4                  r|j                  ddg«       | j6                  r7| j6                  D ](  }|j                  d |g«       |j                  d!|g«       Œ* i }| j4                  r| j6                  sd"d#d$ii}|j                  d«       |j                  |«       |r|j8                  rd%|j8                  › �nd	}t;        d&|› �«      5 }t=        |fd'|› |› �|d(œ|¤Ž d d d «       y # 1 sw Y   y xY w))NrT   z--ignore-installedz	--no-userz--prefixz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--targetr-   z-vvz-v)Ú	no_binaryÚonly_binaryz--Ú_ú-ú,z:none:z-ir   é   z--extra-index-urlz
--no-indexz--find-linksz--proxyz--trusted-hostz--certz--client-certz--prez--prefer-binaryz--use-featurezbuild-constraintz--constraintz--build-constraintr   Ú _PIP_IN_BUILD_IGNORE_CONSTRAINTSÚ1z for zInstalling zinstalling )Úcommand_descÚspinner)rk   r\   ÚsysÚ
executablerF   r/   ÚloggerÚgetEffectiveLevelÚloggingÚDEBUGÚappendr   ÚgetattrÚformat_controlÚextendÚreplaceÚjoinÚsortedÚ
index_urlsÚ
find_linksÚproxyÚtrusted_hostsÚcustom_certÚclient_certÚallow_all_prereleasesÚprefer_binaryr^   r]   Únamer   r   )r6   rQ   r.   rR   rS   r\   Úargsr   Úformatsr„   Úextra_indexÚlinkÚhostÚconstraint_filer   Úidentify_requirementrv   s                    r#   rT   z+SubprocessBuildEnvironmentInstaller.install”   s=  € ð 	×*Ñ*Ô,à—‘ˆä�N‰NÜÓØØ ØØØ�K‰KØ'Ø)ð ð Øð#
ˆô& ×#Ñ#Ó%¬¯©Ò6Ø�K‰K˜ÕÜ×%Ñ%Ó'¬7Ò2Ø�K‰K˜ÔØ:ò 	ˆNÜ˜f×3Ñ3°^ÓDˆGØ�K‰Kà˜>×1Ñ1°#°sÓ;Ñ;Ø—H‘HœV GÒ$9°¨zÓ:Ó;ðõð	ð ×&Ñ&ˆ
ÙØ�K‰K˜˜z¨!™}Ð-Ô.Ø)¨!¨"˜~ò @�Ø—‘Ð0°+Ð>Õ?ñ@ð �K‰K˜Ô%Ø×%Ñ%ò 	0ˆDØ�K‰K˜¨Ð.Õ/ð	0ð �<Š<Ø�K‰K˜ F§L¡LÐ1Ô2Ø×(Ñ(ò 	2ˆDØ�K‰KÐ)¨4Ð0Õ1ð	2à×ÒØ�K‰K˜ 6×#5Ñ#5Ð6Ô7Ø×ÒØ�K‰K˜¨&×*<Ñ*<Ð=Ô>Ø×'Ò'Ø�K‰K˜Ô Ø×ÒØ�K‰KÐ)Ô*ð ×1Ò1Ø�K‰K˜Ð*<Ð=Ô>à×"Ò"ð $(×#:Ñ#:ò E�Ø—‘˜^¨_Ð=Ô>Ø—‘Ð1°?ÐCÕDðEð ')ˆØ×1Ò1¸$×:QÒ:Qð -Ð/QÐSVÐ.WÐXˆMà�‰�DÔØ�‰�LÔ!ñ '.°'·,²,ˆe�G—L‘L�>Ñ"ÀBð 	ô ˜K¨ vÐ.Ó/ð 	°7ÜØðà*¨4¨&Ð1EÐ0FÐGØñð  ò	÷	÷ 	ñ 	ús   Ì/MÍM)NF)r\   r   r_   zlist[str] | Noner`   Úboolr:   r;   ©r:   r;   rU   )r   r   r   rX   r8   rk   rT   r!   r"   r#   rZ   rZ   h   s   „ ñð /3Ø16ð	RàðRð ,ðRð +/ð	Rð
 
óRó
ð:aà#ðað ðað
 ðað +ðað 
ôar"   rZ   c                  óh   — e Zd ZdZd	d„Zd
d„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 	 	 dd„Zy)ÚBuildEnvironmentzACreates and manages an isolated environment to install build depsc                ó¤  ‡— || _         t        t        j                  d¬«      Št	        ˆfd„dD «       «      | _        g | _        g | _        t        t        | j
                  j                  «       «      «      D ]L  }| j                  j                  |j                  «       | j                  j                  |j                  «       ŒN t        «       }t         j"                  j%                  ‰j"                  d«      | _        t         j"                  j)                  | j&                  «      st!        j*                  | j&                  «       t-        t         j"                  j%                  | j&                  d«      dd¬	«      5 }|j/                  t1        j2                  d
«      j5                  || j                  ¬«      «       d d d «       y # 1 sw Y   y xY w)NT)rR   Úglobally_managedc              3  óˆ   •K  — | ]9  }|t        t        j                  j                  ‰j                  |«      «      f–— Œ; y ­wr&   )r+   rC   r/   r‚   )Ú.0rŒ   Útemp_dirs     €r#   ú	<genexpr>z,BuildEnvironment.__init__.<locals>.<genexpr>ÿ   s6   øè ø€ ò %
àð ”7œ2Ÿ7™7Ÿ<™<¨¯©°tÓ<Ó=Ô>ñ%
ùs   ƒ?A)ÚnormalÚoverlayrJ   zsitecustomize.pyÚwzutf-8)ÚencodingaŸ  
                import os, site, sys

                # First, drop system-sites related paths.
                original_sys_path = sys.path[:]
                known_paths = set()
                for path in {system_sites!r}:
                    site.addsitedir(path, known_paths=known_paths)
                system_paths = set(
                    os.path.normcase(path)
                    for path in sys.path[len(original_sys_path):]
                )
                original_sys_path = [
                    path for path in original_sys_path
                    if os.path.normcase(path) not in system_paths
                ]
                sys.path = original_sys_path

                # Second, add lib directories.
                # ensuring .pth file are processed.
                for path in {lib_dirs!r}:
                    assert not path in sys.path
                    site.addsitedir(path)
                )rL   r5   )Ú	installerr   r   Ú	BUILD_ENVr   Ú	_prefixesÚ	_bin_dirsÚ	_lib_dirsÚreversedÚlistÚvaluesr}   r2   r€   r5   rM   rC   r/   r‚   Ú	_site_dirÚexistsÚmkdirÚopenÚwriteÚtextwrapÚdedentÚformat)r6   r¢   r.   rL   Úfprœ   s        @r#   r8   zBuildEnvironment.__init__û   sL  ø€ Ø"ˆŒÜ ¤m×&=Ñ&=ÐPTÔUˆä$ó %
à-ô%
ó 
ˆŒð
 %'ˆŒØ$&ˆŒÜœt D§N¡N×$9Ñ$9Ó$;Ó<Ó=ò 	3ˆFØ�N‰N×!Ñ! &§.¡.Ô1Ø�N‰N×!Ñ! &§/¡/Õ2ð	3ô 0Ó1ˆäŸ™Ÿ™ h§m¡m°VÓ<ˆŒÜ�w‰w�~‰~˜dŸn™nÔ-Ü�H‰H�T—^‘^Ô$ÜÜ�G‰G�L‰L˜Ÿ™Ð);Ó<¸cÈGô
ð 	àØ�H‰HÜ—‘ðó÷2 ‘& l¸T¿^¹^�&ÓLô5÷	÷ 	ñ 	ús   Å=A GÇGc                óæ  — dD �ci c]#  }|t         j                  j                  |d «      “Œ% c}| _        | j                  d d  }| j                  d   }|r.|j                  |j                  t         j                  «      «       | j                  g}t         j                  j                  t         j                  j                  |«      dt         j                  j                  |«      dœ«       y c c}w )N)ÚPATHÚPYTHONNOUSERSITEÚ
PYTHONPATHr´   rt   )rC   rg   rh   Ú	_save_envr¥   r€   ÚsplitÚpathseprª   Úupdater‚   )r6   rŒ   r/   Úold_pathÚ
pythonpaths        r#   Ú	__enter__zBuildEnvironment.__enter__2  s¸   € ð Cö
àð ”"—*‘*—.‘.  tÓ,Ñ,ò
ˆŒð
 �~‰~™aÐ ˆØ—>‘> &Ñ)ˆÙØ�K‰K˜Ÿ™¤r§z¡zÓ2Ô3à—n‘nÐ%ˆ
ä
�
‰
×ÑäŸ
™
Ÿ™¨Ó-Ø$'Ü Ÿj™jŸo™o¨jÓ9ñõ	
ùò
s   …(C.c                ó´   — | j                   j                  «       D ];  \  }}|€!t        j                  j	                  |d «       Œ)|t        j                  |<   Œ= y r&   )r·   ÚitemsrC   rg   Úpop)r6   Úexc_typeÚexc_valÚexc_tbÚvarnameÚ	old_values         r#   Ú__exit__zBuildEnvironment.__exit__G  sK   € ð #'§.¡.×"6Ñ"6Ó"8ò 	0ÑˆG�YØÐ Ü—
‘
—‘˜w¨Õ-à&/”—
‘
˜7Ò#ñ		0r"   c                ó|  — t        «       }t        «       }|�r"t        | d«      rt        | j                  «      n	t	        «       }|D ]ò  }t        |«      }|j                  �|j                  j                  ddi«      sŒ8|j                  |j                  «      }|s|j                  |«       Œgt        |j                  t        «      r|j                  › d|j                  › �}n|j                  › d|j                  › �}|j                  j                  |j                  d¬«      rŒà|j                  ||f«       Œô ||fS )zŽReturn 2 sets:
        - conflicting requirements: set of (installed, wanted) reqs tuples
        - missing requirements: set of reqs
        r¦   Úextrar-   z==z===T)Úprereleases)ÚsetrI   r   r¦   r   r   ÚmarkerÚevaluateÚget_distributionrŒ   ÚaddÚ
isinstanceÚversionr
   Ú	specifierÚcontains)	r6   ÚreqsÚmissingÚconflictingÚenvÚreq_strÚreqÚdistÚinstalled_req_strs	            r#   Úcheck_requirementsz#BuildEnvironment.check_requirementsS  s  € ô “%ˆÜ“eˆÚô ˜4 Ô-ô   §¡Ô/ä,Ó.ð ð
  ò B�Ü% gÓ.�ð —:‘:Ð)°#·*±*×2EÑ2EÀwÐPRÀmÔ2TØØ×+Ñ+¨C¯H©HÓ5�ÙØ—K‘K Ô(ØÜ˜dŸl™l¬GÔ4Ø+.¯8©8¨*°B°t·|±|°nÐ(EÑ%à+.¯8©8¨*°C¸¿¹°~Ð(FÐ%Ø—}‘}×-Ñ-¨d¯l©lÈÐ-ÕMØ—O‘OÐ%6¸Ð$@ÕAðBð" ˜GÐ#Ð#r"   N©rS   c               ó�   — | j                   |   }|j                  rJ ‚d|_        |sy | j                  j                  ||||¬«       y )NT)rR   rS   )r¤   r0   r¢   rT   )r6   rQ   Úprefix_as_stringrR   rS   r.   s         r#   Úinstall_requirementsz%BuildEnvironment.install_requirementsu  sH   € ð —‘Ð 0Ñ1ˆØ—<’<ÐÐØˆŒÙØØ�‰×Ñ˜|¨V¸$ÈÐÕPr"   )r¢   rO   r:   r;   r•   ©rÁ   ztype[BaseException] | NonerÂ   zBaseException | NonerÃ   zTracebackType | Noner:   r;   )rÓ   rV   r:   z%tuple[set[tuple[str, str]], set[str]]©
rQ   rV   rÞ   r9   rR   r9   rS   rW   r:   r;   )	r   r   r   rX   r8   r½   rÆ   rÛ   rß   r!   r"   r#   r—   r—   ø   s‘   „ ÙKó5ón
ð*
0à,ð
0ð &ð
0ð %ð	
0ð
 
ó
0ð $Ø!ð $à	.ó $ðP .2ñQà#ðQð ðQð
 ðQð +ðQð 
ôQr"   r—   c                  ó`   — e Zd ZdZd	d„Zd	d„Z	 	 	 	 	 	 	 	 d
d„Zd	d„Zddœ	 	 	 	 	 	 	 	 	 dd„Zy)ÚNoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentc                 ó   — y r&   r!   ©r6   s    r#   r8   zNoOpBuildEnvironment.__init__ˆ  ó   € Ør"   c                 ó   — y r&   r!   rå   s    r#   r½   zNoOpBuildEnvironment.__enter__‹  ræ   r"   c                 ó   — y r&   r!   )r6   rÁ   rÂ   rÃ   s       r#   rÆ   zNoOpBuildEnvironment.__exit__Ž  s   € ð 	r"   c                 ó   — y r&   r!   rå   s    r#   ÚcleanupzNoOpBuildEnvironment.cleanup–  ræ   r"   NrÜ   c               ó   — t        «       ‚r&   )ÚNotImplementedError)r6   rQ   rÞ   rR   rS   s        r#   rß   z)NoOpBuildEnvironment.install_requirements™  s   € ô "Ó#Ð#r"   r•   rà   rá   )	r   r   r   rX   r8   r½   rÆ   rê   rß   r!   r"   r#   rã   rã   …  sy   „ Ù:óóðà,ðð &ðð %ð	ð
 
óóð .2ñ$à#ð$ð ð$ð
 ð$ð +ð$ð 
ô$r"   rã   )r'   r9   r(   r9   r:   ztuple[str] | tuple[str, str])r:   r9   )r:   zset[str])<rX   Ú
__future__r   r{   rC   r=   rJ   rw   r¯   Úcollectionsr   Úcollections.abcr   Útypesr   Útypingr   r   r	   Úpip._vendor.packaging.versionr
   Úpipr   r?   Úpip._internal.cli.spinnersr   Úpip._internal.locationsr   r   r   Úpip._internal.metadatar   r   Úpip._internal.utils.deprecationr   Úpip._internal.utils.loggingr   Úpip._internal.utils.packagingr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr   r   Ú"pip._internal.index.package_finderr   Úpip._internal.req.req_installr   r   Ú	getLoggerr   ry   r)   r+   rF   rM   rO   rZ   r—   rã   r!   r"   r#   ú<module>rÿ      sÆ   ðÙ @å "ã Û 	Û Û Û 
Û Ý #Ý $Ý ß 5Ñ 5å 1å (Ý 3ß HÑ Hß KÝ 6Ý /Ý 9Ý :ß EáÝ@Ý@ô&�y¨õ &ð 
ˆ×	Ñ	˜8Ó	$€ó&÷?ñ ?ó5ó =ô( ô ÷ Mñ M÷`JQñ JQôZ$Ð+õ $r"   