
    YHh%                        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Zddl	m
Z
 ddlmZ ddlmZ ddlmZ ddl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lmZ  ej@                  dejB                        jD                  Z#dZ$ejJ                  d        Z&ddZ'ejP                  d        Z) G d d      Z*y)zWheels support.    N)Requirement)sys_tags)canonicalize_name)Version)_unpack_zipfile_obj)_egg_basenamewrite_requirements   )extras_from_deps)metadata)_read_utf8_with_fallback)get_platformz^(?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               D  ch c]%  } | j                  | j                  | j                  f' c} S c c} w N)r   interpreterabiplatform)ts    I/var/www/html/planif/env/lib/python3.12/site-packages/setuptools/wheel.py_get_supported_tagsr   %   s.    
 9A
C1Q]]AEE1::.CCCs   *: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              r   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)	distutilsr2   set_thresholdWARN)r2   saveds     r   disable_info_tracesr7   C   sC     
 chh'E!% % s   "A; AAAc                   z    e Zd ZddZd Zd Zd Zd ZddZd Z	e
d	        Ze
d
        Ze
d        Ze
d        Zy)WheelNc                     t        t        j                  j                  |            }|t	        d|      || _        |j                         j                         D ]  \  }}t        | ||        y )Nzinvalid wheel name: )	
WHEEL_NAMEr   r   basename
ValueErrorfilename	groupdictitemssetattr)selfr>   matchkvs        r   __init__zWheel.__init__R   si    277++H56=3H<@AA OO%++- 	 DAqD!Q	 r0   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splitr   r   rB   s    r   tagsz
Wheel.tagsZ   sI      OO!!#&HHNN3MM$
 	
r0   c                 D    t        d | j                         D        d      S )z2Is the wheel compatible with the current platform?c              3   :   K   | ]  }|t               v sd   yw)TN)r   ).0r   s     r   	<genexpr>z&Wheel.is_compatible.<locals>.<genexpr>d   s     Ma!7J7L2LTMs   F)nextrN   rM   s    r   is_compatiblezWheel.is_compatibleb   s    M499;MuUUr0   c                 ~    t        | j                  | j                  | j                  dk(  rd n	t	                     dz   S )Nany)r   z.egg)r   project_nameversionr   r   rM   s    r   egg_namezWheel.egg_namef   s;    !!"&--5"8$ln
 	
r0   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   
startswithrW   r=   )rB   zfmemberr]   s       r   get_dist_infozWheel.get_dist_infop   sk    kkm 	F''/G-2CG2L2W2W!$"3"343 	 IJJr0   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ZipFiler>   _install_as_egg)rB   destination_eggdirr`   s      r   install_as_eggzWheel.install_as_eggz   s:    __T]]+ 	9r  !3R8	9 	9 	9s	   <Ac                    | j                    d| j                   }| j                  |      }| d}t        j                  j                  |d      }| j                  ||||       | j                  ||       | j                  ||       y )N-z.dataEGG-INFO)	rW   rX   rb   r   r   r   _convert_metadata_move_data_entries_fix_namespace_packages)rB   rg   r`   dist_basename	dist_info	dist_dataegg_infos          r   rf   zWheel._install_as_egg   s    ,,-Qt||n=&&r*	$oU+	77<< 2J?r#5y(K 2I>$$X/ABr0   c           	      
     fd} |d      }t        |j                  d            }t        d      |cxk  xr t        d      k  nc }|st        d|       t         |       t        j
                  j                  |      t        j                  |      \  }}	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 # 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)Nutf-8)	openr\   r   readdecodeemailparserParserparsestr)namefpvaluerp   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: METADATAzPKG-INFO)install_requiresextras_require)attrsrr   zrequires.txt)parse_versiongetr=   r   r   r   r   r9   _convert_requiresrename
