
    ,h!                     ^   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ZddlmZ ddlmZmZ dd	lmZ dd
lmZ  ej4                  dej6                        j8                  ZdZej>                  d        Z ddZ!ejD                  d        Z# G d d      Z$y)zWheels support.    N)sys_tags)canonicalize_name)Version)_unpack_zipfile_obj)_egg_basenamewrite_requirements   )_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    R/var/www/html/Resume-Scraper/venv/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)	distutilsr/   set_thresholdWARN)r/   saveds     r   disable_info_tracesr4   @   sC     
 chh'E!% % s   "A; AAAc                   j    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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__O   si    277++H56=3H<@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splitr   r   r?   s    r   tagsz
Wheel.tagsW   sI      OO!!#&HHNN3MM$
 	
r-   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>a   s     Ma!7J7L2LTMs   F)nextrK   rJ   s    r   is_compatiblezWheel.is_compatible_   s    M499;MuUUr-   c                 ~    t        | j                  | j                  | j                  dk(  rd n	t	                     dz   S )Nany)r   z.egg)r   project_nameversionr   r   rJ   s    r   egg_namezWheel.egg_namec   s;    !!"&--5"8$ln
 	
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   
startswithrT   r:   )r?   zfmemberrZ   s       r   get_dist_infozWheel.get_dist_infom   sk    kkm 	F''/G-2CG2L2W2W!$"3"343 	 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ZipFiler;   _install_as_egg)r?   destination_eggdirr]   s      r   install_as_eggzWheel.install_as_eggw   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)	rT   rU   r_   r   r   r   _convert_metadata_move_data_entries_fix_namespace_packages)r?   rd   r]   dist_basename	dist_info	dist_dataegg_infos          r   rc   zWheel._install_as_egg|   s    ,,-Qt||n=&&r*	$oU+	77<< 2J?r#5y(K 2I>$$X/ABr-   c                 .    dd l } 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                  |      |j                  j                  ||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)Nr   c                    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)	openrY   r   readdecodeemailparserParserparsestr)namefpvaluerm   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: )metadatac                 &    d | _         t        |       S r   )markerstr)reqs    r   raw_reqz(Wheel._convert_metadata.<locals>.raw_req   s    CJs8Or-   METADATAzPKG-INFO)install_requiresextras_require)attrsro   zrequires.txt)pkg_resourcesparse_versiongetr:   r   r   r   r   Distributionfrom_locationPathMetadatar   maprequiresextrasrename
setuptoolsdictr4   r   get_command_obj)r]   rd   rm   ro   r   r}   wheel_metadatawheel_versionwheel_v1distr   r   extrar   r   
setup_dists   ` `             r   ri   zWheel._convert_metadata   s   	=
 &g.%n&8&8&IJ '=S=;SSA-QRRB 23GGLL!3Y?	))77"//0BIN 8 
	  GT]]_ => 
  wuh(?@..  
 
 			)X&
		GGLL:.GGLL:.	
  ,,!1-

 !" 	**:6X~6	 	%
&	 	s$   0$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.scriptsrh   z.pycc              3   ^   K   | ]$  }t         j                  j                  |       & y wr   )r   r   r   )rN   r+   rn   s     r   rO   z+Wheel._move_data_entries.<locals>.<genexpr>   s(       Y*s   *-)dataheaderspurelibplatlibN)r   r   r   r   mkdirlistdirr[   unlinkr   r    filterr,   )rd   rn   dist_data_scriptsegg_info_scriptsentryr&   s    `    r   rj   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 %r-   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.txtrE   z__init__.pywrr   )encoding)
r   r   r   r   r
   rI   r   rs   writeNAMESPACE_PACKAGE_INIT)ro   rd   namespace_packagesmodmod_dirmod_initr{   s          r   rk   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__rC   rK   rQ   rV   r_   re   rc   staticmethodri   rj   rk    r-   r   r6   r6   N   se     
V
K9
C 8 8t    : 9 9r-   r6   r   )%__doc__
contextlibrv   	functoolsrF   r   rY   rera   packaging.tagsr   packaging.utilsr   packaging.versionr   r   r   setuptools.archive_utilr   setuptools.command.egg_infor   r   unicode_utilsr
   distutils.utilr   compileVERBOSEr@   r8   r   cacher   r,   contextmanagerr4   r6   r   r-   r   <module>r      s         	  	  # - 6  7 I 3 'RZZ JJ	
 %  U  D D, 
! 
!^9 ^9r-   