§
    �’j(  ã                  óÒ   — d dl m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mZ d dlmZ d dlmZ d d	lmZ d d
lmZ erd dl	mZ  ej        e¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚIterable)Únullcontext)ÚTYPE_CHECKING)ÚBuildIsolationModeÚNoOpBuildEnvironmentÚVenvBuildEnvironmentÚVirtualBuildEnvironment)ÚAbstractDistribution)ÚInstallationError)ÚBaseDistribution)Úrunner_with_spinner_message)ÚBuildEnvironmentInstallerc                  ór   — e Zd ZdZedd„¦   «         Zd d„Zd!d„Zd"d„Zd#d„Z	d$d„Z
d$d„Zd%d„Zd&d„Zd'd„ZdS )(ÚSourceDistributionzRepresents a source distribution.

    The preparation step for these needs metadata for the packages to be
    generated.
    Úreturnú
str | Nonec                ó@   — | j         j        sJ ‚| j         j        j        S )z/Identify this requirement uniquely by its link.)ÚreqÚlinkÚurl_without_fragment©Úselfs    úOC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\distributions\sdist.pyÚbuild_tracker_idz#SourceDistribution.build_tracker_id    s    € ð ŒxŒ}ÐÐˆ}ØŒxŒ}Ô1Ð1ó    r   c                ó4   — | j                              ¦   «         S )N)r   Úget_distr   s    r   Úget_metadata_distributionz,SourceDistribution.get_metadata_distribution&   s   € ØŒx× Ò Ñ"Ô"Ð"r   Úbuild_env_installerr   Úbuild_isolationr   Úcheck_build_depsÚboolÚallow_editablesÚNonec                ó*  — | j                              ¦   «          |                      ||¦  «         |dk    rG|                      |¦  «         | j                              ¦   «          |                      |||¬¦  «         n| j                              ¦   «          |ra| j         j        }|€J ‚| j         j                             |¦  «        \  }}|r|  	                    d|¦  «         |r|  
                    |¦  «         | j                              |¦  «         d S )NÚoff)r$   úthe backend dependencies)r   Úload_pyproject_tomlÚ_prepare_build_envÚ_prepare_build_backendÚeditable_sanity_checkÚ_install_build_reqsÚpyproject_requiresÚ	build_envÚcheck_requirementsÚ_raise_conflictsÚ_raise_missing_reqsÚprepare_metadata)r   r    r!   r"   r$   r.   ÚconflictingÚmissings           r   Úprepare_distribution_metadataz0SourceDistribution.prepare_distribution_metadata)   sB  € ð 	Œ×$Ò$Ñ&Ô&Ð&Ø×Ò Ð1DÑEÔEÐEð ˜eÒ#Ð#ð ×'Ò'¨Ñ8Ô8Ð8ð
 ŒH×*Ò*Ñ,Ô,Ð,à×$Ò$Ø# _Àoð %ñ ô ð ð ð ŒH×*Ò*Ñ,Ô,Ð,àð 		2Ø!%¤Ô!<ÐØ%Ð1Ð1Ð1Ø#'¤8Ô#5×#HÒ#HØ"ñ$ô $Ñ ˆK˜ð ð OØ×%Ò%Ð&@À+ÑNÔNÐNØð 2Ø×(Ò(¨Ñ1Ô1Ð1ØŒ×!Ò! /Ñ2Ô2Ð2Ð2Ð2r   c                óÖ   — |dk    rt          |¦  «        | j        _        n|dk    rt          |¦  «        | j        _        | j                             | j        j        j        ¦  «         d S )NÚvirtualÚvenv)r
   r   r/   r	   Úconfigure_backendÚpython_executable)r   r!   r    s      r   r*   z%SourceDistribution._prepare_build_envS   sg   € ð
 ˜iÒ'Ð'Ý!8Ð9LÑ!MÔ!MˆDŒHÔÐØ Ò&Ð&Ý!5Ð6IÑ!JÔ!JˆDŒHÔàŒ×"Ò" 4¤8Ô#5Ô#GÑHÔHÐHÐHÐHr   c                ó˜  — | j         j        }|€J ‚t          | j         j        t          ¦  «        rJ ‚|dk    r| j         j        nt          ¦   «         }|5  | j         j                             |dd| j         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   | j         j                             | j         j        ¦  «        \  }}|r|  	                    d|¦  «         |rpt                               d| j         ¦  «         t                               dd                     t          t          t          |¦  «        ¦  «        ¦  «        ¦  «         d S d S )	Nr9   Úoverlayzbuild dependencies©ÚkindÚfor_reqz"PEP 517/518 supported requirementsz4Missing build requirements in pyproject.toml for %s.z`The project does not specify a build backend, and pip cannot fall back to setuptools without %s.z and )r   r.   Ú
