
    vKge                     r   S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSSK	rSSK
rSSKJr  SSKJr  SSKJr  SSKJrJr  SSKJr  SSKJr  S	S
KJrJr  S	SKJr  S	SKJr  SSKJr  SSK r!SSK"r!SSK!J#r#  SSK J$r$  SSK"J%r&  SSK'J(r(  \RR                  RT                   S\RR                  RV                   3r,S r- " S S5      r. " S S\.\5      r/ " S S\&5      r% " S S\5      r0S)S jr1S)S jr2S)S  jr3\Rh                  r4\Rj                  r5S)S! jr6S)S" jr7S*S#\8SS4S$ jjr9S)S% jr:S+S& jr; " S' S(\5      r<g),zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    N)Callable)Command)	bdist_egg)sdistwalk_revctrl)edit_config)glob   )_entry_points_normalization)metadata)SetuptoolsDeprecationWarning   )_requirestxt)log)DistutilsInternalError)FileList)convert_path.c                    SnU R                   " [        R                  R                  5      n[        R
                  " [        R                  5      nSU< S3n[        U5       GHJ  u  pVU[        U5      S-
  :H  nUS:X  a  U(       a  US-  nOUSU< SU< S	3-  nM:  S
n[        U5      n	X:  a  Xh   n
U
S:X  a  XS-   -  nOU
S:X  a  X-  nOU
S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:w  a  US-   nX:  a
  Xk   S:w  a  M  X:  a  U[        R
                  " U
5      -  nOXXhS-   U nSnUS
   S:X  a  SnUSS nU[        R
                  " U5      -  nUSU< S3-  nUnOU[        R
                  " U
5      -  nUS-  nX:  a  M  U(       a  GMF  X-  nGMM     US-  n[        R                  " U[        R                  [        R                  -  S9$ )z
Translate a file path glob like '*.txt' in to a regular expression.
This differs from fnmatch.translate which allows wildcards to match
directory separators. It also knows about '**/' which matches any number of
directories.
 z[^]r   **z.*z(?:+z)*r   *?[!^Nz\Z)flags)splitospathsepreescape	enumeratelencompile	MULTILINEDOTALL)r	   patchunksr$   
valid_charcchunk
last_chunki	chunk_lencharinner_iinner
char_classs                 [/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/command/egg_info.pytranslate_patternr9   &   s    C ZZ$F
))BFF
C!Jf%#f+/)
 D=t z377 J	m8Ds{C''!a%&5>S+@%kG&5>S+@%kG )en.C%kG )en.C ' 299T?*C "a%'2E!#J Qx3%(
 %ab	"))E"22JZ11C  Aryy&FAU mZ zJC} &@ 5LC::c		!9::    c                   v    \ rS rSrSrSr\S 5       rS rS r	S\
S\4S jrS\
4S	 jrS\
4S
 jr\" \5      rSrg)
InfoCommony   Nc                 ^    [         R                  " U R                  R                  5       5      $ N)r   	safe_namedistributionget_nameselfs    r8   nameInfoCommon.name}   s"    ''(9(9(B(B(DEEr:   c                     U R                  U R                  R                  5       5      n[        R                  " U5      $ r?   )
_maybe_tagrA   get_versionr   safe_version)rD   taggeds     r8   tagged_versionInfoCommon.tagged_version   s0    !2!2!>!>!@A**622r:   c                 p    U R                   (       a  U R                  U5      (       a  U$ XR                   -   $ )zw
egg_info may be called more than once for a distribution,
in which case the version string already contains all tags.
)vtags_already_taggedrD   versions     r8   rH   InfoCommon._maybe_tag   s6     zzd227;; 	
 ::%	
r:   rR   returnc                     UR                  U R                  5      =(       d    UR                  U R                  5       5      $ r?   )endswithrO   
_safe_tagsrQ   s     r8   rP   InfoCommon._already_tagged   s0     

+Rw/?/?@Q/RRr:   c                      [         R                  " SU R                   35      SS  $ ! [        R                  R
                   a3    [         R                  " U R                  R                  SS5      5      s $ f = f)N0r    r   )r   rJ   rO   	packagingrR   InvalidVersionr@   replacerC   s    r8   rW   InfoCommon._safe_tags   sj    	J!..4::,/?@DD  // 	J!++DJJ,>,>sC,HII	Js   %( AA98A9c                     SnU R                   (       a  XR                   -  nU R                  (       a  U[        R                  " S5      -  nU$ )Nr   z%Y%m%d)	tag_buildtag_datetimestrftimerQ   s     r8   tagsInfoCommon.tags   s9    >>~~%G==t}}X..Gr:    )__name__
__module____qualname____firstlineno__ra   rb   propertyrE   rL   rH   strboolrP   rW   re   rO   __static_attributes__rg   r:   r8   r<   r<   y   se    IHF F3	
Ss St S
JC Jc  TNEr:   r<   c                       \ rS rSrSr/ SQrS/rSS0rS r\	SS	 j5       r
\
R                  S
 5       r
SS jrSS jr\S4S jrSS\SS4S jjrSS jrSS jrSS jrSS jrSrg)egg_info   z+create a distribution's .egg-info directory))z	egg-base=ezLdirectory containing .egg-info directories [default: top of the source tree])tag-datedz0Add date stamp (e.g. 20050528) to version number)z
tag-build=bz-Specify explicit tag to add to version number)no-dateDz"Don't include date stamp [default]rt   rw   c                 J    S U l         S U l        S U l        S U l        SU l        g )NF)egg_baseegg_namerq   egg_versionignore_egg_info_in_manifestrC   s    r8   initialize_optionsegg_info.initialize_options   s'    +0(r:   rT   Nc                     g r?   rg   rC   s    r8   tag_svn_revisionegg_info.tag_svn_revision       r:   c                     g r?   rg   )rD   values     r8   r   r      r   r:   c                 Z    [        U R                  5       SS9n[        U[        US95        g)z
Materialize the value of date into the
build tag. Install build keys in a deterministic order
to avoid arbitrary reordering on subsequent builds.
r   )ra   rb   )rq   N)dictre   r   )rD   filenamerq   s      r8   save_version_infoegg_info.save_version_info   s%     $))+:HdH56r:   c                    U R                   U l        U R                  5       U l        [        R
                  R                  U R                  5      n [        U[        R
                  R                  5      nU(       a  SOSn[        R                  R                  X0R                  U R                  4-  5        U R                  cD  U R                  R                   nU=(       d    0 R#                  S[$        R&                  5      U l        U R)                  S5        [*        R,                  " U R                  5      S-   U l        U R                  [$        R&                  :w  a9  [$        R0                  R3                  U R                  U R.                  5      U l        U R                  U R                  R4                  l        g ! [         aA  n[        R                  R                  SU R                  < SU R                  < 35      UeS nAff = f)Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   rz   	.egg-info)rE   r{   rL   r|   r\   rR   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorrz   rA   package_dirgetr"   curdirensure_dirnamer   filename_componentrq   r#   joinr   )rD   parsed_version
is_versionspecrs   dirss         r8   finalize_optionsegg_info.finalize_options   sx   
 		..0"**2243C3CD	#NI4E4E4M4MNJ)8yD""..t}}dFVFV6W/WX == $$00D!ZR,,R;DMJ'&99$--H;V==BII%GGLLFDM
 .2-=-=""*%  	""77==$"2"24 	s   A&F> >
H	<HH	c                 D    [        U R                  U R                  X5      $ )0Compute filename of the output egg. Private API.)_egg_basenamer{   r|   )rD   
py_versionplatforms      r8   _get_egg_basenameegg_info._get_egg_basename   s    T]]D,<,<jSSr:   forcec                     U(       a  U R                  XU5        g[        R                  R                  U5      (       a4  Uc  U(       d  [        R
                  " SX5        gU R                  U5        gg)a  Write `data` to `filename` or delete if empty

If `data` is non-empty, this routine is the same as ``write_file()``.
If `data` is empty but not ``None``, this is the same as calling
``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
unless `filename` exists, in which case a warning is issued about the
orphaned file (if `force` is false), or deleted (if `force` is true).
Nz$%s not set in setup(), but %s exists)
write_filer"   r#   existsr   warndelete_file)rD   whatr   datar   s        r8   write_or_delete_fileegg_info.write_or_delete_file   sT     OODD1WW^^H%%|E?P  * &r:   c                     [         R                  " SX5        UR                  S5      nU R                  (       d.  [	        US5      nUR                  U5        UR                  5         gg)zWrite `data` to `filename` (if not a dry run) after announcing it

`what` is used in a log message to identify what is being written
to the file.
zwriting %s to %sutf-8wbN)r   infoencodedry_runopenwriteclose)rD   r   r   r   fs        r8   r   egg_info.write_file  sM     	#T4{{7#||Xt$AGGDMGGI r:   c                     [         R                  " SU5        U R                  (       d  [        R                  " U5        gg)z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r   r   r"   unlink)rD   r   s     r8   r   egg_info.delete_file  s(    )||IIh r:   c           	         [        [        R                  " SS95      nU R                  U R                  5         [
        R                  " U R                  S 5        U HX  nUR                  5       nU" XR                  [
        R                  R                  U R                  UR                  5      5        MZ     [
        R                  R                  U R                  S5      n[
        R                  R                  U5      (       a  U R!                  U5        U R#                  5         g ! [         a5  nSU R                   S3n[        R                  R                  U5      UeS nAff = f)Nzegg_info.writers)groupz'Cannot update time stamp of directory ''znative_libs.txt)listr   entry_pointsmkpathrq   r"   utimeOSErrorr   r   DistutilsFileErrorloadrE   r#   r   r   r   find_sources)rD   writersrs   msgepwriternls          r8   runegg_info.run%  s    x,,3EFGDMM"	BHHT]]D) BWWYF4"'',,t}}bgg"FG 
 WW\\$--):;77>>"R   	B;DMM?!LC""55c:A	Bs   !D) )
E(30E##E(c                     [         R                  R                  U R                  S5      n[	        U R
                  5      nU R                  Ul        Xl        UR                  5         UR                  U l
        g)z"Generate SOURCES.txt manifest filezSOURCES.txtN)r"   r#   r   rq   manifest_makerrA   r}   ignore_egg_info_dirmanifestr   filelist)rD   manifest_filenamemms      r8   r   egg_info.find_sources;  sR    GGLLFD--.!%!A!A'
r:   )rz   rq   r{   r|   r   r}   rT   NF)rh   ri   rj   rk   descriptionuser_optionsboolean_optionsnegative_optr~   rl   r   setterr   r   PY_MAJORr   rn   r   r   r   r   r   ro   rg   r:   r8   rq   rq      s    ?K
L "lO:L1    
	7>B ,4d T+ +QU +$ ,$r:   rq   c                      ^  \ rS rSr SS\SS4U 4S jjjrSS jrS rS rS	 r	S
 r
S rS rS rS rS rSS jrSS jrS rS rSrU =r$ )r   iE  Nr   rT   c                 0   > [         TU ]  X5        X0l        g r?   )super__init__r   )rD   r   debug_printr   	__class__s       r8   r   FileList.__init__H  s     	+#6 r:   c           	         U R                  U5      u  p#pEU R                  U R                  U R                  U R                  [
        R                  " U R                  U5      [
        R                  " U R                  U5      U R                  U R                  S.nSSSSSSSS	S.n Xb   nUR                  S5      n
US;   a  U/nU
(       a  U4OSnXr   nU R                  SR                  U/U
(       a  U/O/ -   U-   5      5        U H)  nU" U5      (       a  M  [         R"                  " X/UQ76   M+     g ! [         a    S
U< SU< 3n	[        U	5      S ef = f)N)includeexcludezglobal-includezglobal-excludezrecursive-includezrecursive-excludegraftprunez%warning: no files found matching '%s'z9warning: no previously-included files found matching '%s'z>warning: no files found matching '%s' anywhere in distributionzRwarning: no previously-included files matching '%s' found anywhere in distributionz:warning: no files found matching '%s' under directory '%s'zNwarning: no previously-included files matching '%s' found under directory '%s'z+warning: no directories found matching '%s'z6no previously-included directories found matching '%s'z$Invalid MANIFEST.in: unknown action z in z
recursive->   r   r   rg   r[   )_parse_template_liner   r   global_includeglobal_exclude	functoolspartialrecursive_includerecursive_excluder   r   KeyErrorr   
startswithr   r   r   r   )rD   lineactionpatternsdirdir_pattern
action_maplog_mapprocess_actionr   action_is_recursiveextra_log_argslog_tmplpatterns                 r8   process_template_lineFileList.process_template_lineN  s}    04/H/H/N,3 ||||"11"11!*!2!2&&" "+!2!2&&" ZZZZ+

" ?SP6 M2 CM%
*	8'/N %//=''#}H#6#B?HH%8SEbAHL	

  G!'**<^<  '  	88
$thOC(-47	8s   &D5 5!Ec                     Sn[        [        U R                  5      S-
  SS5       HO  nU" U R                  U   5      (       d  M  U R                  SU R                  U   -   5        U R                  U	 SnMQ     U$ )zn
Remove all files from the file list that match the predicate.
Return True if any matching files were removed
Fr   z
 removing T)ranger(   filesr   )rD   	predicatefoundr2   s       r8   _remove_filesFileList._remove_files  sn    
 s4::*B3AA''  

1!=>JJqM	 4
 r:   c                     [        U5       Vs/ sH+  n[        R                  R                  U5      (       a  M)  UPM-     nnU R	                  U5        [        U5      $ s  snf )z#Include files that match 'pattern'.)r	   r"   r#   isdirextendrn   )rD   r  r   r  s       r8   r   FileList.include  sE     MBMqq1AMBEE{ Cs
   'AAc                 N    [        U5      nU R                  UR                  5      $ )z#Exclude files that match 'pattern'.)r9   r  matchrD   r  r  s      r8   r   FileList.exclude  s!    !'*!!%++..r:   c                    [         R                  R                  USU5      n[        USS9 Vs/ sH+  n[         R                  R	                  U5      (       a  M)  UPM-     nnU R                  U5        [        U5      $ s  snf )z>
Include all files anywhere in 'dir/' that match the pattern.
r   T)	recursive)r"   r#   r   r	   r  r  rn   )rD   r   r  full_patternr   r  s         r8   r   FileList.recursive_include  sc     ww||Cw7 >W>qbggmmTUFV>WEE{ Xs   'A=A=c                     [        [        R                  R                  USU5      5      nU R	                  UR
                  5      $ )z=
Exclude any file anywhere in 'dir/' that match the pattern.
r   r9   r"   r#   r   r  r  )rD   r   r  r  s       r8   r   FileList.recursive_exclude  s4     ""'',,sD'"BC!!%++..r:   c                     [        U5       VVs/ sH+  n[        R                  R                  U5       H  nUPM     M-     nnnU R	                  U5        [        U5      $ s  snnf )zInclude all files from 'dir/'.)r	   r   r   findallr  rn   )rD   r   	match_diritemr  s        r8   r   FileList.graft  sc     "#Y
&	!**229= = & 	 

 	EE{
s   1Ac                     [        [        R                  R                  US5      5      nU R	                  UR
                  5      $ )zFilter out files from 'dir/'.r   r  )rD   r   r  s      r8   r   FileList.prune  s0    !"'',,sD"9:!!%++..r:   c                 4   U R                   c  U R                  5         [        [        R                  R                  SU5      5      nU R                    Vs/ sH  o2R                  U5      (       d  M  UPM     nnU R                  U5        [        U5      $ s  snf )z{
Include all files anywhere in the current directory that match the
pattern. This is very inefficient on large file trees.
r   )	allfilesr  r9   r"   r#   r   r  r  rn   )rD   r  r  r   r  s        r8   r   FileList.global_include  sk    
 == LLN!"'',,tW"=> MM<Mq[[^M<EE{ =s   B1Bc                     [        [        R                  R                  SU5      5      nU R	                  UR
                  5      $ )z4
Exclude all files anywhere that match the pattern.
r   r  r  s      r8   r   FileList.global_exclude  s2     ""'',,tW"=>!!%++..r:   c                     UR                  S5      (       a  US S n[        U5      nU R                  U5      (       a  U R                  R	                  U5        g g )Nr  )rV   r   
_safe_pathr	  append)rD   r   r#   s      r8   r,  FileList.append  sL    ==9DD!??4  JJd# !r:   c                 b    U R                   R                  [        U R                  U5      5        g r?   )r	  r  filterr+  )rD   pathss     r8   r  FileList.extend  s    

&%89r:   c                 `    [        [        U R                  U R                  5      5      U l        g)z
Replace self.files with only safe paths

Because some owners of FileList manipulate the underlying
``files`` attribute directly, this method must be called to
repair those paths.
N)r   r/  r+  r	  rC   s    r8   _repairFileList._repair  s     &$**=>
r:   c                 .   Sn[         R                  " U5      nUc  [        R                  " SU-  5        g[         R                  " US5      nUc  [        R                  " X!S5        g SU;   =(       d    SU;   nU R
                  (       a  U(       a  g[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  gg ! [         a-    [        R                  " X![        R                  " 5       5         g f = f)Nz!'%s' not %s encodable -- skippingz''%s' in unexpected encoding -- skippingFr   r   s	   .egg-infoT)unicode_utilsfilesys_decoder   r   
try_encoder   r"   r#   r   UnicodeEncodeErrorsysgetfilesystemencoding)rD   r#   enc_warnu_path	utf8_pathis_egg_infos         r8   r+  FileList._safe_path  s    6 --d3>HH>EF ",,VW=	HHXW-
	B%/L<93LK''Kww~~f%%	)B)B *C " 	BHHXS%>%>%@A	Bs   ))C AC 4DD)r	  r   )NNFr   )rh   ri   rj   rk   rn   r   r  r  r   r   r   r   r   r   r   r   r,  r  r3  r+  ro   __classcell__)r   s   @r8   r   r   E  ss     HM7@D7	7 7D=L/
//

/$:?B Br:   r   c                       \ rS rSrSrSS jrSS jrSS jrS rSS jr	SS	 jr
\S
 5       rSS jrSS jrS rS rSrg)r   i  zMANIFEST.inNc                 J    SU l         SU l        SU l        SU l        SU l        g )NTF)use_defaultsr   manifest_onlyforce_manifestr   rC   s    r8   r~   !manifest_maker.initialize_options  s)     
!"#( r:   c                     g r?   rg   rC   s    r8   r   manifest_maker.finalize_options  s    r:   c                 4   [        U R                  S9U l        [        R                  R                  U R                  5      (       d  U R                  5         U R                  5         [        R                  R                  U R                  5      (       a  U R                  5         U R                  5         U R                  5         U R                  5         U R                  R                  5         U R                  R                  5         U R                  5         g )N)r   )r   r   r   r"   r#   r   r   write_manifestadd_defaultstemplateread_templateadd_license_files_add_referenced_filesprune_file_listsortremove_duplicatesrC   s    r8   r   manifest_maker.run  s     T5M5MNww~~dmm,,!77>>$--((  ""$'')r:   c                 n    [         R                  " U5      nUR                  [        R                  S5      $ )N/)r6  r7  r^   r"   r$   )rD   r#   s     r8   _manifest_normalize"manifest_maker._manifest_normalize*  s'    ++D1||BFFC((r:   c                    U R                   R                  5         U R                   R                   Vs/ sH  oR                  U5      PM     nnSU R                  -  nU R                  [        U R                  U4U5        gs  snf )zW
Write the file list in 'self.filelist' to the manifest file
named by 'self.manifest'.
zwriting manifest file '%s'N)r   r3  r	  rW  r   executer   )rD   r   r	  r   s       r8   rK  manifest_maker.write_manifest.  sl    
 	 7;mm6I6IJ6I))!,6IJ*T]]:Z$--!7= Ks   Bc                 ^    U R                  U5      (       d  [        R                  " X5        g g r?   )_should_suppress_warningr   r   )rD   r   s     r8   r   manifest_maker.warn:  s$    ,,S11JJt! 2r:   c                 0    [         R                  " SU 5      $ )z+
suppress missing-file warnings from sdist
zstandard file .*not found)r%   r  )r   s    r8   r]  'manifest_maker._should_suppress_warning>  s    
 xx4c::r:   c                    [         R                  " U 5        U R                  R                  U R                  5        U R                  R                  U R
                  5        [        [        5       5      nU(       a  U R                  R                  U5        O>[        R                  R                  U R
                  5      (       a  U R                  5         [        R                  R                  S5      (       a  U R                  R                  S5        U R                  S5      nU R                  R                  UR                  5        g )Nzsetup.pyrq   )r   rL  r   r,  rM  r   r   r   r  r"   r#   r   read_manifestget_finalized_commandr   rq   )rD   rcfilesei_cmds      r8   rL  manifest_maker.add_defaultsE  s    4 T]]+T]]+|~&MM  )WW^^DMM** 77>>*%% MM  ,++J7FOO,r:   c                     U R                   R                  R                  =(       d    / nU H  n[        R                  " SU5        M     U R
                  R                  U5        g )Nzadding license file '%s')rA   r   license_filesr   r   r   r  )rD   rh  lfs      r8   rO   manifest_maker.add_license_filesW  sI    ))22@@FBBHH/4  ]+r:   c                     [        U R                  S/ 5      nU H  n[        R                  " SU5        M     U R                  R                  U5        g)zGAdd files referenced by the config (e.g. `file:` directive) to filelist_referenced_filesz%adding file referenced by config '%s'N)getattrrA   r   debugr   r  )rD   
referencedrfs      r8   rP  $manifest_maker._add_referenced_files]  sB    T..0CRH
BII=rB Z(r:   c                     [        US5      (       a  UR                  5       $ [        R                  " SSSS9  UR	                  5       $ )z
The parent class implementation of this method
(``sdist``) will try to include data files, which
might cause recursion problems when
``include_package_data=True``.

Therefore, avoid triggering any attempt of
analyzing/building the manifest again.
get_data_files_without_manifestz@`build_py` command does not inherit from setuptools' `build_py`.z
            Custom 'build_py' does not implement 'get_data_files_without_manifest'.
            Please extend command classes from setuptools instead of distutils.
            z!https://peps.python.org/pep-0632/)see_url)hasattrrs  r   emitget_data_files)rD   build_pys     r8   _safe_data_filesmanifest_maker._safe_data_filese  sM     8>??;;==$))N 8	
 &&((r:   )r   rF  r   rE  r   rD  r   )rh   ri   rj   rk   rM  r~   r   r   rW  rK  r   staticmethodr]  rL  rO  rP  ry  ro   rg   r:   r8   r   r     sM    H))
>" ; ;-$,))r:   r   rT   c                     SR                  U5      nUR                  S5      n[        U S5       nUR                  U5        SSS5        g! , (       d  f       g= f)zsCreate a file with the specified name and write 'contents' (a
sequence of strings without line terminators) to it.

r   r   N)r   r   r   r   )r   contentsr   s      r8   r   r   ~  sF     yy"H w'H	h		 
		s   A


Ac                    [         R                  " SU5        U R                  (       d  U R                  R                  nU R
                  UR                  sUl        nU R                  UR                  sUl        n UR                  " U R                  5        XTsUl        Ul        [        U R                  SS 5      n[        R                  " U R                  U5        g g ! XTsUl        Ul        f = f)Nz
writing %szip_safe)r   r   r   rA   r   r|   rR   r{   rE   write_pkg_inforq   rm  r   write_safety_flag)cmdbasenamer   r   oldveroldnamesafes          r8   r  r    s    HH\8$;;##,,#&??H4D4D &!$x}}w	> ##CLL1.5+HM8+s''T:##CLL$7  /6+HM8+s   <C   C0c                     g)aR  
Unused: left to avoid errors when updating (from source) from <= 67.8.
Old installations have a .dist-info directory with the entry-point
``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
This may trigger errors when running the first egg_info in build_meta.
TODO: Remove this function in a version sufficiently > 68.
Nrg   r  r  r   s      r8   warn_depends_obsoleter    s    r:   c           	         [         R                  U R                  R                  5        Vs/ sH  o3R	                  SS5      S   PM     sn5      nU R                  SUSR                  [        U5      5      S-   5        g s  snf )Nr   r   r   ztop-level namesr}  )r   fromkeysrA   iter_distribution_namesr!   r   r   sorted)r  r  r   kpkgss        r8   write_toplevel_namesr    sn    ==$'$4$4$L$L$N$NqQ$N D NN$h		&,0G$0NOs   A?c                     [        XUS5        g )NT)	write_argr  s      r8   overwrite_argr    s    cXt,r:   r   c                     [         R                  R                  U5      S   n[        U R                  US 5      nUb  SR                  U5      S-   nU R                  XBXS5        g )Nr   r}  )r"   r#   splitextrm  rA   r   r   )r  r  r   r   argnamer   s         r8   r  r    sX    ggx(+GC$$gt4E		% 4'W=r:   c                     [         R                  " U R                  R                  5      n[         R                  " U5      nU R                  SX$S5        g )Nzentry pointsT)r   r   rA   r   renderr   )r  r  r   epsdefns        r8   write_entriesr    s@    


S--::
;C$D^XTBr:   c                     [         R                  " U 5      n[         R                  " U5      nU SU SU=(       d    [         3nU(       a  USU 3-  nU$ )r   r   z-py)r   r   r   )r{   r|   r   r   rE   rR   eggs          r8   r   r     sV    ,,X6D//<GF!G9C
 6h7
8C8*~Jr:   c                       \ rS rSrSrSrg)EggInfoDeprecationWarningi  z?Deprecated behavior warning for EggInfo, bypassing suppression.rg   N)rh   ri   rj   rk   __doc__ro   rg   r:   r8   r  r    s    Ir:   r  r   r   )NN)=r  r   r"   r%   r:  rc   collections.abcr   r\   packaging.requirementspackaging.versionsetuptools.unicode_utilsr6  
setuptoolsr   setuptools.commandr   setuptools.command.sdistr   r   setuptools.command.setoptr   setuptools.globr	   r   r   r   
_importlibr   warningsr   r   distutils.errorsr   distutils.filelistr   r   r   	_FileListdistutils.utilr   version_infomajorminorr   r9   r<   rq   r   r   r  r  write_requirementswrite_setup_requirementsr  r  rn   r  r  r   r  rg   r:   r8   <module>r     s%  <  	 	 
  $    0  ( 8 1   , ! 3     3 4 '$$%Qs'7'7'='=&>?P;f, ,^Z$z7 Z$zGBy GBTl)U l)^
8& "44 '@@ P->d >t >CJ < Jr:   