
    жvg_                         d dl Z d dlmZmZmZmZ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 )    N)TYPE_CHECKINGIterableOptionalSetTuple)BuildEnvironment)AbstractDistribution)InstallationError)BaseDistribution)runner_with_spinner_message)PackageFinderc                       e Zd ZdZedee         fd            ZdefdZ	ddde
de
dd	fd
ZddZdee         fdZdee         fdZddZdedeeeef                  dd	fdZdee         dd	fdZd	S )SourceDistributionzRepresents a source distribution.

    The preparation step for these needs metadata for the packages to be
    generated, either using PEP 517 or using the legacy `setup.py egg_info`.
    returnc                 @    | j         j        sJ | j         j        j        S )z/Identify this requirement uniquely by its link.)reqlinkurl_without_fragmentselfs    ^/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/distributions/sdist.pybuild_tracker_idz#SourceDistribution.build_tracker_id   s!     x}x}11    c                 4    | j                                         S )N)r   get_distr   s    r   get_metadata_distributionz,SourceDistribution.get_metadata_distribution   s    x  """r   finderr   build_isolationcheck_build_depsNc                    | j                                          | j         j        o|}|rC|                     |           | j                                          |                     |           | j         j        o|}|ra| j         j        }|J | j         j                            |          \  }}|r| 	                    d|           |r| 
                    |           | j                                          d S )Nthe backend dependencies)r   load_pyproject_toml
use_pep517_prepare_build_backendisolated_editable_sanity_check_install_build_reqspyproject_requires	build_envcheck_requirements_raise_conflicts_raise_missing_reqsprepare_metadata)	r   r   r   r   should_isolateshould_check_depsr'   conflictingmissings	            r   prepare_distribution_metadataz0SourceDistribution.prepare_distribution_metadata    s    	$$&&& ,@ 	- ''/// H33555$$V,,, H/D4D 		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                  \  }}|r|                     d|           |rpt          	                    d| j                    t          	                    dd
                    t          t          t          |                                         d S d S )Noverlayzbuild dependencieskindz"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/   r0   s        r   r$   z)SourceDistribution._prepare_build_backendG   s    "X8!----////&	8L 	0 	
 	
 	
  $x1DDH* 
  
W  	U!!"FTTT 		NNF   NNASvg7788    		 		r   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_wheela   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_editablei   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                 Z   | j         j        r-| j         j        r!| j         j        r|                                 }n|                                 }| j         j                            |          \  }}|r|                     d|           | j         j        	                    ||dd           d S )Nr!   normalzbackend dependenciesr4   )
r   editablepermit_editable_wheelssupports_pyproject_editablerI   rE   r(   r)   r*   r6   )r   r   
build_reqsr/   r0   s        r   r&   z&SourceDistribution._install_build_reqss   s    
 H	:/	: 4	:
 ::<<JJ7799J#x1DDZPPW 	K!!"<kJJJ//GX,B 	0 	
 	
 	
 	
 	
r   conflicting_withconflicting_reqsc           
          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   r:   r=   r
   )r   rP   rQ   format_stringerror_messages        r   r*   z#SourceDistribution._raise_conflicts   sv    ? 	 &,,-		 " ")/0@)A)A" " "   - 
 
  ...r   r0   c                     d}|                     | j        d                    t          t          t          |                                        }t          |          )NzASome build dependencies for {requirement} are missing: {missing}.rS   )rZ   r0   )r\   r   r:   r;   r<   r=   r
   )r   r0   r]   r^   s       r   r+   z&SourceDistribution._raise_missing_reqs   sY    O 	 &,,$))CfWoo4N4N*O*O - 
 
  ...r   )r   r   r   N)__name__
__module____qualname____doc__propertyr   strr   r   r   boolr1   r$   r   rE   rI   r&   r   r   r*   r+   rU   r   r   r   r      sj         2(3- 2 2 2 X2
#+; # # # #%$%$ %$ 	%$
 
%$ %$ %$ %$N   4>8C= > > > >Ahsm A A A A
 
 
 
&/ #/7:5c?7K/	/ / / /"/3s8 / / / / / / /r   r   )loggingtypingr   r   r   r   r   pip._internal.build_envr    pip._internal.distributions.baser	   pip._internal.exceptionsr
   pip._internal.metadatar   pip._internal.utils.subprocessr   "pip._internal.index.package_finderr   	getLoggerr`   r8   r   rU   r   r   <module>rp      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 A@@@@@@		8	$	$N/ N/ N/ N/ N/- N/ N/ N/ N/ N/r   