§
    è phÌ+  ã                   ó
  — 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<fd„Z>de$de<fd„Z?de$de	e<         fd„Z@de$dede;fd„ZAde$d e;ddfd!„ZBde$d"e;d#e<d$ee;         d%ee;         d&e<de	e;         fd'„ZCde$d"e;d$ee;         d%ee;         d&e<de	e;         fd(„ZDde$d%ee;         de<fd)„ZEd*ee$         ded#e<d$ee;         d%ee;         de:fd+„ZFd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    úhC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\pip\_internal\wheel_builder.pyÚ_contains_egg_infor%   $   s    € õ
 •×#Ò# AÑ&Ô&Ñ'Ô'Ð'ó    Úreqc                 óX   — | j         rJ ‚| j        rdS | j        sJ ‚| j        r| j        S dS )zBReturn whether an InstallRequirement should be built into a wheel.FT)Ú
constraintÚis_wheelÚ
source_dirÚeditableÚsupports_pyproject_editable©r'   s    r$   Ú_should_buildr/   ,   sG   € ð Œ~ÐÐÐà
„|ð ØˆuàŒ>ÐÐÐà
„|ð /àÔ.Ð.àˆ4r&   c                 ó    — t          | ¦  «        S ©N)r/   r.   s    r$   Ú should_build_for_install_commandr2   >   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)r,   r+   ÚlinkÚis_vcsr   Úget_backend_for_schemeÚschemeÚis_immutable_rev_checkoutÚurlÚsplitextr%   )r'   Úvcs_backendÚbaseÚexts       r$   Ú_should_cacher>   D   sÕ   € ð „|ð ˜3œ>ð àˆuà
„xð 	�C”H”Oð 	ð ”<ÐÐÐØŒ~ÐÐÐÝÔ0°´´ÑAÔAˆØÐÐÐØ×0Ò0°´´¸s¼~ÑNÔNð 	Ø�4ØˆuàŒ8€O€O€OØ”×!Ò!Ñ#Ô#�I€Dˆ#Ý˜$ÑÔð Øˆ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_dirr4   r>   Úget_path_for_linkÚget_ephem_path_for_link)r'   r?   Úcache_availablerA   s       r$   Ú_get_cache_dirrE   d   sj   € õ ˜;Ô0Ñ1Ô1€OØŒ8€O€O€OØð 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   Únamer   ÚosÚpathÚbasenamer   r   r   ÚstrÚversionr   Úmetadata_versionr   r
   r	   Ú
isinstance)	r'   rF   Úcanonical_nameÚwÚdistÚdist_verstrÚmetadata_version_valuerO   Úmsgs	            r$   Ú_verify_onerW   t   sÁ  € Ý& s¤x ~°2Ñ6Ô6€NÝ�bŒg×Ò˜zÑ*Ô*Ñ+Ô+€AÝ˜œÑ Ô  NÒ2ð 
Ý"ð¸ð ð Ø”6ðð ñ
ô 
ð 	
õ "¥/°*Ñ"=Ô"=¸~ÑNÔN€DÝ�d”lÑ#Ô#€KÝ˜KÑ(Ô(Õ,@ÀÄÑ,KÔ,KÒKð 
Ý"ð!¸ð !ð !Ø”9ð!ð !ñ
ô 
ð 	
ð "Ô2ÐØð ;ÝÐ9Ñ:Ô:Ð:ð$Ý"Ð#9Ñ:Ô:ÐÐøÝð $ð $ð $ØCÐ+AÐCÐCˆÝ˜sÑ#Ô#Ð#ð$øøøð �7 5™>œ>Ò)ð 
µ*¸T¼\Í7Ñ2SÔ2Sð 
ÝØP¸+ÐPÐPÐPñ
ô 
ð 	
ð
ð 
ð 
ð 
s   Ã>D ÄD-Ú
output_dirÚverifyÚbuild_optionsÚglobal_optionsr,   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.
    r,   ÚwheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s)
