
    Ri e                    H   d Z ddlm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Z
ddlmZ ddlm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mZ d
dlmZ d
dlm 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* ej+        j,         dej+        j-         Z.d Z/ G d d          Z0 G d de0e          Z1 G d de(          Z' G d de          Z2d-d Z3d-d!Z4d-d"Z5e!j6        Z6e!j7        Z7d-d#Z8d-d$Z9d.d/d(Z:d-d)Z;d0d*Z< G d+ d,e           Z=dS )1zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    )annotationsN)Callable)Command)	bdist_egg)sdistwalk_revctrl)edit_config)glob   )_entry_points_normalization)metadata)SetuptoolsDeprecationWarning   )_requirestxt)log)DistutilsInternalError)FileList)convert_path.c                   d} | j         t          j        j                  }t	          j        t          j                  }d| d}t          |          D ]f\  }}|t          |          dz
  k    }|dk    r|r|dz  }n|d| d| d	z  }7d
}t          |          }	||	k     r||         }
|
dk    r	||dz   z  }n|
dk    r||z  }n|
dk    r|dz   }||	k     r||         dk    r|dz   }||	k     r||         dk    r|dz   }||	k     r#||         dk    r|dz   }||	k     r||         dk    ||	k    r|t	          j        |
          z  }na||dz   |         }d}|d
         dk    rd}|dd         }|t	          j        |          z  }|d| dz  }|}n|t	          j        |
          z  }|dz  }||	k     |s||z  }h|dz  }t	          j        |t          j	        t          j
        z            S )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                 [/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/setuptools/command/egg_info.pytranslate_patternr:   (   s    C TZ$$F
)BF

CcJf%% > >5#f++/)
 D== 2t 1Z11#1111 JJ	)mm8Ds{{zC''z!a%Y&&5>S+@+@%kGY&&5>S+@+@%kG 	))eGn.C.C%kG 	))eGn.C.C i'' 29T??*CC "!a%'/2E!#J Qx3%(
 %abb	")E"2"22J,z,,,,C  AAry&FAU )mmZ  	3JC5LC:c	!9::::    c                  f    e Zd ZdZdZed             Zd Zd Zdd	Z	dd
Z
ddZ ee          ZdS )
InfoCommonNc                X    t          j        | j                                                  S N)r   	safe_namedistributionget_nameselfs    r9   namezInfoCommon.name   s"    '(9(B(B(D(DEEEr;   c                    |                      | j                                                  }t          j        |          S r?   )
_maybe_tagrA   get_versionr   safe_version)rD   taggeds     r9   tagged_versionzInfoCommon.tagged_version   s3    !2!>!>!@!@AA*6222r;   c                R    | j         r|                     |          r|n	|| j         z   S )z
        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     r9   rG   zInfoCommon._maybe_tag   s7     z&"227;;&GG4:%	