isinstancer/   r   r   Úinstall_requirementsr0   Úrequirements_to_checkr1   ÚloggerÚwarningÚjoinÚmapÚreprÚsorted)r   r!   r.   Úcontextr4   r5   s         r   r+   z)SourceDistribution._prepare_build_backend_   sŸ  € à!œXÔ8ÐØ!Ð-Ð-Ð-Ý˜dœhÔ0Õ2FÑGÔGÐGÐGÐGà(7¸6Ò(AÐ(A�$”(Ô$Ð$Å{Á}Ä}ˆØð 	ð 	ØŒHÔ×3Ò3Ø"ØØ)Øœð	 4ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð  $œxÔ1×DÒDØŒHÔ*ñ 
ô  
Ñˆ�Wð ð 	UØ×!Ò!Ð"FÈÑTÔTÐTØð 		Ý�NŠNØFØ”ñô ð õ �NŠNðAà—’�S¥¥v¨g¡¤Ñ7Ô7Ñ8Ô8ñô ð ð ð ð		ð 		s   Á)B	Â	BÂBúIterable[str]c                ó*  — | j         j        5  t          d¦  «        }| j         j        }|€J ‚|                     |¦  «        5  |                     ¦   «         cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz#Getting requirements to build wheel)r   r/   r   Úpep517_backendÚsubprocess_runnerÚget_requires_for_build_wheel©r   ÚrunnerÚbackends      r   Ú_get_build_requires_wheelz,SourceDistribution._get_build_requires_wheel}   s:  € ØŒXÔð 	>ð 	>Ý0Ð1VÑWÔWˆFØ”hÔ-ˆGØÐ&Ð&Ð&Ø×*Ò*¨6Ñ2Ô2ð >ð >Ø×;Ò;Ñ=Ô=ð>ð >ð >ð >ñ >ô >ð >ð		>ð 	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð>ð >ð >ð >øøøð >ð >ð >ð >ð >ð		>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ó5   �5BÁA/ÁBÁ/A3	Á3BÁ6A3	Á7BÂBÂBc                ó*  — | j         j        5  t          d¦  «        }| j         j        }|€J ‚|                     |¦  «        5  |                     ¦   «         cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz&Getting requirements to build editable)r   r/   r   rM   rN   Úget_requires_for_build_editablerP   s      r   Ú_get_build_requires_editablez/SourceDistribution._get_build_requires_editable…   sn  € ØŒXÔð 	Að 	AÝ0Ø8ñô ˆFð ”hÔ-ˆGØÐ&Ð&Ð&Ø×*Ò*¨6Ñ2Ô2ð Að AØ×>Ò>Ñ@Ô@ðAð Að Að Añ Aô Að Að	Að 	Að 	Að 	Añ 	Aô 	Að 	Að 	AðAð Að Að Aøøøð Að Að Að Að Að	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	Að 	ArT   c                óÆ  — | j         j        r#|r!| j         j        r|                      ¦   «         }n|                      ¦   «         }| j         j                             |¦  «        \  }}|r|                      d|¦  «         |dk    r| j         j        nt          ¦   «         }|5  | j         j         	                    |dd| j         ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr(   r9   Únormalzbackend dependenciesr>   )
r   ÚeditableÚsupports_pyproject_editablerW   rS   r/   r0   r1   r   rB   )r   r    r!   r$   Ú
build_reqsr4   r5   rJ   s           r   r-   z&SourceDistribution._install_build_reqs�   s@  € ð ŒHÔð	:àð	:ð ”Ô4ð	:ð
 ×:Ò:Ñ<Ô<ˆJˆJà×7Ò7Ñ9Ô9ˆJØ#œxÔ1×DÒDÀZÑPÔPÑˆ�WØð 	KØ×!Ò!Ð"<¸kÑJÔJÐJØ(7¸6Ò(AÐ(A�$”(Ô$Ð$Å{Á}Ä}ˆØð 	ð 	ØŒHÔ×3Ò3Ø˜Ð(>ÈÌð 4ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Â )CÃCÃCÚconflicting_withÚstrÚconflicting_reqsúset[tuple[str, str]]c           
     ó²   — d}|                      | j        |d                     d„ t          |¦  «        D ¦   «         ¦  «        ¬¦  «        }t	          |¦  «        ‚)NzZSome build dependencies for {requirement} conflict with {conflicting_with}: {description}.ú, c              3  ó*   K  — | ]\  }}|› d |› �V — ŒdS )z is incompatible with N© )Ú.0Ú	installedÚwanteds      r   ú	<genexpr>z6SourceDistribution._raise_conflicts.<locals>.<genexpr>³   sH   è è € ð "ð "á%�I˜vð Ð<Ð<°FÐ<Ð<ð"ð "ð "ð "ð "ð "r   )Úrequirementr]   Údescription)Úformatr   rF   rI   r   )r   r]   r_   Úformat_stringÚerror_messages        r   r1   z#SourceDistribution._raise_conflicts©   sv   € ð?ð 	ð &×,Ò,ØœØ-ØŸ	š	ð "ð "å)/Ð0@Ñ)AÔ)Að"ñ "ô "ñ ô ð -ñ 
