
    !2i2#                       d Z ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZ ddlmZmZ ddlmZ dd	lmZmZ dd
l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" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+  ej,        e-          Z. ej/        dej0                  Z1e2e3e"         e3e"         f         Z4d.dZ5d/dZ6d0d Z7d1d#Z8d2d(Z9d3d)Z:d4d-Z;dS )5z:Orchestrator for building wheels from InstallRequirements.    )annotationsN)Iterable)TemporaryDirectory)canonicalize_namecanonicalize_version)InvalidVersionVersion)
WheelCache)InvalidWheelFilenameUnsupportedWheel)FilesystemWheelget_wheel_distribution)Link)Wheel)build_wheel_pep517)build_wheel_editable)InstallRequirement)
indent_log)
ensure_dir	hash_file)path_to_url)vcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)sstrreturnboolc                P    t          t                              |                     S )zjDetermine whether the string looks like an egg_info.

    :param s: The string to parse. E.g. foo-2.1
    )r   _egg_info_research)r   s    Z/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/wheel_builder.py_contains_egg_infor!   "   s     
 ##A&&'''    reqr   bool | Nonec                r   | j         s| j        sdS | j        ri| j        j        r]| j         rJ | j        sJ t	          j        | j        j                  }|sJ |                    | j        j        | j                  rdS dS | j        sJ | j        	                                \  }}t          |          rdS dS )z
    Return whether a built InstallRequirement can be stored in the persistent
    wheel cache, assuming the wheel cache is available.
    FT)editable
source_dirlinkis_vcsr   get_backend_for_schemeschemeis_immutable_rev_checkouturlsplitextr!   )r#   vcs_backendbaseexts       r    _should_cacher2   *   s     | 3> u
x 	CHO 	 <~0AA00s~NN 	4u8OOO!!##ID#$ t 5r"   wheel_cacher
   c                    t          |j                  }| j        sJ |r*t          |           r|                    | j                  }n|                    | j                  }|S )zdReturn the persistent or temporary cache directory where the built
    wheel need to be stored.
    )r   	cache_dirr(   r2   get_path_for_linkget_ephem_path_for_link)r#   r3   cache_availabler5   s       r    _get_cache_dirr9   I   sj     ;011O8OOO B=-- B11#(;;		77AA	r"   
wheel_pathNonec                   t          | j        pd          }t          t          j                            |                    }|j        |k    rt          d|d|j                  t          t          |          |          }t          |j
                  }t          |          t          |j
                  k    rt          d|d|j
                  |j        }|t          d          	 t          |          }n"# t          $ r d| }t          |          w xY w|t          d          k    r-t!          |j
        t                    st          d|d          d S d S )	N z)Wheel has unexpected file name: expected z, got zMissing Metadata-VersionzInvalid Metadata-Version: z1.2z+Metadata 1.2 mandates PEP 440 version, but z is not)r   namer   ospathbasenamer   r   r   r   versionr   metadata_versionr   r	   r   
isinstance)	r#   r:   canonical_namewdistdist_verstrmetadata_version_valuerC   msgs	            r    _verify_onerK   Y   s   &sx~266Nbgz**++Av"  6 
 
 	
 "/*"="=~NNDdl##KK((,@,K,KKK"! ! !9! !
 
 	
 "2%9:::$"#9:: $ $ $C+ACCs###$ 75>>))*T\72S2S)P+PPP
 
 	
 *)))s   1D D 
output_dirverifyr&   
str | Nonec                   |rdnd}	 t          |           n:# t          $ r-}t                              d|| j        |           Y d}~dS d}~ww xY w| j        5  t          | ||          }ddd           n# 1 swxY w Y   |rU|rS	 t          | |           nA# t          t          f$ r-}t                              d|| j        |           Y d}~dS d}~ww xY w|S )zaBuild one wheel.

    :return: The filename of the built wheel, or None if the build failed.
    r&   wheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s)
r   OSErrorloggerwarningr>   	build_env_build_one_inside_envrK   r   r   )r#   rL   rM   r&   artifacter:   s          r    
_build_onerX   v   sx    &2zz7H	:   +H		
 	
 	
 ttttt 
 F F*3
