
    !2i                        d dl m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 d d	lmZ erd d
lmZ  ej        e          Z G d de
          ZdS )    )annotationsN)Iterable)TYPE_CHECKING)BuildEnvironment)AbstractDistribution)InstallationError)BaseDistribution)runner_with_spinner_message)BuildEnvironmentInstallerc                  j    e Zd ZdZedd            ZddZddZddZd dZ	d dZ
ddZd!dZd"dZdS )#SourceDistributionzRepresents a source distribution.

    The preparation step for these needs metadata for the packages to be
    generated.
    return
str | Nonec                @    | j         j        sJ | j         j        j        S )z/Identify this requirement uniquely by its link.)reqlinkurl_without_fragmentselfs    `/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/distributions/sdist.pybuild_tracker_idz#SourceDistribution.build_tracker_id   s!     x}x}11    r	   c                4    | j                                         S )N)r   get_distr   s    r   get_metadata_distributionz,SourceDistribution.get_metadata_distribution    s    x  """r   build_env_installerr   build_isolationboolcheck_build_depsNonec                   | j                                          |rD|                     |           | j                                          |                     |           n| j                                          |ra| j         j        }|J | j         j                            |          \  }}|r|                     d|           |r| 	                    |           | j         
                                 d S )Nthe backend dependencies)r   load_pyproject_toml_prepare_build_backendeditable_sanity_check_install_build_reqspyproject_requires	build_envcheck_requirements_raise_conflicts_raise_missing_reqsprepare_metadata)r   r   r   r   r'   conflictingmissings          r   prepare_distribution_metadataz0SourceDistribution.prepare_distribution_metadata#   s    	$$&&&  	- ''(;<<<
 H**,,,$$%89999 H**,,, 		2!%!<%111#'8#5#H#H"$ $ K  O%%&@+NNN 2((111!!#####r   c                   | j         j        }|J t          |          | j         _        | j         j                            |dd| j                    | j         j                            | j         j                  \  }}|r|                     d|           |rpt          	                    d| j                    t          	                    dd
                    t          t          t          |                                         d S d S )Noverlayzbuild dependencieskindfor_reqz"PEP 517/518 supported requirementsz4Missing build requirements in pyproject.toml for %s.z`The project does not specify a build backend, and pip cannot fall back to setuptools without %s.z and )r   r'   r   r(   install_requirementsr)   requirements_to_checkr*   loggerwarningjoinmapreprsorted)r   r   r'   r-   r.   s        r   r$   z)SourceDistribution._prepare_build_backendI   s   
 "X8!----.ABB//	0Ddh 	0 	
 	
 	
  $x1DDH* 
  
W  	U!!"FTTT 		NNF   NNASvg7788    		 		r   Iterable[str]c                *   | j         j        5  t          d          }| j         j        }|J |                    |          5  |                                cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )Nz#Getting requirements to build wheel)r   r(   r
   pep517_backendsubprocess_runnerget_requires_for_build_wheelr   runnerbackends      r   _get_build_requires_wheelz,SourceDistribution._get_build_requires_wheele   s:   X 	> 	>01VWWFh-G&&&**622 > >;;==> > > > > > >		> 	> 	> 	> 	> 	> 	> 	>> > > > > > > > >		> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>5   5BA/B/A3	3B6A3	7BBBc                *   | j         j        5  t          d          }| j         j        }|J |                    |          5  |                                cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )Nz&Getting requirements to build editable)r   r(   r
   r?   r@   get_requires_for_build_editablerB   s      r   _get_build_requires_editablez/SourceDistribution._get_build_requires_editablem   sn   X 	A 	A08 F h-G&&&**622 A A>>@@A A A A A A A	A 	A 	A 	A 	A 	A 	A 	AA A A A A A A A A	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	ArF   c                d   | j         j        r-| j         j        r!| j         j        r|                                 }n|                                 }| j         j                            |          \  }}|r|                     d|           | j         j        	                    |dd| j                    d S )Nr"   normalzbackend dependenciesr2   )
r   editablepermit_editable_wheelssupports_pyproject_editablerI   rE   r(   r)   r*   r5   )r   r   
build_reqsr-   r.   s        r   r&   z&SourceDistribution._install_build_reqsw   s     H	:/	: 4	:
 ::<<JJ7799J#x1DDZPPW 	K!!"<kJJJ//X$:DH 	0 	
 	
 	
 	
 	
r   conflicting_withstrconflicting_reqsset[tuple[str, str]]c           
         d}|                     | j        |d                    d t          |          D                                 }t	          |          )NzZSome build dependencies for {requirement} conflict with {conflicting_with}: {description}., c              3  *   K   | ]\  }}| d | V  dS )z is incompatible with N ).0	installedwanteds      r   	<genexpr>z6SourceDistribution._raise_conflicts.<locals>.<genexpr>   sH       " "%Iv <<F<<" " " " " "r   )requirementrP   description)formatr   r9   r<   r   )r   rP   rR   format_stringerror_messages        r   r*   z#SourceDistribution._raise_conflicts   sv    ? 	 &,,-		 " ")/0@)A)A" " "   - 
 
  ...r   r.   set[str]c                    d}|                     | j        d                    t          t          t          |                                        }t          |          )NzASome build dependencies for {requirement} are missing: {missing}.rU   )r\   r.   )r^   r   r9   r:   r;   r<   r   )r   r.   r_   r`   s       r   r+   z&SourceDistribution._raise_missing_reqs   sY    O 	 &,,$))CfWoo4N4N*O*O - 
 
  ...r   N)r   r   )r   r	   )r   r   r   r   r   r   r   r    )r   r   r   r    )r   r=   )rP   rQ   rR   rS   r   r    )r.   ra   r   r    )__name__
__module____qualname____doc__propertyr   r   r/   r$   rE   rI   r&   r*   r+   rW   r   r   r   r      s          2 2 2 X2
# # # #$$ $$ $$ $$L   8> > > >A A A A
 
 
 
*/ / / /"/ / / / / /r   r   )
__future__r   loggingcollections.abcr   typingr   pip._internal.build_envr    pip._internal.distributions.baser   pip._internal.exceptionsr   pip._internal.metadatar	   pip._internal.utils.subprocessr
   r   	getLoggerrc   r7   r   rW   r   r   <module>rr      s
   " " " " " "  $ $ $ $ $ $             4 4 4 4 4 4 A A A A A A 6 6 6 6 6 6 3 3 3 3 3 3 F F F F F F BAAAAAA		8	$	$Q/ Q/ Q/ Q/ Q/- Q/ Q/ Q/ Q/ Q/r   