setuptoolsDistributiondictr7   r	   get_command_obj)r`   rg   rp   rr   r   wheel_metadatawheel_versionwheel_v1r   r   
setup_dists   ` `        r   rl   zWheel._convert_metadata   s;   	=
 &g.%n&8&8&IJ '=S=;SSA-QRRB 23GGLL!3Y?	+0+B+B	,
(. 			)X&
		GGLL:.GGLL:.	
  ,,!1-

 !" 	**:6X~6	 	 	s   5;E99Fc                   
 t         j                  j                  |      j                   }|j                  d      xs g }t	        t        t        |            }t        |      }d }d 
d t	        t        |t        
t        j                  |                        }|D ci c]#  t	        t        |
fd|D                    % }	}||	fS c c}w )NzRequires-Distc                 N    t        t        |             } d | _        t        |       S r   )r   strmarker)reqs    r   raw_reqz(Wheel._convert_requires.<locals>.raw_req   s     c#h'CCJs8Or0   c                 V    | j                    xs | j                   j                  |      S r   )r   evaluate)r   envs     r   evalz%Wheel._convert_requires.<locals>.eval   s"    zz>=SZZ%8%8%==r0   c                 v    	 | j                   j                  }t        d |D              S # t        $ r d}Y w xY w)N c              3   ~   K   | ]5  }t        |t              r#|d    j                  dk(  r|d   j                   7 yw)r   extra   N)
isinstancetupler   )rQ   r   s     r   rR   z=Wheel._convert_requires.<locals>.for_extra.<locals>.<genexpr>   s9      fe,G1K q	s   ;=)r   _markersAttributeErrorset)r   markerss     r   	for_extraz*Wheel._convert_requires.<locals>.for_extra   sH    **--  %   " s   * 88c              3   J   K   | ]  } |      s |       s|  yw))r   Nr   )rQ   r   r   r   r   s     r   rR   z*Wheel._convert_requires.<locals>.<genexpr>   s      VSIcNtCu?USVs   #
##)r   r   atget_allr    mapr   r   filterrI   filterfalse)rg   rp   mddepsreqsextrasr   r   r   r   r   r   s           ` @@r   r   zWheel._convert_requires   s    ""%%i099zz/*0bCT*+!$'
	
	>		  i&;&;It&LMN
  
  4VDV 
 
  //
s   '(C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.scriptsrk   z.pycc              3   ^   K   | ]$  }t         j                  j                  |       & y wr   )r   r   r   )rQ   r.   rq   s     r   rR   z+Wheel._move_data_entries.<locals>.<genexpr>   s(       Y*s   *-)dataheaderspurelibplatlibN)r   r   r   r"   mkdirlistdirr^   unlinkr   r#   r   r/   )rg   rq   dist_data_scriptsegg_info_scriptsentryr)   s    `    r   rm   zWheel._move_data_entries   sE    GGLL!3Y?	GGLLI>77>>+,!ww||,>
IVHH%&$56 	 >>&)IIbggll+<eDEII%6>%5u=	 HH&'GGNNB
 	/F 6-.	/ 77>>)$HHY %r0   c                 z   t         j                  j                  | d      }t         j                  j                  |      rt	        |      j                         }|D ]  }t        j                  j                  |g|j                  d       }t         j                  j                  |d      }t         j                  j                  |      st        j                  |       t         j                  j                  |      rt        |dd      5 }|j                  t               d d d         y y # 1 sw Y   xY w)Nznamespace_packages.txtrH   z__init__.pywru   )encoding)
r   r   r   r"   r   rL   r   rv   writeNAMESPACE_PACKAGE_INIT)rr   rg   namespace_packagesmodmod_dirmod_initr~   s          r   rn   zWheel._fix_namespace_packages   s    WW\\(4LM77>>,-!9:L!M!S!S!U) 9'',,'9KCIIcNK77<<?ww~~g.HHW%ww~~h/hg> 9"!789 99 .9 9s   D11D:	returnN)__name__
__module____qualname__rF   rN   rT   rY   rb   rh   rf   staticmethodrl   r   rm   rn   r   r0   r   r9   r9   Q   sz     
V
K9
C " "H )0 )0V    : 9 9r0   r9   r   )+__doc__
contextlibry   	functoolsrI   r   r\   rerd   packaging.requirementsr   packaging.tagsr   packaging.utilsr   packaging.versionr   r   r   setuptools.archive_utilr   setuptools.command.egg_infor   r	   
_discoveryr   
_importlibr   unicode_utilsr   distutils.utilr   compileVERBOSErC   r;   r   cacher   r/   contextmanagerr7   r9   r   r0   r   <module>r      s         	  	  . # - 6  7 I (   3 'RZZ JJ	
 %  U  D D, 
! 
!t9 t9r0   