r;   rP   strreturnboolc                ^    |                     | j        |                                 f          S r?   )endswithrM   
_safe_tagsrO   s     r9   rN   zInfoCommon._already_tagged   s)     T__->-> ?@@@r;   c                    	 t          j        d| j                   dd          S # t          j        j        $ r0 t          j        | j                            dd                    cY S w xY w)N0r    r   )r   rI   rM   	packagingrP   InvalidVersionr@   replacerC   s    r9   rV   zInfoCommon._safe_tags   s{    	J!./?4:/?/?@@DD / 	J 	J 	J!+DJ,>,>sC,H,HIIIII	Js   #& AA*)A*c                h    d}| j         r
|| j         z  }| j        r|t          j        d          z  }|S )Nr   z%Y%m%d)	tag_buildtag_datetimestrftimerO   s     r9   tagszInfoCommon.tags   s@    > 	&t~%G= 	/t}X...Gr;   )rP   rQ   rR   rS   )rR   rQ   )__name__
__module____qualname__r^   r_   propertyrE   rK   rG   rN   rV   rb   rM    r;   r9   r=   r=   {   s        IHF F XF3 3 3	
 	
 	
A A A A
J J J J    HTNNEEEr;   r=   c                      e Zd ZdZg dZdgZddiZd Zedd            Z	e	j
        dd
            Z	ddZddZedfdZdddZddZddZddZddZdS )egg_infoz+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]rk   rn   c                L    d | _         d | _        d | _        d | _        d| _        d S )NF)egg_baseegg_nameri   egg_versionignore_egg_info_in_manifestrC   s    r9   initialize_optionszegg_info.initialize_options   s-    +0(((r;   rR   
int | Nonec                    d S r?   rg   rC   s    r9   tag_svn_revisionzegg_info.tag_svn_revision       r;   Nonec                    d S r?   rg   )rD   values     r9   rx   zegg_info.tag_svn_revision   ry   r;   c                    t          |                                 d          }t          |t          |                     dS )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   )r^   r_   )ri   N)dictrb   r	   )rD   filenameri   s      r9   save_version_infozegg_info.save_version_info   s?     $))++:::HdH55566666r;   c                Z   | j         | _        |                                 | _        t          j                            | j                  }	 t          |t          j        j                  }|rdnd}t          j        	                    || j        | j        fz             nB# t          $ r5}t          j                            d| j         d| j                   |d }~ww xY w| j        3| j        j        }|pi                     dt$          j                  | _        |                     d           t+          j        | j                  dz   | _        | j        t$          j        k    r/t$          j                            | j        | j                  | _        | j        | j        j        _        d S )Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   rq   	.egg-info)rE   rr   rK   rs   rZ   rP   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorrq   rA   package_dirgetr#   curdirensure_dirnamer   filename_componentri   r$   joinr   )rD   parsed_version
is_versionspecrj   dirss         r9   finalize_optionszegg_info.finalize_options   s   
 	..00"*2243CDD	#NI4E4MNNJ)888yD"..tt}dFV6W/WXXXX 	 	 	"77bbbPTP`bb 	
 = $0D!ZR,,R;;DMJ'''&9$-HH;V=BI%%GLLFFDM
 .2-="***s   AB 
C)0CCNc                :    t          | j        | j        ||          S )0Compute filename of the output egg. Private API.)_egg_basenamerr   rs   )rD   
py_versionplatforms      r9   _get_egg_basenamezegg_info._get_egg_basename   s    T]D,<j(SSSr;   FforcerS   c                    |r|                      |||           dS t          j                            |          r3||st	          j        d||           dS |                     |           dS dS )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        r9   write_or_delete_filezegg_info.write_or_delete_file  s      	+OOD(D11111W^^H%% 	+|E|?xPPP  *****	+ 	+r;   c                    t          j        d||           |                    d          }| j        s;t	          |d          }|                    |           |                                 dS dS )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        r9   r   zegg_info.write_file  sm     	#T8444{{7##| 	Xt$$AGGDMMMGGIIIII	 	r;   c                j    t          j        d|           | j        st          j        |           dS dS )z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r   r   r#   unlink)rD   r   s     r9   r   zegg_info.delete_file   s>    )))| 	 Ih	  	 r;   c           	        t          t          j        d                    }|                     | j                   	 t          j        | j        d            n=# t          $ r0}d| j         d}t          j	        
                    |          |d }~ww xY w|D ]P}|                                } || |j        t
          j                            | j        |j                             Qt
          j                            | j        d          }t
          j                            |          r|                     |           |                                  d S )Nzegg_info.writers)groupz'Cannot update time stamp of directory ''znative_libs.txt)listr   entry_pointsmkpathri   r#   utimeOSErrorr   r   DistutilsFileErrorloadrE   r$   r   r   r   find_sources)rD   writersrj   msgepwriternls          r9   runzegg_info.run&  sH    x,3EFFFGGDM"""	BHT]D)))) 	B 	B 	BLDMLLLC"55c::A	B  	H 	HBWWYYFF4"',,t}bg"F"FGGGG W\\$-):;;7>>" 	!R   s   A 
B#+BBc                    t           j                            | j        d          }t	          | j                  }| j        |_        ||_        |	                                 |j
        | _
        dS )z"Generate SOURCES.txt manifest filezSOURCES.txtN)r#   r$   r   ri   manifest_makerrA   rt   ignore_egg_info_dirmanifestr   filelist)rD   manifest_filenamemms      r9   r   zegg_info.find_sources<  sV    GLLFFD-..!%!A'
r;   )rR   rv   rR   rz   Fr   rS   rR   rz   )rc   rd   re   descriptionuser_optionsboolean_optionsnegative_optru   rf   rx   setterr   r   PY_MAJORr   r   r   r   r   r   rg   r;   r9   ri   ri      sC       ?K
 
 
L "lO:L1 1 1    X    
	7 	7 	7 	7> > > >@ ,4d T T T T+ + + + +$             ,$ $ $ $ $ $r;   ri   c                  ~     e Zd Z	 dd fdZddZd	 Zd
 Zd Zd Zd Z	d Z
d Zd Zd ZddZddZd Zd Z xZS )r   NFr   rS   rR   rz   c                Z    t                                          ||           || _        d S r?   )super__init__r   )rD   r   debug_printr   	__class__s       r9   r   zFileList.__init__I  s-     	{+++#6   r;   c           	     f   |                      |          \  }}}}| j        | j        | j        | j        t          j        | j        |          t          j        | j        |          | j	        | j
        d}dddddddd	d}	 ||         }n&# t          $ r d
|d|}	t          |	          d w xY w|                    d          }
|dv r|g}|
r|fnd}||         }|                     d                    |g|
r|gng z   |z                        |D ] } ||          st!          j        ||g|R   !d S )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   rY   )_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                 r9   process_template_linezFileList.process_template_lineO  s    04/H/H/N/N,3 ||"1"1!*!2&" " "+!2&" " ZZ+
 +

" ?SP6 M2 CM%
 
*	8'/NN 	8 	8 	8OOOtOOC(--47	8 %//=='''#}H#6>#B6?HH%8@SEEbAHL 	
 	
 	

   	= 	=G!>'** =7<^<<<<	= 	=s    B	 	#B,c                    d}t          t          | j                  dz
  dd          D ]E} || j        |                   r-|                     d| j        |         z              | j        |= d}F|S )z
        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foundr3   s       r9   _remove_fileszFileList._remove_files  s|    
 s4:*B33 	 	AyA''   