HEE
F F F F F F F F F F F F F F F f 	Z(((($&67 	 	 	NN;XsxQRSSS44444	 s>    
A"A

AA77A;>A;B C)"CCc           	        t          |          5 }| j        sJ | j        sJ | j        sJ |r#t	          | j        | j        | j        |          }n"t          | j        | j        | j        |          }|t          j                            |          }t          j        	                    ||          }	 t          |          \  }}t          j        ||           t                              d| j        |||                                           t                              d|           |cd d d            S # t          $ r+}	t                              d| j        |	           Y d }	~	nd }	~	ww xY w	 d d d            d S # 1 swxY w Y   d S )N)dir)r>   backendmetadata_directorywheel_directoryz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   r>   r\   pep517_backendr   r   r?   r@   rA   joinr   replacerR   info	hexdigest	ExceptionrS   )
r#   rL   r&   r]   r:   
wheel_name	dest_path
wheel_hashlengthrW   s
             r    rU   rU      s0   
 

	+	+	+ ,x%%%%!!!! 	-X*#&#9 /	  JJ ,X*#&#9 /	  J !))*55JZ<<I%.z%:%:"
F
 
:y111IH((**   5zBBB K, , , , , , , ,L    6H        Y, , , , , , , , , , , , , , , , , ,s7   B$F6A8D;;
E0!E+&F+E00FFFrequirementsIterable[InstallRequirement]BuildResultc                Z   | sg g fS t                               dd                    d | D                                  t                      5  g g }}| D ]}|j        sJ t          ||          }t          ||||j        o|j                  }|rx|j	        |
                    ||j	                   t          t          |                    |_        |j        j        |_        |j        j        sJ |                    |           |                    |           	 ddd           n# 1 swxY w Y   |r8t                               dd                    d |D                                  |r8t                               dd                    d	 |D                                  ||fS )
zBuild wheels.

    :return: The list of InstallRequirement that succeeded to build and
        the list of InstallRequirement that failed to build.
    z*Building wheels for collected packages: %sz, c              3  $   K   | ]}|j         V  d S )Nr>   .0r#   s     r    	<genexpr>zbuild.<locals>.<genexpr>   s$      33s#(333333r"   NzSuccessfully built %s c                    g | ]	}|j         
S  rm   rn   s     r    
<listcomp>zbuild.<locals>.<listcomp>   s    :::3ch:::r"   zFailed to build %sc                    g | ]	}|j         
S rs   rm   rn   s     r    rt   zbuild.<locals>.<listcomp>  s    9993ch999r"   )rR   ra   r_   r   r>   r9   rX   r&   permit_editable_wheelsdownload_inforecord_download_originr   r   r(   	file_pathlocal_file_pathis_wheelappend)rh   r3   rM   build_successesbuild_failuresr#   r5   
wheel_files           r    buildr      s+     2v KK4		33l33333  
 
 + +*,b 	+ 	+C8OOO&sK88I#;!;	 J  +$0  66y#BSTTTJ 7 788&)h&8#x((((&&s++++%%c****-	++ + + + + + + + + + + + + + +6  
#HH::/:::;;	
 	
 	
  
 HH99.999::	
 	
 	

 N**s   CD**D.1D.)r   r   r   r   )r#   r   r   r$   )r#   r   r3   r
   r   r   )r#   r   r:   r   r   r;   )
r#   r   rL   r   rM   r   r&   r   r   rN   )r#   r   rL   r   r&   r   r   rN   )rh   ri   r3   r
   rM   r   r   rj   )<__doc__
__future__r   loggingos.pathr?   recollections.abcr   tempfiler   pip._vendor.packaging.utilsr   r   pip._vendor.packaging.versionr   r	   pip._internal.cacher
   pip._internal.exceptionsr   r   pip._internal.metadatar   r   pip._internal.models.linkr   pip._internal.models.wheelr   $pip._internal.operations.build.wheelr   -pip._internal.operations.build.wheel_editabler   pip._internal.req.req_installr   pip._internal.utils.loggingr   pip._internal.utils.miscr   r   pip._internal.utils.urlsr   pip._internal.vcsr   	getLogger__name__rR   compile
IGNORECASEr   tuplelistrj   r!   r2   r9   rK   rX   rU   r   rs   r"   r    <module>r      sQ   @ @ " " " " " "   				 $ $ $ $ $ $ ' ' ' ' ' ' O O O O O O O O A A A A A A A A * * * * * * K K K K K K K K J J J J J J J J * * * * * * , , , , , , C C C C C C N N N N N N < < < < < < 2 2 2 2 2 2 : : : : : : : : 0 0 0 0 0 0 ! ! ! ! ! !		8	$	$rz;R]KKD+,d3E.FFG( ( ( (   >    
 
 
 
:   D1 1 1 1h9+ 9+ 9+ 9+ 9+ 9+r"   