ô 
ˆõ   Ñ.Ô.Ð.r   r5   úset[str]c                óÂ   — d}|                      | j        d                     t          t          t          |¦  «        ¦  «        ¦  «        ¬¦  «        }t          |¦  «        ‚)NzASome build dependencies for {requirement} are missing: {missing}.rb   )ri   r5   )rk   r   rF   rG   rH   rI   r   )r   r5   rl   rm   s       r   r2   z&SourceDistribution._raise_missing_reqsº   sY   € àOð 	ð &×,Ò,Øœ¨$¯)ª)µC½½fÀW¹o¼oÑ4NÔ4NÑ*OÔ*Oð -ñ 
ô 
ˆõ   Ñ.Ô.Ð.r   N)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!   r   r$   r#   r   r%   )r]   r^   r_   r`   r   r%   )r5   rn   r   r%   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r6   r*   r+   rS   rW   r-   r1   r2   rd   r   r   r   r      sû   € € € € € ðð ð ð2ð 2ð 2ñ „Xð2ð
#ð #ð #ð #ð(3ð (3ð (3ð (3ðT
Ið 
Ið 
Ið 
Iðð ð ð ð<>ð >ð >ð >ðAð Að Að Aðð ð ð ð4/ð /ð /ð /ð"/ð /ð /ð /ð /ð /r   r   )Ú
__future__r   ÚloggingÚcollections.abcr   Ú
contextlibr   Útypingr   Úpip._internal.build_envr   r   r	   r
   Ú pip._internal.distributions.baser   Úpip._internal.exceptionsr   Úpip._internal.metadatar   Úpip._internal.utils.subprocessr   r   Ú	getLoggerrp   rD   r   rd   r   r   ú<module>r€      sI  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð BÐ AÐ AÐ AÐ AÐ AØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø FÐ FÐ FÐ FÐ FÐ Fàð BØAÐAÐAÐAÐAÐAà	ˆÔ	˜8Ñ	$Ô	$€ðh/ð h/ð h/ð h/ð h/Ð-ñ h/ô h/ð h/ð h/ð h/r   