
    жvg.                        d Z ddlZddlZddlZddlZddlmZmZm	Z	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& ddl'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3  ej4        e5          Z6 ej7        dej8                  Z9e
ee$         ee$         f         Z:de;de<fdZ=de$de<de<fdZ>de$de<fdZ?de$de<fdZ@de$de	e<         fdZAde$d ede;fd!ZBde$d"e;ddfd#ZCde$d$e;d%e<d&ee;         d'ee;         d(e<de	e;         fd)ZDde$d$e;d&ee;         d'ee;         d(e<de	e;         fd*ZEde$d'ee;         de<fd+ZFd,ee$         d ed%e<d&ee;         d'ee;         de:fd-ZGdS ).z;Orchestrator for building wheels from InstallRequirements.
    N)IterableListOptionalTuple)canonicalize_namecanonicalize_version)InvalidVersionVersion)
WheelCache)InvalidWheelFilenameUnsupportedWheel)FilesystemWheelget_wheel_distribution)Link)Wheel)build_wheel_pep517)build_wheel_editable)build_wheel_legacy)InstallRequirement)
indent_log)
ensure_dir	hash_file)make_setuptools_clean_args)call_subprocess)TempDirectory)path_to_url)vcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)sreturnc                 P    t          t                              |                     S )zjDetermine whether the string looks like an egg_info.

    :param s: The string to parse. E.g. foo-2.1
    )bool_egg_info_research)r   s    X/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/wheel_builder.py_contains_egg_infor%   %   s     
 ##A&&'''    req
need_wheelc                     | j         rdS | j        r$|r t                              d| j                   dS |rdS | j        sdS | j        r| j        S dS )zBReturn whether an InstallRequirement should be built into a wheel.Fz(Skipping %s, due to already being wheel.T)
constraintis_wheelloggerinfoname
source_direditablesupports_pyproject_editable)r'   r(   s     r$   _should_buildr2   -   s    
 ~ u
|  	KK:   u t
 > u
| /..4r&   c                 $    t          | d          S )NTr(   r2   r'   s    r$   should_build_for_wheel_commandr7   N   s     ....r&   c                 $    t          | d          S )NFr4   r5   r6   s    r$    should_build_for_install_commandr9   T   s     ////r&   c                 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, and _should_build()
    has determined a wheel needs to be built.
    FT)r0   r/   linkis_vcsr   get_backend_for_schemeschemeis_immutable_rev_checkouturlsplitextr%   )r'   vcs_backendbaseexts       r$   _should_cacherE   Z   s     | 3> u
x 	CHO 	 <~0AA00s~NN 	4u8OOO!!##ID#$ t 5r&   wheel_cachec                     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;   rE   get_path_for_linkget_ephem_path_for_link)r'   rF   cache_availablerH   s       r$   _get_cache_dirrL   z   sj     ;011O8OOO B=-- B11#(;;		77AA	r&   
wheel_pathc                    t          | j        pd          }t          t          j                            |                    }t          |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   r.   r   ospathbasenamer   r   r   strversionr   metadata_versionr   r
   r	   
isinstance)	r'   rM   canonical_namewdistdist_verstrmetadata_version_valuerU   msgs	            r$   _verify_oner]      s   &sx~266Nbgz**++A  N22"  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   >D D-
output_dirverifybuild_optionsglobal_optionsr0   c                    |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.
    r0   wheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s)
r   OSErrorr,   warningr.   	build_env_build_one_inside_envr]   r   r   )	r'   r^   r_   r`   ra   r0   artifacterM   s	            r$   
_build_onerj      sr    &2zz7H	:   +H		
 	
 	
 ttttt 
 
 
