
    'jg                        S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  \(       a  S SK	Jr  \R.                  " \5      r " S S\5      rg)    )annotationsN)Iterable)nullcontext)TYPE_CHECKING)BuildIsolationModeNoOpBuildEnvironmentVenvBuildEnvironmentVirtualBuildEnvironment)AbstractDistribution)InstallationError)BaseDistribution)runner_with_spinner_message)BuildEnvironmentInstallerc                      \ rS rSrSr\SS j5       rSS jr          SS jr      SS jr	SS jr
SS jrSS	 jr        SS
 jr      SS jrSS jrSrg)SourceDistribution   zsRepresents a source distribution.

The preparation step for these needs metadata for the packages to be
generated.
c                |    U R                   R                  (       d   eU R                   R                  R                  $ )z/Identify this requirement uniquely by its link.)reqlinkurl_without_fragmentselfs    Y/var/www/html/KUNJ/venv/lib/python3.13/site-packages/pip/_internal/distributions/sdist.pybuild_tracker_id#SourceDistribution.build_tracker_id    s(     xx}}}xx}}111    c                6    U R                   R                  5       $ )N)r   get_distr   s    r   get_metadata_distribution,SourceDistribution.get_metadata_distribution&   s    xx  ""r   c                <   U R                   R                  5         U R                  X!5        US:w  a<  U R                  U5        U R                   R	                  5         U R                  XUS9  OU R                   R	                  5         U(       as  U R                   R                  nUc   eU R                   R                  R                  U5      u  pgU(       a  U R                  SU5        U(       a  U R                  U5        U R                   R                  U5        g )Noff)allow_editablesthe backend dependencies)r   load_pyproject_toml_prepare_build_env_prepare_build_backendeditable_sanity_check_install_build_reqspyproject_requires	build_envcheck_requirements_raise_conflicts_raise_missing_reqsprepare_metadata)r   build_env_installerbuild_isolationcheck_build_depsr#   r*   conflictingmissings           r   prepare_distribution_metadata0SourceDistribution.prepare_distribution_metadata)   s     	$$&E e# ''8
 HH**,$$#o %  HH**,!%!<!<%111#'88#5#5#H#H"$ K %%&@+N((1!!/2r   c                    US:X  a  [        U5      U R                  l        O US:X  a  [        U5      U R                  l        U R                  R	                  U R                  R                  R
                  5        g )Nvirtualvenv)r
   r   r+   r	   configure_backendpython_executable)r   r1   r0   s      r   r&   %SourceDistribution._prepare_build_envS   sZ    
 i'!89L!MDHH&!56I!JDHH""488#5#5#G#GHr   c                   U R                   R                  nUc   e[        U R                   R                  [        5      (       a   eUS:X  a  U R                   R                  O	[        5       nU   U R                   R                  R                  USSU R                   S9  S S S 5        U R                   R                  R                  U R                   R                  5      u  pEU(       a  U R                  SU5        U(       a]  [        R                  SU R                   5        [        R                  SSR                  [        [        [        U5      5      5      5        g g ! , (       d  f       N= f)	Nr9   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*   
isinstancer+   r   r   install_requirementsr,   requirements_to_checkr-   loggerwarningjoinmapreprsorted)r   r1   r*   contextr3   r4   s         r   r'   )SourceDistribution._prepare_build_backend_   s   !XX88!---dhh002FGGGG(76(A$(($${}HH33")	 4    $xx11DDHH** 
 !!"FTNNF NNASvg78  Ws   /1E!!
E/c                <   U R                   R                     [        S5      nU R                   R                  nUc   eUR	                  U5         UR                  5       sS S S 5        sS S S 5        $ ! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)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_wheel,SourceDistribution._get_build_requires_wheel}   sw    XX01VWFhh--G&&&**62;;= 32	   322	  #   8BA2	B2
B 	<B
Bc                <   U R                   R                     [        S5      nU R                   R                  nUc   eUR	                  U5         UR                  5       sS S S 5        sS S S 5        $ ! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)Nz&Getting requirements to build editable)r   r+   r   rN   rO   get_requires_for_build_editablerQ   s      r   _get_build_requires_editable/SourceDistribution._get_build_requires_editable   s{    XX08F hh--G&&&**62>>@ 32   322  rV   c                $   U R                   R                  (       a3  U(       a,  U R                   R                  (       a  U R                  5       nOU R	                  5       nU R                   R
                  R                  U5      u  pVU(       a  U R                  SU5        US:X  a  U R                   R
                  O	[        5       nU   U R                   R
                  R                  USSU R                   S9  S S S 5        g ! , (       d  f       g = f)Nr$   r9   normalzbackend dependenciesr?   )
r   editablesupports_pyproject_editablerY   rT   r+   r,   r-   r   rC   )r   r0   r1   r#   
build_reqsr3   r4   rK   s           r   r)   &SourceDistribution._install_build_reqs   s     HH44::<J779J#xx11DDZP!!"<kJ(76(A$(($${}HH33(> 4  WWs   1D
Dc           
         SnUR                  U R                  USR                  S [        U5       5       5      S9n[	        U5      e)NzZSome build dependencies for {requirement} conflict with {conflicting_with}: {description}., c              3  4   #    U  H  u  pU S U 3v   M     g7f)z is incompatible with N ).0	installedwanteds      r   	<genexpr>6SourceDistribution._raise_conflicts.<locals>.<genexpr>   s&      ")A%I +3F8<)As   )requirementconflicting_withdescription)formatr   rG   rJ   r   )r   rk   conflicting_reqsformat_stringerror_messages        r   r-   #SourceDistribution._raise_conflicts   sY    ? 	 &,,-		 ")/0@)A"  - 
  ..r   c                    SnUR                  U R                  SR                  [        [        [        U5      5      5      S9n[        U5      e)NzASome build dependencies for {requirement} are missing: {missing}.rb   )rj   r4   )rm   r   rG   rH   rI   rJ   r   )r   r4   ro   rp   s       r   r.   &SourceDistribution._raise_missing_reqs   sK    O 	 &,,$))CfWo4N*O - 
  ..r   rd   N)returnz
str | None)rt   r   )
r0   r   r1   r   r2   boolr#   ru   rt   None)r1   r   r0   r   rt   rv   )r1   r   rt   rv   )rt   zIterable[str])r0   r   r1   r   r#   ru   rt   rv   )rk   strrn   zset[tuple[str, str]]rt   rv   )r4   zset[str]rt   rv   )__name__
__module____qualname____firstlineno____doc__propertyr   r   r5   r&   r'   rT   rY   r)   r-   r.   __static_attributes__rd   r   r   r   r      s     2 2
#(36(3 ,(3 	(3
 (3 
(3T
I+
I 7
I 
	
I<>A6 , 	
 
4/ #/7K/	/"/r   r   )
__future__r   loggingcollections.abcr   
contextlibr   typingr   pip._internal.build_envr   r   r	   r
    pip._internal.distributions.baser   pip._internal.exceptionsr   pip._internal.metadatar   pip._internal.utils.subprocessr   r   	getLoggerrx   rE   r   rd   r   r   <module>r      sR    "  $ "    B 6 3 FA			8	$h/- h/r   