1!=>>>JqMr;   c                |    d t          |          D             }|                     |           t          |          S )z#Include files that match 'pattern'.c                P    g | ]#}t           j                            |          !|$S rg   r#   r$   isdir.0r   s     r9   
<listcomp>z$FileList.include.<locals>.<listcomp>  s+    BBBqq1A1ABBBBr;   r
   extendrS   )rD   r   r   s      r9   r   zFileList.include  s9    BBDMMBBBEE{{r;   c                T    t          |          }|                     |j                  S )z#Exclude files that match 'pattern'.)r:   r   matchrD   r   r  s      r9   r   zFileList.exclude  s%    !'**!!%+...r;   c                    t           j                            |d|          }d t          |d          D             }|                     |           t          |          S )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r   c                P    g | ]#}t           j                            |          !|$S rg   r   r   s     r9   r  z.FileList.recursive_include.<locals>.<listcomp>  s,    WWWqbgmmTUFVFVWWWWr;   T)	recursive)r#   r$   r   r
   r  rS   )rD   r   r   full_patternr   s        r9   r   zFileList.recursive_include  sY     w||Cw77WWD>>>WWWEE{{r;   c                    t          t          j                            |d|                    }|                     |j                  S )zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r   r:   r#   r$   r   r   r  )rD   r   r   r  s       r9   r   zFileList.recursive_exclude  s9     ""',,sD'"B"BCC!!%+...r;   c                |    d t          |          D             }|                     |           t          |          S )zInclude all files from 'dir/'.c                V    g | ]&}t           j                            |          D ]}|'S rg   )r   r   findall)r   	match_diritems      r9   r  z"FileList.graft.<locals>.<listcomp>  sP     
 
 
!*229==
 
  
 
 
 
r;   r  )rD   r   r   s      r9   r   zFileList.graft  sF    
 
!#YY
 
 

 	EE{{r;   c                    t          t          j                            |d                    }|                     |j                  S )zFilter out files from 'dir/'.r   r  )rD   r   r  s      r9   r   zFileList.prune  s5    !"',,sD"9"9::!!%+...r;   c                   | j         |                                  t          t          j                            d|                    fd| j         D             }|                     |           t          |          S )z
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        Nr   c                >    g | ]}                     |          |S rg   )r  )r   r   r  s     r9   r  z+FileList.global_include.<locals>.<listcomp>  s(    <<<qU[[^^<<<<r;   )allfilesr  r:   r#   r$   r   r  rS   )rD   r   r   r  s      @r9   r   zFileList.global_include  sp    
 = LLNNN!"',,tW"="=>><<<<DM<<<EE{{r;   c                    t          t          j                            d|                    }|                     |j                  S )zD
        Exclude all files anywhere that match the pattern.
        r   r  r  s      r9   r   zFileList.global_exclude  s7     ""',,tW"="=>>!!%+...r;   c                    |                     d          }t          |          }|                     |          r| j                            |           d S d S )N)removesuffixr   
_safe_pathr   append)rD   r  r$   s      r9   r  zFileList.append  s\      &&D!!??4   	$Jd#####	$ 	$r;   c                `    | j                             t          | j        |                     d S r?   )r   r  filterr  )rD   pathss     r9   r  zFileList.extend  s*    
&%8899999r;   c                ^    t          t          | j        | j                            | _        dS )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    r9   _repairzFileList._repair  s%     &$*==>>


