
    df                      (   d Z ddlZddlZddlZddlZddlZddlZddlZddlm	Z	 ddl
Z
ddl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j*                  d	ej,                        j.                  Zd
Zd Zej6                  d        Z G d d      Zy)zWheels support.    N)get_platform)parse_version)sys_tags)canonicalize_name)write_requirements)_unpack_zipfile_objz^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$z8__import__('pkg_resources').declare_namespace(__name__)
c                    t        j                  |       D ]$  \  }}}t         j                  j                  ||       }|D ]Y  }t         j                  j	                  ||      }t         j                  j	                  |||      }t        j
                  ||       [ t        t        t        |                  D ]  \  }	}
t         j                  j	                  ||
      }t         j                  j	                  |||
      }t         j                  j                  |      rgt        j
                  ||       ||	=  ' t        j                  | d      D ]  \  }}}|rJ t        j                  |       ! y)zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)topdownN)oswalkpathrelpathjoinrenamesreversedlist	enumerateexistsrmdir)src_dirdst_dirdirpathdirnames	filenamessubdirfsrcdstnds              I/home/api-vastappli/venv/lib/python3.12/site-packages/setuptools/wheel.pyunpackr"       s&   (*(8  $9'2 	!A'',,w*C'',,w2CJJsC 	! T)H"567 	 DAq'',,w*C'',,w2C77>>#& 

3$QK	   )+(F $9
    c               #      K   ddl m}  | j                  | j                        }	 d | j                  |       y# | j                  |       w xY ww)z*
    Temporarily disable info traces.
    r   )logN)	distutilsr%   set_thresholdWARN)r%   saveds     r!   disable_info_tracesr*   6   sC     
 chh'E!% % s   "A; AAAc                   f    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
d        Ze
d	        Ze
d
        Zy)Wheelc                     t        t        j                  j                  |            }|t	        d|z        || _        |j                         j                         D ]  \  }}t        | ||        y )Nzinvalid wheel name: %r)	
WHEEL_NAMEr   r   basename
ValueErrorfilename	groupdictitemssetattr)selfr1   matchkvs        r!   __init__zWheel.__init__E   sg    277++H56=5@AA OO%++- 	 DAqD!Q	 r#   c                     t        j                  | j                  j                  d      | j                  j                  d      | j
                  j                  d            S )z>List tags (py_version, abi, platform) supported by this wheel..)	itertoolsproduct
py_versionsplitabiplatformr5   s    r!   tagsz
Wheel.tagsM   sI      OO!!#&HHNN3MM$
 	
r#   c                 ~    t        d t               D              t        fd| j                         D        d      S )z5Is the wheel is compatible with the current platform?c              3   b   K   | ]'  }|j                   |j                  |j                  f ) y wN)interpreterr@   rA   ).0ts     r!   	<genexpr>z&Wheel.is_compatible.<locals>.<genexpr>W   s*      D34Q]]AEE1::.Ds   -/c              3   ,   K   | ]  }|v sd   yw)TN )rH   rI   supported_tagss     r!   rJ   z&Wheel.is_compatible.<locals>.<genexpr>Y   s     Fa!~2ETFs   	F)setr   nextrC   )r5   rM   s    @r!   is_compatiblezWheel.is_compatibleU   s8     D8@
D DF499;FNNr#   c                     t        j                  | j                  | j                  | j                  dk(  rd n	t                     j                         dz   S )Nany)project_nameversionrA   z.egg)pkg_resourcesDistributionrS   rT   rA   r   egg_namerB   s    r!   rW   zWheel.egg_name[   sF    ))**DLL"mmu4d,.
 (*v 	r#   c                     |j                         D ]Z  }t        j                  |      }|j                  d      s*t	        |      j                  t	        | j                              sX|c S  t        d      )Nz
.dist-infoz.unsupported wheel format. .dist-info not found)namelist	posixpathdirnameendswithr   
startswithrS   r0   )r5   zfmemberr[   s       r!   get_dist_infozWheel.get_dist_infoa   si    kkm 	F''/G  .%g.99)$*;*;<>	 IJJr#   c                     t        j                  | j                        5 }| j                  ||       ddd       y# 1 sw Y   yxY w)z"Install wheel as an egg directory.N)zipfileZipFiler1   _install_as_egg)r5   destination_eggdirr^   s      r!   install_as_eggzWheel.install_as_eggk   s:    __T]]+ 	9r  !3R8	9 	9 	9s	   <Ac                    | j                   d| j                  }| j                  |      }d|z  }t        j                  j                  |d      }| j                  ||||       | j                  ||       | j                  ||       y )N-z%s.dataEGG-INFO)	rS   rT   r`   r   r   r   _convert_metadata_move_data_entries_fix_namespace_packages)r5   re   r^   dist_basename	dist_info	dist_dataegg_infos          r!   rd   zWheel._install_as_eggp   s|    #'#4#4dllC&&r*	-	77<< 2J?r#5y(K 2I>$$X/ABr#   c                 6     fd} |d      }t        |j                  d            }t        d      |cxk  xr t        d      k  nc }|st        d|z        t         |       t        j
                  j                  |      t        j                  j                  |t        j                  |            }d }	t        t        |	|j                                     }
