
    YhZ1                    "   d dl mZ d dlZd dl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 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jD                  dejF                        Z$ ejD                  dejF                        Z% ejD                  d      Z& ejD                  d      Z' eddd       Z(de Z)d'dZ*d(dZ+d)dZ, G d de      Z- G d  d!e-      Z. G d" d#e.      Z/ G d$ d%e-      Z0d*d&Z1y)+    )annotationsN)ABCMetaabstractmethod)defaultdict)Iterator)Message)Parser)EmailPolicy)iglob)Path)dedent)ZipFile   )__version__)generate_requirements)	parse_tag)	WheelFilez]
    (?P<name>.+?)-(?P<ver>.+?)
    (-(?P<pyver>py\d\.\d+)
     (-(?P<arch>.+?))?
    )?.egg$zL
    ^(?P<name>.+?)-(?P<ver>.+?)
    (-(?P<pyver>py\d\.\d+)
    )?.egg-info/z>\.(?P<platform>win32|win-amd64)(?:-(?P<pyver>py\d\.\d))?\.exe$z8\.(?P<abi>[a-z0-9]+)-(?P<platform>win32|win_amd64)\.pyd$TF)utf8mangle_from_max_line_lengthzwheel c                8   d }t        t              }| j                         D ]Q  }|j                         }|s|j	                  d      r|j                  d      r|dd }>||   j                  |       S t        |      D ]  \  }}|j                  ||        y )N[]   )	r   list
splitlinesstrip
startswithendswithappendr   
add_header)requiresmetadataextrarequirementslinekeyvalues          b/var/www/django-portfolio.reubendavern.link/venv/lib/python3.12/site-packages/wheel/cli/convert.pyconvert_requiresr+   0   s    E0;D0AL##% 	)zz|??3DMM#$62JEU""4(	) ,L9 (
UC'(    c                   t               j                  |       }|j                         D ]  \  }}|j                         }|dk(  r|dk(  rb|j	                         }dj                  |d   j                         t        dj                  |dd              df      }|j                  |       |dk(  r|j                  dd|        |d	k(  r|j                  dd
|        |j                  ||        |j                  dd       y )NUNKNOWNdescription
r   r   z	home-pagezProject-URLz
Homepage, zdownload-urlz
Download, zMetadata-Versionz2.4)r	   parsestritemslowerr   joinlstripr   set_payloadr"   replace_header)pkginfor$   parsed_messager(   r)   	key_lowerdescription_liness          r*   convert_pkg_infor<   B   s   X&&w/N$**, ,
UIIK	I% % 0 0 2II%a(//1499%6qr%:;<E   '+%E7/CD.(E7/CDU+),, .6r,   c                l    t        j                  dd|       j                         j                  dd      S )Nz[-_.]+-_)resubr3   replace)names    r*   	normalizerD   ]   s+    66)S$'--/77SAAr,   c                  z    e Zd ZU ded<   ded<   dZded<   dZded<   dZded	<   d
ed<   edd       Ze	dd       Z
y)ConvertSourcestrrC   versionzpy2.py3pyvernoneabianyplatformr   r$   c                :    | j                    d| j                   dS )Nr>   
.dist-info)rC   rH   selfs    r*   dist_info_dirzConvertSource.dist_info_diri   s    ))Adll^:66r,   c                     y N rP   s    r*   generate_contentszConvertSource.generate_contentsm   s    r,   N)returnrG   rW   zIterator[tuple[str, bytes]])__name__
__module____qualname____annotations__rI   rK   rM   propertyrR   r   rV   rU   r,   r*   rF   rF   a   sV    
ILE3CHc7 7  r,   rF   )	metaclassc                      e Zd ZddZddZy)EggFileSourcec                   t         j                  |j                        x}st        d|j                         || _        t        |j                  d            | _        |j                  d      | _        |j                  d      x}r[|j                  dd      | _	        |j                  d      x}r1| j                  j                  dd	      | _
        t        |      | _        t               | _        y )