r;   c                   d}t          j        |          }|t          j        d| d           dS t          j        |d          }|t          j        ||d           dS 	 d|v pd|v }| j        r|rdS t          j                            |          st          j                            |          rdS d S # t          $ r+ t          j        ||t          j                               Y d S w xY w)	Nz!'%s' not %s encodable -- skippingr   z$' 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         r9   r  zFileList._safe_path  s$   6 -d33>HCCCCDDD5 ",VW==	HXtW---5
	B%/L<93LK' K uw~~f%% 	)B)B t  " 	B 	B 	BHXtS%>%@%@AAAAAA	Bs   #B8 6>B8 81C-,C-)NNF)r   rS   rR   rz   r   )rc   rd   re   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  __classcell__)r   s   @r9   r   r   F  s6        HM7 7 7 7 7 7 7D= D= D= D=L    / / /
  / / /  / / /

 
 
/ / /$ $ $ $: : : :? ? ?B B B B B B Br;   r   c                  r    e Zd ZdZddZddZddZd ZddZdd	Z	e
d
             ZddZddZd Zd ZdS )r   zMANIFEST.inrR   rz   c                L    d| _         d| _        d| _        d| _        d| _        d S )NTF)use_defaultsr   manifest_onlyforce_manifestr   rC   s    r9   ru   z!manifest_maker.initialize_options  s/     