r   ÚOSErrorÚloggerÚwarningrI   Ú	build_envÚ_build_one_inside_envrW   r   r   )	r'   rX   rY   rZ   r[   r,   ÚartifactÚerF   s	            r$   Ú
_build_onere   ‘   sr  € ð &Ð2ˆzˆz¨7€Hð	Ý�:ÑÔÐÐøÝð ð ð Ý�ŠØ+ØØŒHØñ		
ô 	
ð 	
ð ˆtˆtˆtˆtˆtøøøøðøøøð 
Œð 
ð 
Ý*Ø�˜]¨N¸Hñ
ô 
ˆ
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð ð �fð ð	Ý˜˜ZÑ(Ô(Ð(Ð(øÝ$Õ&6Ð7ð 	ð 	ð 	Ý�NŠNÐ;¸XÀsÄxÐQRÑSÔSÐSØ�4�4�4�4�4øøøøð	øøøð Ð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 )
Nr]   )Úkindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)rI   ÚbackendÚmetadata_directoryÚtempd)rI   Úsetup_py_pathr+   r[   rZ   rj   z3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   rI   Ú
use_pep517ri   Úpep517_backendr_   r`   r   rK   r   r   rk   Úunpacked_source_directoryrJ   rL   Újoinr   ÚshutilÚmoveÚinfoÚ	hexdigestÚ	ExceptionÚ_clean_one_legacy)r'   rX   rZ   r[   r,   Útemp_dirrF   Ú
wheel_nameÚ	dest_pathÚ
wheel_hashÚlengthrd   s               r$   rb   rb   ·   sÚ  € õ 
˜GÐ	$Ñ	$Ô	$ð =¨ØŒxˆˆˆØŒ>ð !	ØÔ)Ð)Ð)Ð)ØÔ%Ð%Ð%Ð%Øð Ý—’ØMÈsÌxñô ð ð ð Ý—’ØLÈcÌhñô ð ð ð Ý1ØœØÔ.Ø'*Ô'=Ø"œ-ð	ñ ô �
�
õ 0ØœØÔ.Ø'*Ô'=Ø"œ-ð	ñ ô �
�
õ ,Ø”XØ!Ô/ØÔ8Ø-Ø+Ø”mðñ ô ˆJð ð 	Ýœ×)Ò)¨*Ñ5Ô5ˆJÝœŸš Z°Ñ<Ô<ˆIðÝ%.¨zÑ%:Ô%:Ñ"�
˜FÝ”˜J¨	Ñ2Ô2Ð2Ý—’ØIØ”HØØØ×(Ò(Ñ*Ô*ñô ð õ —’Ð5°zÑ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)r[   zRunning setup.py clean for %szpython setup.py clean)Úcommand_descÚcwdTz Failed cleaning build dir for %sF)	r   rk   r_   rr   rI   r   r+   rt   Úerror)r'   r[   Ú
clean_argss      r$   ru   ru   þ   sž   € Ý+ØÔØ%ðñ ô €Jõ
 ‡K‚KÐ/°´Ñ:Ô:Ð:ðÝØÐ%<À#Ä.ð	
ñ 	
ô 	
ð 	
ð ˆtøÝð ð ð Ý�ŠÐ7¸¼ÑBÔBÐBØˆuˆuðøøø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 )
z˜Build 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 r1   ©rI   ©Ú.0r'   s     r$   ú	<genexpr>zbuild.<locals>.<genexpr>!  s$   è è € Ð3Ð3˜s�#”(Ð3Ð3Ð3Ð3Ð3Ð3r&   NzSuccessfully built %sú c                 ó   — g | ]	}|j         ‘Œ
S © rƒ   r„   s     r$   ú
<listcomp>zbuild.<locals>.<listcomp>D  s   € Ð:Ð:Ð: 3�c”hÐ:Ð:Ð:r&   zFailed to build %sc                 ó   — g | ]	}|j         ‘Œ
S r‰   rƒ   r„   s     r$   rŠ   zbuild.<locals>.<listcomp>I  s   € Ð9Ð9Ð9 3�c”hÐ9Ð9Ð9r&   )r_   rr   ro   r   rI   rE   re   r,   Úpermit_editable_wheelsÚdownload_infoÚrecord_download_originr   r   r4   Ú	file_pathÚlocal_file_pathr*   Úappend)
r€   r?   rY   rZ   r[   Úbuild_successesÚbuild_failuresr'   rA   Ú
wheel_files
             r$   Úbuildr•     s4  € ð ð Ø�2ˆvˆõ ‡K‚KØ4Ø�	Š	Ð3Ð3 lÐ3Ñ3Ô3Ñ3Ô3ñô ð õ
 
‰Œð +ð +Ø*,¨b˜ˆØð 	+ð 	+ˆCØ”8ˆOˆOˆOÝ& s¨KÑ8Ô8ˆIÝ#ØØØØØØ”Ð; Ô!;ñô ˆJð ð +àÔ$ð Uð  ×6Ò6°yÀ#ÔBSÑTÔTÐTå¥¨JÑ 7Ô 7Ñ8Ô8�”Ø&)¤hÔ&8�Ô#Ø”xÔ(Ð(Ð(Ð(Ø×&Ò& sÑ+Ô+Ð+Ð+à×%Ò% cÑ*Ô*Ð*Ð*ð1	+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð: ð 
Ý�ŠØ#Ø�HŠHÐ:Ð:¨/Ð:Ñ:Ô:Ñ;Ô;ñ	
ô 	
ð 	
ð ð 
Ý�ŠØ Ø�HŠHÐ9Ð9¨.Ð9Ñ9Ô9Ñ:Ô:ñ	
ô 	
ð 	
ð
 ˜NÐ*Ð*s   ÁCD,Ä,D0Ä3D0)GÚ__doc__ÚloggingÚos.pathrJ   Úrerp   Ú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"   ÚBuildResultrM   r!   r%   r/   r2   r>   rE   rW   re   rb   ru   r•   r‰   r&   r$   ú<module>r²      s;  ðØ @Ð @à €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 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Ñ	$Ô	$€àˆrŒzÐ;¸R¼]ÑKÔK€à�DÐ+Ô,¨dÐ3EÔ.FÐFÔG€ð(˜#ð ( $ð (ð (ð (ð (ðØ	ðà	ðð ð ð ð$Ø	ðà	ðð ð ð ðØ	ðàˆd„^ðð ð ð ð@Ø	ðàðð 	ðð ð ð ð 
Ð'ð 
°Sð 
¸Tð 
ð 
ð 
ð 
ð:#Ø	ð#àð#ð ð#ð ˜”9ð	#ð
 ˜”Ið#ð ð#ð ˆc„]ð#ð #ð #ð #ðLDØ	ðDàðDð ˜”9ðDð ˜”Ið	Dð
 ðDð ˆc„]ðDð Dð Dð DðNÐ-ð ¸tÀC¼yð ÈTð ð ð ð ð"=+ØÐ-Ô.ð=+àð=+ð ð=+ð ˜”9ð	=+ð
 ˜”Ið=+ð ð=+ð =+ð =+ð =+ð =+ð =+r&   