NzInvalid egg file name: rC   verrI   . archpycp)egg_filename_rematchrC   
ValueErrorpathrD   grouprH   rB   rI   rK   rM   r   r$   )rQ   rk   ri   rI   re   s        r*   __init__zEggFileSource.__init__s   s    (..tyy9996tyykBCC 	ekk&12	{{5)KK((5(sB/DJ{{6**t*::--dD9 )$	r,   c              #  P  K   t        | j                  d      5 }t        |j                               D ]  }|j	                  d      r|j                  d      r|dk(  r7|j                  |      j                  d      }t        || j                         nc|dk(  r7|j                  |      j                  d      }t        || j                         n'|dk(  r"| j                   d|j                  |      f ||j                  |      f  	 d d d        y # 1 sw Y   y xY ww)	Nr/z	EGG-INFO/zEGG-INFO/requires.txtutf-8zEGG-INFO/PKG-INFOzEGG-INFO/entry_points.txt/entry_points.txt)r   rk   sortednamelistr    r   readdecoder+   r$   r<   rR   )rQ   zip_filefilenamer#   r8   s        r*   rV   zEggFileSource.generate_contents   s    TYY$ 	8"8#4#4#67 8$$S) &&{3#::#+==#:#A#A'#J(4==A!%88"*--"9"@"@"I($--@!%@@#1122CD$MM(3 
  h 777/8	8 	8 	8s   D&C7D	D&D#D&Nrk   r   rX   )rY   rZ   r[   rm   rV   rU   r,   r*   r`   r`   r   s    " 8r,   r`   c                      e Zd ZddZy)EggDirectorySourcec              #    K   t        j                  | j                        D ]e  \  }}}t        |      D ]O  }t	        ||      }|j
                  j                  dk(  r|j                  dk(  r(|j                  d      }t        || j                         n|j                  dk(  ry|j                  d      }t        || j                         | j                  j                  d      x}rt        |      | _        | j                  j                  d      x}	r8|	| _        n0|j                  dk(  r!| j                   d|j                         f t!        |j#                  | j                              |j                         f R h y w)	NzEGG-INFOrequires.txtrq   PKG-INFONameVersionentry_points.txtrr   )oswalkrk   rs   r   parentrC   	read_textr+   r$   r<   getrD   rH   rR   
read_bytesrG   relative_to)
rQ   dirpathr?   	filenamesrx   rk   r#   r8   rC   rH   s
             r*   rV   z$EggDirectorySource.generate_contents   sU    %'WWTYY%7 	J!GQ	"9- JGX.;;##z1yyN2#'>>'#:(4==Aj0"&.."9($--@#'==#4#4V#<<4<(1$DI&*mm&7&7	&BB7B+2DL&88#1122CD OO- 
  $**499568III/J	Js   F
FNrX   )rY   rZ   r[   rV   rU   r,   r*   r{   r{      s    Jr,   r{   c                       e Zd ZdZddZddZy)WininstFileSourcea  
    Handles distributions created with ``bdist_wininst``.

    The egginfo filename has the format::

        name-ver(-pyver)(-arch).egg-info

    The installer filename has the format::

        name-ver.arch(-pyver).exe

    Some things to note:

    1. The installer filename is not definitive. An installer can be renamed
       and work perfectly well as an installer. So more reliable data should
       be used whenever possible.
    2. The egg-info data should be preferred for the name and version, because
       these come straight from the distutils metadata, and are mandatory.
    3. The pyver from the egg-info data should be ignored, as it is
       constructed from the version of Python used to build the installer,
       which is irrelevant - the installer filename is correct here (even to
       the point that when it's not there, any version is implied).
    4. The architecture must be taken from the installer filename, as it is
       not included in the egg-info data.
    5. Architecture-neutral installers still have an architecture because the
       installer format itself (being executable) is architecture-specific. We
       should therefore ignore the architecture if the content is pure-python.
    c                F   || _         t               | _        t        j	                  |j
                        x}rIt        |j                  d            | _        |j                  d      x}r|j                  dd      | _
        dx}}t        | j                         5 }|j                         D ]  }|j                  dd      \  }}|syt        j                  |      x}rbd}t        |j                  d	            | _        |j                  d
      | _        |j                  d      x}r_|j                  dd      | _
        nG|sEt"        j	                  |      x}r.d}|j                  d      | _        |j                  d      | _        |s|s n d d d        y # 1 sw Y   y xY w)NrM   rI   rc   rd   Frp   r   TrC   rb   rK   )rk   r   r$   
wininst_researchrC   rD   rl   rM   rB   rI   r   rt   splitegg_info_reri   rH   pyd_rerK   )	rQ   rk   ri   rI   egg_info_found	pyd_foundrw   rx   prefixs	            r*   rm   zWininstFileSource.__init__   sp   		 %%dii0050%ekk*&=>DMG,,u,"]]33
 &+*TYY 	8$--/ #+>>#q#9 %K4E4Eh4O+O5+O%)N )%++f*= >DI#(;;u#5DL %G 44u4%*]]3%;