!"#(   r;   c                    d S r?   rg   rC   s    r9   r   zmanifest_maker.finalize_options  s    r;   c                F   t          | j                  | _        t          j                            | j                  s|                                  |                                  t          j                            | j	                  r| 
                                 |                                  |                                  |                                  | j                                         | j                                         |                                  d S )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    r9   r   zmanifest_maker.run  s     T5MNNNw~~dm,, 	"!!!7>>$-(( 	!      ""$$$'')))r;   c                j    t          j        |          }|                    t          j        d          S )N/)r"  r#  r\   r#   r%   )rD   r$   s     r9   _manifest_normalizez"manifest_maker._manifest_normalize*  s(    +D11||BFC(((r;   c                      j                                           fd j         j        D             }d j         d}                     t
           j        |f|           dS )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c                :    g | ]}                     |          S rg   )r?  )r   r   rD   s     r9   r  z1manifest_maker.write_manifest.<locals>.<listcomp>6  s'    JJJ))!,,JJJr;   zwriting manifest file 'r   N)r   r   r   r   executer   )rD   r   r   s   `  r9   r4  zmanifest_maker.write_manifest.  so    
 	 KJJJdm6IJJJ8888Z$-!7=====r;   c                ^    |                      |          st          j        | |           d S d S r?   )_should_suppress_warningr   r   )rD   r   s     r9   r   zmanifest_maker.warn:  s:    ,,S11 	"JtS!!!!!	" 	"r;   c                ,    t          j        d|           S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r&   r  )r   s    r9   rD  z'manifest_maker._should_suppress_warning>  s    
 x4c:::r;   c                d   t          j        |            | j                            | j                   | j                            | j                   t          t                                }|r| j                            |           n8t          j
                            | j                  r|                                  t          j
                            d          r| j                            d           |                     d          }| j                            |j                   d S )Nzsetup.pyri   )r   r5  r   r  r6  r   r   r   r  r#   r$   r   read_manifestget_finalized_commandr   ri   )rD   rcfilesei_cmds      r9   r5  zmanifest_maker.add_defaultsE  s    4   T]+++T]+++|~~&& 	!M  ))))W^^DM** 	!   7>>*%% 	- M  ,,,++J77FO,,,,,r;   c                    | j         j        j        pg }|D ]}t          j        d|           | j                            |           d S )Nzadding license file '%s')rA   r   license_filesr   r   r   r  )rD   rL  lfs      r9   r8  z manifest_maker.add_license_filesW  sV    )2@FB 	5 	5BH/4444]+++++r;   c                    t          | j        dg           }|D ]}t          j        d|           | j                            |           dS )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      r9   r9  z$manifest_maker._add_referenced_files]  sZ    T.0CRHH
 	C 	CBI=rBBBBZ(((((r;   c                    t          |d          r|                                S t          j        ddd           |                                S )a0  
        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)hasattrrU  r   emitget_data_files)rD   build_pys     r9   _safe_data_fileszmanifest_maker._safe_data_filese  sd     8>?? 	>;;===$)N 8	
 	
 	
 	
 &&(((r;   Nr   )rc   rd   re   r6  ru   r   r   r?  r4  r   staticmethodrD  r5  r8  r9  r[  rg   r;   r9   r   r     s        H) ) ) )      ) ) )
> 
> 
> 
>" " " " ; ; \;- - - -$, , , ,) ) )) ) ) ) )r;   r   rR   rz   c                    d                     |          }|                    d          }t          | d          5 }|                    |           ddd           dS # 1 swxY w Y   dS )z{Create 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      r9   r   r   ~  s     yy""H w''H	h		 	                 s   AA"%A"c                ~   t          j        d|           | j        s| j        j        }| j        |j        c|_        }| j        |j        c|_        }	  |j	        | j
                   ||c|_        |_        n# ||c|_        |_        w xY wt          | j        dd           }t          j        | j
        |           d S d S )Nz
writing %szip_safe)r   r   r   rA   r   rs   rP   rr   rE   write_pkg_infori   rP  r   write_safety_flag)cmdbasenamer   r   oldveroldnamesafes          r9   rb  rb    s    H\8$$$; 8#,#&?H4D &!$x}w	>#H#CL111.5v+HM8++gv+HM8+====s'T::#CL$777778 8s   A7 7Bc                    dS )aj  
    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   rd  re  r   s      r9   warn_depends_obsoleterk    s      r;   c           	         t                               d | j                                        D                       }|                     d|d                    t          |                    dz              d S )Nc                F    g | ]}|                     d d          d         S )r   r   r   )r"   )r   ks     r9   r  z(write_toplevel_names.<locals>.<listcomp>  s6        Q  r;   ztop-level namesr^  )r~   fromkeysrA   iter_distribution_namesr   r   sorted)rd  re  r   pkgss       r9   write_toplevel_namesrs    sv    ==  $'$4$L$L$N$N    D NN$h		&,,0G0G$0NOOOOOr;   c                *    t          | ||d           d S )NT)	write_argrj  s      r9   overwrite_argrv    s    c8Xt,,,,,r;   Fr   rS   c                    t           j                            |          d         }t          | j        |d           }|d                    |          dz   }|                     ||||           d S )Nr   r^  )r#   r$   splitextrP  rA   r   r   )rd  re  r   r   argnamer|   s         r9   ru  ru    sl    gx((+GC$gt44E		%  4'Whu=====r;   c                    t          j        | j        j                  }t          j        |          }|                     d||d           d S )Nzentry pointsT)r   r   rA   r   renderr   )rd  re  r   epsdefns        r9   write_entriesr~    sH    

S-:
;
;C$$D^XtTBBBBBr;   c                    t          j        |           }t          j        |          }| d| d|pt           }|r|d| z  }|S )r   r   z-py)r   r   r   )rr   rs   r   r   rE   rP   eggs          r9   r   r     s_    ,X66D/<<G
8
8G
8
8
 6h
8
8C ~8~~Jr;   c                      e Zd ZdZdS )EggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)rc   rd   re   __doc__rg   r;   r9   r  r    s        IIIIr;   r  r   r   r   )NN)>r  
__future__r   r   r#   r&   r&  r`   collections.abcr   rZ   packaging.requirementspackaging.versionsetuptools.unicode_utilsr"  
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   r:   r=   ri   r   r   rb  rk  write_requirementswrite_setup_requirementsrs  rv  ru  r~  r   r  rg   r;   r9   <module>r     s  < < # " " " " "     				 				 



  $ $ $ $ $ $             0 0 0 0 0 0       ( ( ( ( ( ( 8 8 8 8 8 8 8 8 1 1 1 1 1 1             , , , , , , , , ! ! ! ! ! ! 3 3 3 3 3 3                     3 3 3 3 3 3 4 4 4 4 4 4 ' ' ' ' ' '$??s'7'=??P; P; P;f, , , , , , , ,^Y$ Y$ Y$ Y$ Y$z7 Y$ Y$ Y$xFB FB FB FB FBy FB FB FBRl) l) l) l) l)U l) l) l)^
 
 
 
8 8 8 8"    "4 '@ P P P P- - - -> > > > >C C C C   J J J J J < J J J J Jr;   