<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    .e[                     @   s   d 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 ddlmZ er|dd	lmZmZ dd
lmZ eeZdd Zdd Zdd Zdd ZdS )z4Metadata generation logic for source distributions.
    N)InstallationError)
ensure_dir)make_setuptools_shim_args)call_subprocess)MYPY_CHECK_RUNNING)vcs)CallableList)InstallRequirementc                 C   s   | j s
tS tS )a  Return a callable metadata generator for this InstallRequirement.

    A metadata generator takes an InstallRequirement (install_req) as an input,
    generates metadata via the appropriate process for that install_req and
    returns the generated metadata directory.
    )Z
use_pep517_generate_metadata_legacy_generate_metadatainstall_req r   N/usr/lib/python3.8/site-packages/pip/_internal/operations/generate_metadata.pyget_metadata_generator   s    r   c                    s   dd   fdd}dd }| }|r.||}nt j|d}t |}|sVtd| t|d	krn|j|d
 t j||d S )zEFind an .egg-info in `source_directory`, based on `is_editable`.
    c                 S   s0   t jt j| ddp.t jt j| ddS )NbinpythonZScriptsz
Python.exe)ospathlexistsjoinexists)r   r   r   r   looks_like_virtual_env(   s    z._find_egg_info.<locals>.looks_like_virtual_envc                    s   g }t | D ]\ }}tjD ]}||kr|| qt|D ]<}t j |r`|| q>|dksp|dkr>|| q>| fdd|D  qdd |D S )NZtestZtestsc                 3   s   | ]}t j |V  qd S N)r   r   r   ).0dir_rootr   r   	<genexpr>?   s     zC_find_egg_info.<locals>.locate_editable_egg_info.<locals>.<genexpr>c                 S   s   g | ]}| d r|qS )z	.egg-info)endswith)r   fr   r   r   
<listcomp>@   s     
 zD_find_egg_info.<locals>.locate_editable_egg_info.<locals>.<listcomp>)	r   walkr   Zdirnamesremovelistr   r   extend)baseZ
candidatesdirsfilesr   r   r   r   locate_editable_egg_info/   s    
z0_find_egg_info.<locals>.locate_editable_egg_infoc                 S   s(   |  tjjtjjr"|  tjjp$d S )Nr   )countr   r   sepaltsep)r   r   r   r   depth_of_directoryB   s    z*_find_egg_info.<locals>.depth_of_directorypip-egg-infoz!Files/directories not found in %s   )keyr   )r   r   r   listdirr   lensort)Zsource_directoryZis_editabler+   r/   r'   	filenamesr   r*   r   _find_egg_info#   s    

r7   c              	   C   s   | j pd| j}td| j| t| j}| jr<|dg7 }g }| jsft	j
| jd}d|g}t| | j  t|dg | | jdd W 5 Q R X t| j| jS )	Nzfrom {}z2Running setup.py (path:%s) egg_info for package %sz--no-user-cfgr0   z
--egg-baseZegg_infozpython setup.py egg_info)cwdZcommand_desc)nameformatlinkloggerdebugZsetup_py_pathr   isolatedZeditabler   r   r   Zunpacked_source_directoryr   Z	build_envr   r7   )r   Zreq_details_strZbase_cmdZegg_base_optionZegg_info_dirr   r   r   r   ^   s6     

 r   c                 C   s   |   S r   )Zprepare_pep517_metadatar   r   r   r   r      s    r   )__doc__Zloggingr   Zpip._internal.exceptionsr   Zpip._internal.utils.miscr   Z$pip._internal.utils.setuptools_buildr   Zpip._internal.utils.subprocessr   Zpip._internal.utils.typingr   Zpip._internal.vcsr   typingr   r	   Zpip._internal.req.req_installr
   Z	getLogger__name__r<   r   r7   r   r   r   r   r   r   <module>   s    
;(