U
    ee                     @  s   d dl mZ d dlZd dlZd dlZddlmZmZmZ ddl	m
Z
 ddlmZ ddd	d
dZdejddddddddZdgZdS )    )annotationsN   )PathTypeProjectBuilder
RunnerType)metadata)DefaultIsolatedEnvr   zmetadata.PackageMetadata)builderreturnc              
   C  s<   t  *}t| |}t|jW  5 Q R  S Q R X d S )N)tempfileTemporaryDirectorypathlibPathZmetadata_pathr   ZPathDistribution)r	   Ztmpdirpath r   ./tmp/pip-unpacked-wheel-f07x2s22/build/util.py_project_wheel_metadata   s    
r   Trunnerr   boolr   )
source_dirisolatedr   r
   c             
   C  sl   |rTt  B}tj|| |d}||j ||d t|W  5 Q R  S Q R X nt| |d}t|S dS )a  
    Return the wheel metadata for a project.

    Uses the ``prepare_metadata_for_build_wheel`` hook if available,
    otherwise ``build_wheel``.

    :param source_dir: Project source directory
    :param isolated: Whether or not to run invoke the backend in the current
                     environment or to create an isolated one and invoke it
                     there.
    :param runner: An alternative runner for backend subprocesses
    r   wheelN)r   r   Zfrom_isolated_envinstallZbuild_system_requiresZget_requires_for_buildr   )r   r   r   envr	   r   r   r   project_wheel_metadata   s    r   )T)
__future__r   r   r   Zpyproject_hooks r   r   r   Z
_importlibr   r   r   r   quiet_subprocess_runnerr   __all__r   r   r   r   <module>   s    &