U
    +|jÂ  ã                   @   sì   d Z ddlZddlZddlZddlmZmZ ddlm	Z	m
Z ddlZddlmZ ddlZddlZddlmZ ddlZddlmZ dd	lmZ dd
lmZ e e¡Zdd„ Zdd„ Zdd„ Zddd„Z dddddœZ!dd„ Z"edkrèe ƒ  dS )zHCheck a project and backend by attempting to build using PEP 517 hooks.
é    N)ÚisfileÚjoin)ÚTomlDecodeErrorÚload)ÚCalledProcessError)Úmkdtempé   )Úenable_colourful_output)ÚBuildEnvironment)ÚPep517HookCallerc              
   C   s  t ƒ ��ö}z| |¡ t d¡ W n* tk
rL   t d¡ Y W 5 Q R £ dS X z|  i ¡}t d|¡ W n. tk
r–   tjddd� Y W 5 Q R £ dS X z| |¡ t d¡ W n* tk
rÚ   t d	¡ Y W 5 Q R £ dS X tƒ }t d
|¡ zôz|  |i ¡}t d|¡ W n4 tk
�r@   tjddd� Y W ¢²W 5 Q R £ dS X | d¡�slt d|¡ W ¢†W 5 Q R £ dS t||ƒ}t|ƒ�rŽt d|¡ nt d|¡ W ¢FW 5 Q R £ dS t |¡�rÄt d¡ nt d¡ W ¢W 5 Q R £ dS W 5 t	 
|¡ X W 5 Q R £ dS Q R X d S )Nú#Installed static build dependenciesú+Failed to install static build dependenciesFúGot build requires: %sú'Failure in get_requires_for_build_sdistT©Úexc_infoú$Installed dynamic build dependenciesú,Failed to install dynamic build dependencieszTrying to build sdist in %szbuild_sdist returned %rzFailure in build_sdistz.tar.gzz*Filename %s doesn't have .tar.gz extensionúOutput file %s existsúOutput file %s does not existzOutput file is a tar filezOutput file is not a tar file)r
   Úpip_installÚlogÚinfor   ÚerrorÚget_requires_for_build_sdistÚ	Exceptionr   ÚshutilÚrmtreeÚbuild_sdistÚendswithÚpjoinr   ÚtarfileÚ
is_tarfile©ÚhooksZbuild_sys_requiresÚenvÚreqsÚtdÚfilenameÚpath© r*   ú`C:\Users\snmko\Desktop\web_content\django_cbt\venv\Lib\site-packages\pip/_vendor/pep517/check.pyÚcheck_build_sdist   sZ    





 ÿ


r,   c              
   C   s  t ƒ ��ö}z| |¡ t d¡ W n* tk
rL   t d¡ Y W 5 Q R £ dS X z|  i ¡}t d|¡ W n. tk
r–   tjddd� Y W 5 Q R £ dS X z| |¡ t d¡ W n* tk
rÚ   t d	¡ Y W 5 Q R £ dS X tƒ }t d
|¡ zôz|  |i ¡}t d|¡ W n4 tk
�r@   tjddd� Y W ¢²W 5 Q R £ dS X | d¡�slt d|¡ W ¢†W 5 Q R £ dS t||ƒ}t|ƒ�rŽt d|¡ nt d|¡ W ¢FW 5 Q R £ dS t |¡�rÄt d¡ nt d¡ W ¢W 5 Q R £ dS W 5 t	 
|¡ X W 5 Q R £ dS Q R X d S )Nr   r   Fr   r   Tr   r   r   zTrying to build wheel in %szbuild_wheel returned %rzFailure in build_wheelz.whlz'Filename %s doesn't have .whl extensionr   r   zOutput file is a zip filezOutput file is not a zip file)r
   r   r   r   r   r   Úget_requires_for_build_wheelr   r   r   r   Úbuild_wheelr   r    r   ÚzipfileÚ
is_zipfiler#   r*   r*   r+   Úcheck_build_wheelO   sT    








r1   c              	   C   sâ   t | dƒ}t|ƒrt d¡ nt d¡ dS zLt|ƒ�}t|ƒ}W 5 Q R X |d }|d }|d }| d¡}t d	¡ W n( tt	fk
r    tjd
dd� Y dS X t
| ||ƒ}t||ƒ}	t||ƒ}
|	sÐt d¡ |
sÞt d¡ |	S )Nzpyproject.tomlzFound pyproject.tomlzMissing pyproject.tomlFzbuild-systemÚrequireszbuild-backendzbackend-pathzLoaded pyproject.tomlzInvalid pyproject.tomlTr   z%Sdist checks failed; scroll up to seezWheel checks failed)r    r   r   r   r   ÚopenÚ	toml_loadÚgetr   ÚKeyErrorr   r,   r1   Úwarning)Ú
source_dirÚ	pyprojectÚfZpyproject_dataZbuildsysr2   ÚbackendÚbackend_pathr$   Zsdist_okZwheel_okr*   r*   r+   Úcheck‡   s0    







r=   c                 C   sj   t  d¡ t ¡ }|jddd� | | ¡}tƒ  t|jƒ}|rNt	t
ddƒƒ nt	t
ddƒƒ t d	¡ d S )
NzQpep517.check is deprecated. Consider switching to https://pypi.org/project/build/r8   z%A directory containing pyproject.toml)ÚhelpzChecks passedÚgreenzChecks failedÚredr   )r   r7   ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr	   r=   r8   ÚprintÚansiÚsysÚexit)ÚargvZapÚargsÚokr*   r*   r+   Úmain©   s    
þ

rL   z[0mz[1mz[31mz[32m)ÚresetZboldr@   r?   c                 C   s8   t jdkr,tj ¡ r,t| t| ƒ td  S t| ƒS d S )NÚntrM   )ÚosÚnamerG   ÚstdoutÚisattyÚ
ansi_codesÚstr)ÚsÚattrr*   r*   r+   rF   Æ   s    rF   Ú__main__)N)#Ú__doc__rA   ÚloggingrO   Úos.pathr   r   r    Zpip._vendor.tomlr   r   r4   r   Ú
subprocessr   rG   r!   Útempfiler   r/   Zcolorlogr	   Zenvbuildr
   Úwrappersr   Ú	getLoggerÚ__name__r   r,   r1   r=   rL   rS   rF   r*   r*   r*   r+   Ú<module>   s6   
98"
ü