
    09oeh                        d 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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mZ ddlmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$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- d Z. G d d          Z/ G d de/e          Z0 G d de          Z G d de          Z1d Z2d Z3d Z4d  Z5d! Z6d" Z7d# Z8d$ Z9d+d&Z:d' Z;d( Z< G d) d*e-          Z=dS ),zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    )FileList)DistutilsInternalError)convert_path)logN   )metadata)_entry_points)Command)sdist)walk_revctrl)edit_config)	bdist_egg)Requirement	safe_nameparse_versionsafe_versionto_filename)glob)	packaging)yield_lines)SetuptoolsDeprecationWarningc                    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[^]   **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                 TD:\Python Project\StaffProfile\venv\Lib\site-packages\setuptools/command/egg_info.pytranslate_patternr<   '   s    C TZ$$F
)BF

CCCC!Jf%% > >5#f++/)
 D== 8t zzz33377 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%-0E!#J Qx3%(
 %abb	")E"2"22JCZZZ11C  AAry&FAU )mmZ  	3JC5LC:c	!9::::    c                   v    e Zd ZdZdZed             Zd Zd Zde	de
fdZde	fdZde	fd	Z ee          ZdS )

InfoCommonNc                 N    t          | j                                                  S N)r   distributionget_nameselfs    r;   namezInfoCommon.name~   s    *3355666r=   c                 t    t          |                     | j                                                            S rA   )r   
_maybe_tagrB   get_versionrD   s    r;   tagged_versionzInfoCommon.tagged_version   s+    DOOD,=,I,I,K,KLLMMMr=   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rE   versions     r;   rH   zInfoCommon._maybe_tag   s6     z &d&:&:7&C&C &GG4:%	
r=   rO   returnc                     |                     | j                  p&|                     |                                           S rA   )endswithrL   
_safe_tagsrN   s     r;   rM   zInfoCommon._already_tagged   s7     
++Rw/?/?@Q@Q/R/RRr=   c                 @    t          d| j                   dd          S )N0r   )r   rL   rD   s    r;   rS   zInfoCommon._safe_tags   s&     ,
,,--abb11r=   c                 h    d}| j         r
|| j         z  }| j        r|t          j        d          z  }|S )Nr   z-%Y%m%d)	tag_buildtag_datetimestrftimerN   s     r;   tagszInfoCommon.tags   s@    > 	&t~%G= 	0t}Y///Gr=   )__name__
__module____qualname__rW   rX   propertyrF   rJ   rH   strboolrM   rS   r[   rL    r=   r;   r?   r?   z   s        IH7 7 X7N N N
 
 
Ss St S S S S
2C 2 2 2 2
c     HTNNEEEr=   r?   c                       e Zd ZdZg dZdgZddiZd Zed             Z	e	j
        d             Z	d Zd	 ZddZd Zd Zd Zd Z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]rf   ri   c                 Z    d | _         d | _        d | _        d | _        d| _        d| _        d S )NF)egg_baseegg_namerd   egg_versionbroken_egg_infoignore_egg_info_in_manifestrD   s    r;   initialize_optionszegg_info.initialize_options   s5    $+0(((r=   c                     d S rA   rb   rD   s    r;   tag_svn_revisionzegg_info.tag_svn_revision       r=   c                     d S rA   rb   )rE   values     r;   rs   zegg_info.tag_svn_revision   rt   r=   c                     t          j                    }|                                 |d<   d|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.
        rW   r   rX   )rd   N)collectionsOrderedDictr[   r   dict)rE   filenamerd   s      r;   save_version_infozegg_info.save_version_info   sQ     *,, !%		 HdH55566666r=   c                    | j         | _        |                                 | _        t	          | j                  }	 t          |t          j        j                  }|rdnd}t          || 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                  dz   | _        | j        t$          j        k    r/t$          j                            | j        | j                  | _        d| j        v r|                                  | j        | j        j        _        | j        j        }|U|j        | j                                        k    r5| j        |_        t	          | j                  |_        d | j        _        d S d S d S )Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   rl   	.egg-info) rF   rm   rJ   rn   r   