*]NH
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
  f 	Z(((($&67 	 	 	NN;XsxQRSSS44444	 s>    
A"A

AA99A= A=	B C+"CCc           	      H   t          d          5 }| j        sJ | j        r| j        sJ | j        sJ |r t
                              d| j                   |r t
                              d| j                   |r(t          | j        | j        | j        |j                  }nQt          | j        | j        | j        |j                  }n)t          | j        | 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| j        st-          | |           	 d d d            d S # 1 swxY w Y   d S )
Nrc   )kindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)r.   backendmetadata_directorytempd)r.   setup_py_pathr/   ra   r`   ro   z3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   r.   
use_pep517rn   pep517_backendr,   re   r   rQ   r   r   rp   unpacked_source_directoryrP   rR   joinr   shutilmover-   	hexdigest	Exception_clean_one_legacy)r'   r^   r`   ra   r0   temp_dirrM   
wheel_name	dest_path
wheel_hashlengthri   s               r$   rg   rg      s    
G	$	$	$ =x> !	))))%%%% Msx    Lch    1.'*'="-	  

 0.'*'="-	  

 ,X!/8-+m  J !))*55JZ<<I%.z%:%:"
FJ	222IH((**   5zBBB g= = = = = = = =h    6H        ~ 	3c>222{= = = = = = = = = = = = = = = = = =s7   D#H5A8F::
G/!G*%H*G//HHHc                    t          | j        |          }t                              d| j                   	 t          |d| j                   dS # t          $ r$ t                              d| j                   Y dS w xY w)N)ra   zRunning setup.py clean for %szpython setup.py clean)command_desccwdTz Failed cleaning build dir for %sF)	r   rp   r,   r-   r.   r   r/   rx   error)r'   ra   
clean_argss      r$   ry   ry     s    +%  J
 KK/:::%<#.	
 	
 	
 	
 t   7BBBuus   A *A?>A?requirementsc           
      ^   | 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>7  s$      33s#(333333r&   NzSuccessfully built %s c                     g | ]	}|j         
S  r   r   s     r$   
<listcomp>zbuild.<locals>.<listcomp>Z  s    :::3ch:::r&   zFailed to build %sc                     g | ]	}|j         
S r   r   r   s     r$   r   zbuild.<locals>.<listcomp>_  s    9993ch999r&   )r,   r-   rt   r   r.   rL   rj   r0   permit_editable_wheelsdownload_inforecord_download_originr   r   r;   	file_pathlocal_file_pathr+   append)
r   rF   r_   r`   ra   build_successesbuild_failuresr'   rH   
wheel_files
             r$   buildr   %  s1     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****1	++ + + + + + + + + + + + + + +:  
#HH::/:::;;	
 	
 	
  
 HH99.999::	
 	
 	

 N**s   CD,,D03D0)H__doc__loggingos.pathrP   reru   typingr   r   r   r   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.operations.build.wheel_legacyr   pip._internal.req.req_installr   pip._internal.utils.loggingr   pip._internal.utils.miscr   r   $pip._internal.utils.setuptools_buildr   pip._internal.utils.subprocessr   pip._internal.utils.temp_dirr   pip._internal.utils.urlsr   pip._internal.vcsr   	getLogger__name__r,   compile
IGNORECASEr"   BuildResultrS   r!   r%   r2   r7   r9   rE   rL   r]   rj   rg   ry   r   r   r&   r$   <module>r      sp      				  2 2 2 2 2 2 2 2 2 2 2 2 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 J J J J J J < < < < < < 2 2 2 2 2 2 : : : : : : : : K K K K K K : : : : : : 6 6 6 6 6 6 0 0 0 0 0 0 ! ! ! ! ! !		8	$	$rz;R]KKD+,d3E.FFG(# ($ ( ( ( (	 
   B/	/	/ / / /0	0	0 0 0 0	d^   @	 	    
' 
S 
T 
 
 
 
:#	## # 9	#
 I# # c]# # # #LD	DD 9D I	D
 D c]D D D DN- tCy T    "=+-.=+=+ =+ 9	=+
 I=+ =+ =+ =+ =+ =+ =+r&   