a
    !f+	                     @   s   d Z ddlZddlZddlZddlZddlZejd dkrTd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 )z1.3.5    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   Q/var/www/html/python-backend/venv/lib/python3.9/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
  zt |  W dS  ty"   Y n ty2   Y n0 t s@t  tjddg}|r|t|t	rtdd |D }|
| ntd|d |rt|t	rd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
    Nr   r   c                 S   s   g | ]}t |qS r   r   .0optionr   r   r   
<listcomp>7       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    @   r!   z0install_options passed to install must be a listTz--use-pep517Fz--no-use-pep517z-r)	importlibimport_moduleModuleNotFoundError	Exceptionr   r   r   r   
isinstancelistextend	TypeErrorappendr   r	   r
   )pkg
use_pep517requirementsZpip_optionsinstall_optionscmdoptionsr   r   r   r"      s:    






r"   )NNNN)__version__r	   r   r   r   r#   versionurllib.requestrequestr   shlexr   urllibZpipesr   r   r"   r   r   r   r   <module>   s   