isinstancer   rO   Versionr   
ValueError	distutilserrorsDistutilsOptionErrorrl   rB   package_dirgetr%   curdirensure_dirnamer   rd   r&   joincheck_broken_egg_infor   _patched_distkeylower_version_parsed_version)rE   parsed_version
is_versionspecre   dirspds          r;   finalize_optionszegg_info.finalize_options   s   
 	..00&t'788	#NI4E4MNNJ)888yDt/?@@AAAA 	 	 	"777 0 02  	 = $0D!ZR,,R;;DMJ'''#DM22[@=BI%%GLLFFDM$-&&(((
 .2-="* ,>bf(;(;(=(===*BK!.t/?!@!@B.2D+++ >==s   AA? ?
B>	0B99B>Fc                     |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)rE   whatr{   dataforces        r;   write_or_delete_filezegg_info.write_or_delete_file  s      		+OOD(D11111W^^H%% 	+|E|:D(     *****	+ 	+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)rE   r   r{   r   fs        r;   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)rE   r{   s     r;   r   zegg_info.delete_file"  s>    )))| 	 Ih	  	 r=   c           	         |                      | j                   t          j        | j        d            t	          j        d          D ]P}|                                } || |j        t          j        	                    | j        |j                             Qt          j        	                    | j        d          }t          j        
                    |          r|                     |           |                                  d S )Nzegg_info.writers)groupznative_libs.txt)mkpathrd   r%   utimer   entry_pointsloadrF   r&   r   r   r   find_sources)rE   epwriternls       r;   runzegg_info.run(  s    DM"""
%%%'.@AAA 	H 	HBWWYYFF4"',,t}bg"F"FGGGG W\\$-):;;7>>" 	!R   r=   c                     t           j                            | j        d          }t	          | j                  }| j        |_        ||_        |	                                 |j
        | _
        dS )z"Generate SOURCES.txt manifest filezSOURCES.txtN)r%   r&   r   rd   manifest_makerrB   rp   ignore_egg_info_dirmanifestr   filelist)rE   manifest_filenamemms      r;   r   zegg_info.find_sources6  sV    GLLFFD-..!%!A'
r=   c                 ,   | j         dz   }| j        t          j        k    r%t          j                            | j        |          }t          j                            |          r0t          j        d|| j	                   | j	        | _
        || _	        d S d S )Nr   aB  ------------------------------------------------------------------------------
Note: Your current .egg-info directory has a '-' in its name;
this will not work correctly with "setup.py develop".

Please rename %s to %s to correct this problem.
------------------------------------------------------------------------------)rm   rl   r%   r   r&   r   r   r   r   rd   ro   )rE   beis     r;   r   zegg_info.check_broken_egg_info?  s    mk)=BI%%',,t}c22C7>># 		 HO T]   $(=D DMMM		  		 r=   NF)r\   r]   r^   descriptionuser_optionsboolean_optionsnegative_optrq   r_   rs   setterr|   r   r   r   r   r   r   r   rb   r=   r;   rd   rd      s       ?K  L "lO:L1 1 1   X   7 7 7+3 +3 +3Z+ + + +(         $ $ $         r=   rd   c                   t     e Zd Zd fd	Zd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Z xZS )r   NFc                 Z    t                                          ||           || _        d S rA   )super__init__r   )rE   r   debug_printr   	__class__s       r;   r   zFileList.__init__R  s+    {+++#6   r=   c           	      |   |                      |          \  }}}}| j        | j        | j        | j        t          j        | j        |          t          j        | j        |          | j	        | j
        d}dddddddd	d}	 ||         }n1# t          $ r$ 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/this cannot happen: invalid action '{action!s}')actionz
recursive->   r   r   rb    )_parse_template_liner   r   global_includeglobal_exclude	functoolspartialrecursive_includerecursive_excluder   r   KeyErrorr   format
startswithr   r   r   r   )rE   liner   patternsdirdir_pattern
action_maplog_mapprocess_actionaction_is_recursiveextra_log_argslog_tmplpatterns                r;   process_template_linezFileList.process_template_lineV  s    04/H/H/N/N,3 ||"1"1!*!2&" " "+!2&" " ZZ
 

 ? +6'2 CM/
 
4	'/NN 	 	 	(Af%%  	 %//=='''#}H$7?#R6?HH-5#27 	
 	
 	
   	= 	=G!>'** =7<^<<<<	= 	=s    B	 	.B7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   )rE   	predicatefoundr5   s       r;   _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 rb   r%   r&   isdir.0r   s     r;   
<listcomp>z$FileList.include.<locals>.<listcomp>  s+    BBBqq1A1ABBBBr=   r   extendra   )rE   r   r   s      r;   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rE   r   r   s      r;   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 rb   r   r   s     r;   r   z.FileList.recursive_include.<locals>.<listcomp>  s:     * * *qa((* * * *r=   T)	recursive)r%   r&   r   r   r   ra   )rE   r   r   full_patternr   s        r;   r   zFileList.recursive_include  sc     w||Cw77* *D>>> * * *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   )rE   r   r   r   s       r;   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 rb   )r   r   findall)r   	match_diritems      r;   r   z"FileList.graft.<locals>.<listcomp>  sP     
 
 
!*229==
 
  
 
 
 
r=   r   )rE   r   r   s      r;   r   zFileList.graft  sF    
 
!#YY
 
 

 	EE{{r=   c                     t          t          j                            |d                    }|                     |j                  S )zFilter out files from 'dir/'.r   r  )rE   r   r   s      r;   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 rb   )r   )r   r   r   s     r;   r   z+FileList.global_include.<locals>.<listcomp>  s(    <<<qU[[^^<<<<r=   )allfilesr  r<   r%   r&   r   r   ra   )rE   r   r   r   s      @r;   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      r;   r   zFileList.global_exclude  s7     ""',,tW"="=>>!!%+...r=   c                     |                     d          r
|d d         }t          |          }|                     |          r| j                            |           d S d S )Nr   )rR   r   
_safe_pathr   append)rE   r  r&   s      r;   r  zFileList.append  sj    == 	9DD!!??4   	$Jd#####	$ 	$r=   c                 `    | j                             t          | j        |                     d S rA   )r   r   filterr  )rE   pathss     r;   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)listr  r  r   rD   s    r;   _repairzFileList._repair  s%     &$*==>>


r=   c                    d}t          j        |          }|t          j        d|z             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 -- skippingz''%s' in unexpected encoding -- skippingFr   r   s	   .egg-infoT)unicode_utilsfilesys_decoder   r   
try_encoder   r%   r&   r   UnicodeEncodeErrorsysgetfilesystemencoding)rE   r&   enc_warnu_path	utf8_pathis_egg_infos         r;   r  zFileList._safe_path  s   6 -d33>H>EFFF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   "B7 5>B7 71C,+C,)NNF)r\   r]   r^   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  __classcell__)r   s   @r;   r   r   O  s       7 7 7 7 7 7K= K= K=Z    / / /
  / / /  / / /

 
 
/ / /$ $ $: : :? ? ?B B B B B B Br=   r   c                   d    e Zd ZdZd Zd Zd Zd Zd Zd Z	e
d             Zd	 Zd
 Zd Zd ZdS )r   zMANIFEST.inc                 L    d| _         d| _        d| _        d| _        d| _        d S )Nr   F)use_defaultsr   manifest_onlyforce_manifestr   rD   s    r;   rq   z!manifest_maker.initialize_options"  s/    
#(   r=   c                     d S rA   rb   rD   s    r;   r   zmanifest_maker.finalize_options)  s    r=   c                    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prune_file_listsortremove_duplicatesrD   s    r;   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  replacer%   r'   )rE   r&   s     r;   _manifest_normalizez"manifest_maker._manifest_normalize9  s(    +D11||BFC(((r=   c                       j                                           fd j         j        D             }d j        z  }                     t
           j        |f|           dS )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c                 :    g | ]}                     |          S rb   )r4  )r   r   rE   s     r;   r   z1manifest_maker.write_manifest.<locals>.<listcomp>E  s'    JJJ))!,,JJJr=   zwriting manifest file '%s'N)r   r  r   r   executer   )rE   r   msgs   `  r;   r)  zmanifest_maker.write_manifest=  si    
 	 KJJJdm6IJJJ*T]:Z$-!7=====r=   c                 ^    |                      |          st          j        | |           d S d S rA   )_should_suppress_warningr   r   )rE   r8  s     r;   r   zmanifest_maker.warnI  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   )r8  s    r;   r:  z'manifest_maker._should_suppress_warningM  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.pyrd   )r   r*  r   r  r+  r   r  r   r   r%   r&   r   read_manifestget_finalized_commandr   rd   )rE   rcfilesei_cmds      r;   r*  zmanifest_maker.add_defaultsT  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')rB   r   license_filesr   r   r   r   )rE   rB  lfs      r;   r-  z manifest_maker.add_license_filesf  sV    )2@FB 	 	BH/444]+++++r=   c                 Z   |                      d          }| j                                        }| j                            |j                   | j                            |           t          j        t          j	                  }| j        
                    d|z   dz   |z   d           d S )Nbuildz(^|z)(RCS|CVS|\.svn)r   )is_regex)r>  rB   get_fullnamer   r   
build_baser(   r)   r%   r'   exclude_pattern)rE   rE  base_dirr'   s       r;   r.  zmanifest_maker.prune_file_listm  s    **733$1133E,---H%%%i%%fsl5H&H3&N/0 	& 	2 	2 	2 	2 	2r=   c                     t          |d          r|                                S t          j        dt                     |                                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_manifestzCustom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.)hasattrrL  warningsr   r   get_data_files)rE   build_pys     r;   _safe_data_fileszmanifest_maker._safe_data_filesv  s[     8>?? 	>;;===5 )		
 	
 	
 &&(((r=   N)r\   r]   r^   r+  rq   r   r   r4  r)  r   staticmethodr:  r*  r-  r.  rQ  rb   r=   r;   r   r     s        H) ) )    ) ) )
> 
> 
>" " " ; ; \;- - -$, , ,2 2 2) ) ) ) )r=   r   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      r;   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   rB   r   rn   rO   rm   rF   write_pkg_inford   getattrr   write_safety_flag)cmdbasenamer{   r   oldveroldnamesafes          r;   rX  rX    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                 p    t           j                            |          rt          j        d           d S d S )NzsWARNING: 'depends.txt' is not used by setuptools 0.6!
Use the install_requires/extras_require setup() args instead.)r%   r&   r   r   r   r[  r\  r{   s      r;   warn_depends_obsoleterb    sF    	w~~h 
L	
 	
 	
 	
 	

 
r=   c                 x    t          |pd          }d }t          ||          }|                     |           d S )Nrb   c                     | dz   S )NrT  rb   )r   s    r;   	append_crz&_write_requirements.<locals>.append_cr  s    d{r=   )r   map
writelines)streamreqslinesre  s       r;   _write_requirementsrk    sK    
##E  	5!!E
er=   c           	      p   | j         }t          j                    }t          ||j                   |j        pi }t          |          D ]D}|                     dj        di t                                 t          |||                    E| 
                    d||                                           d S )Nz
[{extra}]
requirementsrb   )rB   ioStringIOrk  install_requiresextras_requiresortedr   r   varsr   getvalue)r[  r\  r{   distr   rq  extras          r;   write_requirementsrw    s    D;==Dd3444(.BN'' 9 9

)?)33DFF33444D."78888^Xt}}GGGGGr=   c                     t          j                    }t          || j        j                   |                     d||                                           d S )Nzsetup-requirements)rn  ro  rk  rB   setup_requiresr   rt  )r[  r\  r{   r   s       r;   write_setup_requirementsrz    sJ    ;==Dc.=>>>18T]]__MMMMMr=   c           	          t                               d | j                                        D                       }|                     d|d                    t          |                    dz              d S )Nc                 F    g | ]}|                     d d          d         S ).r   r   )r$   )r   ks     r;   r   z(write_toplevel_names.<locals>.<listcomp>  s9     	
 	
 	
 GGCOOA	
 	
 	
r=   ztop-level namesrT  )rz   fromkeysrB   iter_distribution_namesr   r   rr  )r[  r\  r{   pkgss       r;   write_toplevel_namesr    sv    ==	
 	
%==??	
 	
 	
 D NN$h		&,,0G0G$0NOOOOOr=   c                 *    t          | ||d           d S )NT)	write_argra  s      r;   overwrite_argr    s    c8Xt,,,,,r=   Fc                     t           j                            |          d         }t          | j        |d           }|d                    |          dz   }|                     ||||           d S )Nr   rT  )r%   r&   splitextrY  rB   r   r   )r[  r\  r{   r   argnamerv   s         r;   r  r    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   rB   r   renderr   )r[  r\  r{   epsdefns        r;   write_entriesr    sH    

S-:
;
;C$$D^XtTBBBBBr=   c                  j   t          j        dt                     t          j                            d          ryt          j        d          5 } | D ]I}t          j	        d|          }|r0t          |                    d                    c cddd           S J	 ddd           n# 1 swxY w Y   dS )zd
    Get a -r### off of PKG-INFO Version in case this is an sdist of
    a subversion revision.
    z$get_pkg_info_revision is deprecated.zPKG-INFOzVersion:.*-r(\d+)\s*$r   Nr   )rN  r   EggInfoDeprecationWarningr%   r&   r   rn  r   r(   r   intr   )r   r   r   s      r;   get_pkg_info_revisionr    s   
 M.0IK K K	w~~j!! /WZ   	/A / /!94@@ /u{{1~~....		/ 	/ 	/ 	/ 	/ 	/ 	/ 	///	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
 1s   ?B(B((B,/B,c                       e Zd ZdZdS )r  z?Deprecated behavior warning for EggInfo, bypassing suppression.N)r\   r]   r^   __doc__rb   r=   r;   r  r    s        IIIIr=   r  r   )>r  distutils.filelistr   	_FileListdistutils.errorsr   distutils.utilr   r   r   r   r%   r(   r  rn  rN  rY   rx   
_importlibr   r   r	   
setuptoolsr
   setuptools.command.sdistr   r   setuptools.command.setoptr   setuptools.commandr   pkg_resourcesr   r   r   r   r   setuptools.unicode_utilsr  setuptools.globr   setuptools.externr   setuptools.extern.jaraco.textr   r   r<   r?   rd   r   r   rX  rb  rk  rw  rz  r  r  r  r  r  r  rb   r=   r;   <module>r     s  < < 5 4 4 4 4 4 3 3 3 3 3 3 ' ' ' ' ' '                   				 				 



 				       ! ! ! ! ! !             * * * * * * 1 1 1 1 1 1 1 1 1 1 1 1 ( ( ( ( ( (              1 0 0 0 0 0             ' ' ' ' ' ' 5 5 5 5 5 5 3 3 3 3 3 3P; P; P;f& & & & & & & &Ri  i  i  i  i z7 i  i  i XMB MB MB MB MBy MB MB MB`j) j) j) j) j)U j) j) j)Z
 
 
8 8 8&
 
 
  H H HN N NP P P- - -> > > >C C C   J J J J J < J J J J Jr=   