|j                  D ci c]1  }|t        |	|j                  |f            D cg c]  }||
vr|
 c}3 }}}t	        j                  |       t	        j                  t        j
                  j                  |d	      t        j
                  j                  |d
             t!        j                  t#        |
|            }t%               5  t'        |j)                  d      d t        j
                  j                  |d             d d d        y c c}w c c}}w # 1 sw Y   y xY w)Nc                    j                  t        j                  |             5 }|j                         j	                  d      }t
        j                  j                         j                  |      cd d d        S # 1 sw Y   y xY w)Nzutf-8)	openrZ   r   readdecodeemailparserParserparsestr)namefpvaluern   r^   s      r!   get_metadataz-Wheel._convert_metadata.<locals>.get_metadata|   sb    	489 =R	((1||**,55e<= = =s   AA==BWHEELzWheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)metadatac                 &    d | _         t        |       S rF   )markerstr)reqs    r!   raw_reqz(Wheel._convert_metadata.<locals>.raw_req   s    CJs8Or#   METADATAzPKG-INFO)install_requiresextras_require)attrsrp   zrequires.txt)r   getr0   r   r   r   r   rU   rV   from_locationPathMetadatar   maprequiresextrasrename
setuptoolsdictr*   r   get_command_obj)r^   re   rn   rp   r}   wheel_metadatawheel_versionwheel_v1distr   r   extrar   r   
setup_dists   ` `            r!   rj   zWheel._convert_metadataz   s   	=
 &g.%n&8&8&IJ% MLM)4LL 	 6FH H 	B 23GGLL!3Y?	))77	"//0BIN 8 
	  GT]]_ => 
  wuh(?@..  
 
 			)X&
		GGLL:.GGLL:.	
  ,,!1-

 !" 	**:6X~6	 	%
&	 	s$   4$H	H%H	 ;HH	Hc                    t         j                  j                  |       t         j                  j                  d      }t         j                  j                  |      rt         j                  j                  | dd      }t        j                  |       t        j
                  |      D ]  }|j                  d      r4t        j                  t         j                  j                  ||             Ht        j                  t         j                  j                  ||      t         j                  j                  ||              t        j                  |       t        t         j                  j                  fddD              D ]  }t        ||         t         j                  j                        rt        j                         yy)z,Move data entries to their correct location.scriptsri   z.pycc              3   ^   K   | ]$  }t         j                  j                  |       & y wrF   )r   r   r   )rH   r    ro   s     r!   rJ   z+Wheel._move_data_entries.<locals>.<genexpr>   s(      .
 GGLLA&.
s   *-)dataheaderspurelibplatlibN)r   r   r   r   mkdirlistdirr\   unlinkr   r   filterr"   )re   ro   dist_data_scriptsegg_info_scriptsentryr   s    `    r!   rk   zWheel._move_data_entries   sF    GGLL!3Y?	GGLLI>77>>+,!ww||"J	 ;HH%&$56 	 >>&)IIbggll+<eDEII%6>%5u=	 HH&'RWW^^ .
>.
  	/F 6-.		/
 77>>)$HHY %r#   c                    t         j                  j                  | d      }t         j                  j                  |      rt	        |      5 }|j                         j                         }d d d        |D ]  }t        j                  j                  |g|j                  d       }t         j                  j                  |d      }t         j                  j                  |      st        j                  |       t         j                  j                  |      rt	        |d      5 }|j                  t               d d d         y y # 1 sw Y   xY w# 1 sw Y   xY w)Nznamespace_packages.txtr;   z__init__.pyw)
r   r   r   r   rs   rt   r?   r   writeNAMESPACE_PACKAGE_INIT)rp   re   namespace_packagesr{   modmod_dirmod_inits          r!   rl   zWheel._fix_namespace_packages   s   WW\\.077>>,-() 7R%'WWY__%6"7) 9'',,'9KCIIcNK77<<?ww~~g.HHW%ww~~h/h, 9!789 99 .7 79 9s   E	'E	EE	N)__name__
__module____qualname__r9   rC   rP   rW   r`   rf   rd   staticmethodrj   rk   rl   rL   r#   r!   r,   r,   C   se     
OK9
C 7 7r    6 9 9r#   r,   )__doc__rv   r<   r   rZ   rerb   
contextlibdistutils.utilr   rU   r   r    setuptools.extern.packaging.tagsr   !setuptools.extern.packaging.utilsr   setuptools.command.egg_infor   setuptools.archive_utilr   compileVERBOSEr6   r.   r   r"   contextmanagerr*   r,   rL   r#   r!   <module>r      s       	  	   '   ' 5 ? : 7 RZZ JJ	 	  @ , 	! 	![9 [9r#   