U
    +|jY  ã                   @   sÒ   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
 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 d dlmZ d dlmZmZ e  e¡Z G dd„ deƒZ!dS )é    N)ÚValues)ÚList)Ú
WheelCache)Ú
cmdoptions)ÚRequirementCommandÚwith_cleanup)ÚSUCCESS)ÚCommandError)ÚInstallRequirement)Úget_requirement_tracker)Ú
ensure_dirÚnormalize_path)ÚTempDirectory)ÚbuildÚshould_build_for_wheel_commandc                   @   s(   e Zd ZdZdZdd„ Zedd„ ƒZdS )ÚWheelCommanda´  
    Build Wheel archives for your requirements and dependencies.

    Wheel is a built-package format, and offers the advantage of not
    recompiling your software during every install. For more details, see the
    wheel docs: https://wheel.readthedocs.io/en/latest/

    Requirements: setuptools>=0.8, and wheel.

    'pip wheel' uses the bdist_wheel setuptools extension from the wheel
    package to build individual wheels.

    zõ
      %prog [options] <requirement specifier> ...
      %prog [options] -r <requirements file> ...
      %prog [options] [-e] <vcs project url> ...
      %prog [options] [-e] <local project path> ...
      %prog [options] <archive url/path> ...c                 C   s†  | j jddddtjdd� | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t 	¡ ¡ | j  t 
¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j  t ¡ ¡ | j jddd	d
dd� | j  t ¡ ¡ | j  t ¡ ¡ | j jdd	d
dd� | j  t ¡ ¡ t tj| j¡}| j d|¡ | j d| j ¡ d S )Nz-wz--wheel-dirÚ	wheel_dirÚdirzLBuild wheels into <dir>, where the default is the current working directory.)ÚdestÚmetavarÚdefaultÚhelpz--no-verifyÚ	no_verifyÚ
store_trueFz%Don't verify if built wheel is valid.)r   Úactionr   r   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.)r   r   r   r   )Úcmd_optsÚ
add_optionÚosÚcurdirr   Ú	no_binaryÚonly_binaryÚprefer_binaryÚno_build_isolationÚ
use_pep517Úno_use_pep517ÚconstraintsÚeditableÚrequirementsÚsrcÚignore_requires_pythonÚno_depsÚ	build_dirÚprogress_barÚbuild_optionsÚglobal_optionsÚrequire_hashesÚmake_option_groupÚindex_groupÚparserÚinsert_option_group)ÚselfÚ
index_opts© r6   údC:\Users\snmko\Desktop\web_content\django_cbt\venv\Lib\site-packages\pip/_internal/commands/wheel.pyÚadd_options+   sX     ûûüþzWheelCommand.add_optionsc                 C   s¼  t  |¡ |  |¡}|  ||¡}t|j|jƒ}t|jƒ|_t	|jƒ |  
tƒ ¡}t|j ddd�}|  ||||¡}| j||||||jdd�}	| j|	||||j|jd�}
|  |¡ |
j|dd�}g }|j ¡ D ](}|jrâ|	 |¡ qÌt|ƒrÌ| |¡ qÌt|||j |j�pg |j�pg d�\}}|D ]|}|j�r:|jj�s>t ‚|j!�sJt ‚zt" #|j!|j¡ W n> t$k
�rœ } zt% &d	|j'|¡ | |¡ W 5 d }~X Y nX �q$t(|ƒd
k�r¸t)dƒ‚t*S )NÚwheelT)ÚdeleteÚkindÚglobally_managedF)Útemp_build_dirÚoptionsÚreq_trackerÚsessionÚfinderÚdownload_dirÚuse_user_site)ÚpreparerrA   r>   Úwheel_cacher)   r#   )Úcheck_supported_wheels)rE   Úverifyr-   r.   z Building wheel for %s failed: %sr   z"Failed to build one or more wheels)+r   Úcheck_install_build_globalÚget_default_sessionÚ_build_package_finderr   Ú	cache_dirÚformat_controlr   r   r   Úenter_contextr   r   Úno_cleanÚget_requirementsÚmake_requirement_preparerÚmake_resolverr)   r#   Útrace_basic_infoÚresolver'   ÚvaluesÚis_wheelÚsave_linked_requirementr   Úappendr   r   r-   r.   ÚlinkÚAssertionErrorÚlocal_file_pathÚshutilÚcopyÚOSErrorÚloggerÚwarningÚnameÚlenr	   r   )r4   r>   Úargsr@   rA   rE   r?   Ú	directoryÚreqsrD   ÚresolverÚrequirement_setÚreqs_to_buildÚreqÚbuild_successesÚbuild_failuresÚer6   r6   r7   Úrunb   s‚    


ýù
ú	
 ÿ

û
 þ ÿzWheelCommand.runN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úusager8   r   rl   r6   r6   r6   r7   r      s
   7r   )"Úloggingr   r[   Úoptparser   Útypingr   Úpip._internal.cacher   Zpip._internal.clir   Úpip._internal.cli.req_commandr   r   Úpip._internal.cli.status_codesr   Úpip._internal.exceptionsr	   Zpip._internal.req.req_installr
   Úpip._internal.req.req_trackerr   Úpip._internal.utils.miscr   r   Úpip._internal.utils.temp_dirr   Úpip._internal.wheel_builderr   r   Ú	getLoggerrm   r^   r   r6   r6   r6   r7   Ú<module>   s    