"x1H(H(H $I${{51DH$)KK
$;DM!i	 	 	s   C-FFFF c              #  $  K   | j                    d| j                   d}| j                    d| j                   d}t        | j                  d      5 }t	        |j                               D ]  }|j                  d      r|j                  dd      \  }}t        j                  |      r|j                  dd      d   }|dk(  r7|j                  |      j                  d	      }t        || j                         nY|d
k(  r7|j                  |      j                  d	      }	t        |	| j                         n|dk(  r| d|j                  |      f |dk(  r| d| }||j                  |      f  	 d d d        y # 1 sw Y   y xY ww)Nr>   rO   z.dataro   rp   r   r   r}   rq   r~   r   rr   SCRIPTSz	/scripts/)rC   rH   r   rk   rs   rt   r    r   r   r   rsplitru   rv   r+   r$   r<   )
rQ   rR   data_dirrw   rx   r   target_filenamebasenamer#   r8   s
             r*   rV   z#WininstFileSource.generate_contents   s    99+Qt||nJ?ii[$,,u5TYY$ 	?"8#4#4#67 ?$$S) +3..a*@'%%o6.55c1=bAH>1#+==#:#A#A'#J(4==A!Z/"*--"9"@"@"I($--@!%77,o->?$MM(3 
 y()1
)O;L&MO &x}}X'>>>7?	? 	? 	?s   AFD)F;	FF	FNry   rX   )rY   rZ   r[   __doc__rm   rV   rU   r,   r*   r   r      s    :<?r,   r   c                   | D ]g  }t        |      D ]U  }t        |      }|j                  dk(  r(|j                         rt	        |      }nt        |      }nt        |      }|rt        | ddd       t        |      |j                   d|j                   d|j                   d|j                   d|j                   d
z  }t        |d      5 }|j                         D ]  \  }	}
|j                  |	|
        |j                  |j                    d	|j"                  j%                  t&        
      j)                  d             t+               }|j-                  dd       |j-                  dt.               |j-                  dt1        |j                  dk(        j3                                t5        |j                   d|j                   d|j                         }t7        |d       D ]  }|j-                  dt1        |              |j                  |j                    d|j%                  t&        
      j)                  d             d d d        |sKt        d       X j y # 1 sw Y   xY w)Nz.eggz...Trd   )flushendr>   z.whlwz	/METADATA)policyrq   zWheel-Versionz1.0	GeneratorzRoot-Is-PurelibrL   c                    | j                   S rT   )interpreter)tags    r*   <lambda>zconvert.<locals>.<lambda>A  s
     r,   )r(   Tagz/WHEELOK)r   r   suffixis_dirr{   r`   r   printrC   rH   rI   rK   rM   r   rV   writestrrR   r$   	as_stringserialization_policyencoder   r"   	GENERATORrG   r3   r   rs   )filesdest_dirverbosepatarchiverk   source	dest_path	wheelfilename_or_zinfocontentswheel_messagetagsr   s                 r*   convertr     sK    1Sz 0	G=D{{f$;;=,>t,DF*40F*40	oTr:X;;-q 0&,,qFOO$D*I 9c* i/5/G/G/I @+M8&&}h?@ ""++,I6OO--5I-JQQ !(	((%@((i@((%s6??e+C'D'J'J'L !FLL>6::,a?P!QR!$,GH >C!,,UCH=> ""++,F3!++3G+HOO/< da0	1$ s   F I//I8)r#   rG   r$   r   rW   None)r8   rG   r$   r   )rC   rG   rW   rG   )r   z	list[str]r   rG   r   boolrW   r   )2
__future__r   os.pathr   r@   abcr   r   collectionsr   collections.abcr   email.messager   email.parserr	   email.policyr
   globr   pathlibr   textwrapr   zipfiler   rd   r   r$   r   vendored.packaging.tagsr   r   r   compileVERBOSErh   r   r   r   r   r   r+   r<   rD   rF   r`   r{   r   r   rU   r,   r*   <module>r      s   "  	 ' # $ !  $      , / !"**
 JJ bjj JJ RZZE
 
O	P"	 
 [M"	($76Bg "*8M *8ZJ J:[? [?|2r,   