a
    |fV                     @   sz   d dl Z d dlZd dlZd dlZejd  dkrHd dlmZ d dlm	Z	 nd dl
Zd dlm	Z	 dd Zdd Zd
dd	ZdS )    N3quotec                  C   s.   t d\} }td| ttj|g d S )Nz_get-pip.pyz$https://bootstrap.pypa.io/get-pip.py)tempfilemkstempurlurlretrieve
subprocess
check_callsys
executable)fdpath r   JD:\Projects\storyit_web\backend\venv\Lib\site-packages\install/__init__.py_get_pip   s    r   c               
   C   sv   zHt tjd&} tjtjddg| d W d    n1 s:0    Y  W dS  tjyp } zW Y d }~dS d }~0 0 d S )Nw-mpip)stdoutTF)openosdevnullr	   r
   r   r   CalledProcessError)DEVNULLexcr   r   r   
_check_pip   s    4r   c                 C   s   t  st  tjddg}|rHt|tr@dd |D }|| ntd|d |rt|trzdd |D }|| ntd|d	u r|d
 n|du r|d |r|d t	| } ||  t
| dS )a  Install packages dynamically in your code

    Args:
        pkg: Name of the package or requirements.txt file as a string, you can also use version specifiers like requests==1.2.3
        use_pep517: Optional boolean to force --use-pep517/--no-use-pep517
        requirements: Optional boolean if a requirements.txt was specified
        pip_options: Optional arbitary list of global options to pass to pip 
        install_options: Optional arbitary list of install options to pass to pip install
    r   r   c                 S   s   g | ]}t |qS r   r   .0optionr   r   r   
<listcomp>*       zinstall.<locals>.<listcomp>z,pip_options passed to install must be a listinstallc                 S   s   g | ]}t |qS r   r   r   r   r   r   r    3   r!   z0install_options passed to install must be a listTz--use-pep517Fz--no-use-pep517z-rN)r   r   r   r   
isinstancelistextend	TypeErrorappendr   r	   r
   )pkg
use_pep517requirementsZpip_optionsZinstall_optionscmdoptionsr   r   r   r"      s,    






r"   )NNNN)r	   r   r   r   versionurllib.requestrequestr   shlexr   urllibZpipesr   r   r"   r   r   r   r   <module>   s   