
    dfh                        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=y)+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 ]6  \  }}|t        |      dz
  k(  }|dk(  r|r|dz  }n|d|d|d	z  }2d
}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k7  r|dz   }||	k  r	||   dk7  r||	k\  r|t	        j
                  |
      z  }nU||dz   | }d}|d
   dk(  rd}|dd }|t	        j
                  |      z  }|d|dz  }|}n|t	        j
                  |
      z  }|dz  }||	k  r|r2||z  }9 |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                 T/home/api-vastappli/venv/lib/python3.12/site-packages/setuptools/command/egg_info.pytranslate_patternr<   '   s*    C TZZ$F
))BFF
C!Jf% >5#f+/)
 D=t z377 J	)m8Ds{zC''z!a%Y&5>S+@%kGY&5>S+@%kG 	)eGn.C%kG 	)eGn.C i' 299T?*C "!a%0E!#J Qx3%(
 %ab	"))E"22JZ11C  Aryy&FAU )mZ 3JC}>@ 5LC::c		!9::    c                   h    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y)

InfoCommonNc                 H    t        | j                  j                               S N)r   distributionget_nameselfs    r;   namezInfoCommon.name~   s    **33566r=   c                 f    t        | j                  | j                  j                                     S rA   )r   
_maybe_tagrB   get_versionrD   s    r;   tagged_versionzInfoCommon.tagged_version   s%    DOOD,=,=,I,I,KLMMr=   c                 ^    | j                   r| j                  |      r|S || 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   s0     zzd&:&:7&CG	
4::%	
r=   rO   returnc                 z    |j                  | j                        xs |j                  | j                               S rA   )endswithrL   
_safe_tagsrN   s     r;   rM   zInfoCommon._already_tagged   s0     

+Rw/?/?@Q/RRr=   c                 8    t        d| j                         dd  S )N0r   )r   rL   rD   s    r;   rS   zInfoCommon._safe_tags   s!     a

|,-ab11r=   c                     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==t}}Y//Gr=   )__name__
__module____qualname__rW   rX   propertyrF   rJ   rH   strboolrM   rS   r[   rL    r=   r;   r?   r?   z   sb    IH7 7N
Ss St S
2C 2
c  TNEr=   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y)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                 X    d | _         d | _        d | _        d | _        d| _        d| _        y )NF)egg_baseegg_namerd   egg_versionbroken_egg_infoignore_egg_info_in_manifestrD   s    r;   initialize_optionszegg_info.initialize_options   s/    $+0(r=   c                      y rA   rb   rD   s    r;   tag_svn_revisionzegg_info.tag_svn_revision       r=   c                      y rA   rb   )rE   values     r;   rs   zegg_info.tag_svn_revision   rt   r=   c                     t        j                         }| j                         |d<   d|d<   t        |t	        |             y)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   s=     **, !%		 HdH56r=   c                    | j                   | _        | j                         | _        t	        | j                        }	 t        |t        j                  j                        }|rdnd}t        || j                  | j                  fz         | j                  ?| j                  j                   }|xs i j#                  dt$        j&                        | _        | j)                  d       t+        | j                        dz   | _        | j                  t$        j&                  k7  r9t$        j.                  j1                  | j                  | j,                        | _        d| j                  v r| j3                          | j                  | j                  j4                  _        | j                  j6                  }|e|j8                  | j                  j;                         k(  r=| j                  |_        t	        | j                        |_        d | j                  _        y y y # t        $ r?}t        j                  j                  d| j                  d| j                        |d }~ww xY w)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&t'7'78	#NI4E4E4M4MNJ)8yDt/?/?@@A == $$00D!ZR,,R;DMJ'#DMM2[@==BII%GGLLFDM$--&&(
 .2-=-=""* ,,>bff(;(;(==**BK!.t/?/?!@B.2D+ >>7  	""77 0 02 	s   AH 	I#$:II#c                     |r| j                  |||       yt        j                  j                  |      r.||st	        j
                  d||       y| j                  |       yy)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  sY     OOD(D1WW^^H%|E:D(   * &r=   c                     t        j                  d||       |j                  d      }| j                  s.t	        |d      }|j                  |       |j                          yy)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  sO     	#T84{{7#||Xt$AGGDMGGI r=   c                 t    t        j                  d|       | j                  st        j                  |       yy)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(    )||IIh r=   c           	      0   | j                  | j                         t        j                  | j                  d        t	        j
                  d      D ]X  }|j                         } || |j                  t        j                  j                  | j                  |j                               Z t        j                  j                  | j                  d      }t        j                  j                  |      r| j                  |       | j                          y )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    DMM"
%''.@A 	HBWWYF4"'',,t}}bgg"FG	H
 WW\\$--):;77>>"R r=   c                     t         j                  j                  | j                  d      }t	        | j
                        }| j                  |_        ||_        |j                          |j                  | _
        y)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  sT    GGLLFD--.!%!A!A'
r=   c                 b   | j                   dz   }| j                  t        j                  k7  r*t        j                  j                  | j                  |      }t        j                  j                  |      r:t        j                  d|| j                         | j                  | _
        || _	        y y )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    mmk)==BII%'',,t}}c2C77>>#HHO T]] $(==D DM 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    7+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   c                 4    t         |   ||       || _        y rA   )super__init__r   )rE   r   debug_printr   	__class__s       r;   r   zFileList.__init__R  s    {+#6 r=   c           	         | j                  |      \  }}}}| j                  | j                  | j                  | j                  t        j                  | j                  |      t        j                  | j                  |      | j                  | j                  d}dddddddd	d}	 ||   }|j                  d      }	|dv r|g}|	r|fnd}
||   }| j                  dj!                  |g|	r|gng z   |z                |D ]"  } ||      rt#        j$                  ||g|
  $ y # t        $ r t        d
j                  |            w xY w)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,3 ||||"11"11!*!2!2&&" "+!2!2&&" ZZZZ

 ? +6'2 CM/
4	'/N %//=''#}H$7#R6?HH-#27	
   	=G!'*7<^<	=/  	(Af% 	s   &D# #%Ec                     d}t        t        | j                        dz
  dd      D ]H  } || j                  |         s| j                  d| j                  |   z          | j                  |= d}J |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  sp    
 s4::*B3 	AA'  

1!=>JJqM		
 r=   c                     t        |      D cg c]$  }t        j                  j                  |      r#|& }}| j	                  |       t        |      S c c}w )z#Include files that match 'pattern'.)r   r%   r&   isdirextendra   )rE   r   r   r   s       r;   r   zFileList.include  sD     MBqq1ABBEE{ Cs
   $AAc                 N    t        |      }| j                  |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                  j                  |d|      }t        |d      D cg c]#  }t         j                  j	                  |      s|% }}| j                  |       t        |      S c c}w )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r   T)	recursive)r%   r&   r   r   r   r   ra   )rE   r   r   full_patternr   r   s         r;   r   zFileList.recursive_include  sh     ww||Cw7 > *qa(  * *EE{*s   (A7c                     t        t        j                  j                  |d|            }| j	                  |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  s4     ""'',,sD'"BC!!%++..r=   c                     t        |      D cg c](  }t        j                  j                  |      D ]  }| * }}}| j	                  |       t        |      S c c}}w )zInclude all files from 'dir/'.)r   r   r   findallr   ra   )rE   r   	match_diritemr   s        r;   r   zFileList.graft  sh     "#Y
!**229=
  

 

 	EE{
s   -Ac                     t        t        j                  j                  |d            }| j	                  |j
                        S )zFilter out files from 'dir/'.r   r   )rE   r   r   s      r;   r   zFileList.prune  s0    !"'',,sD"9:!!%++..r=   c                 $   | j                   | j                          t        t        j                  j                  d|            }| j                   D cg c]  }|j                  |      s| }}| j                  |       t        |      S c c}w )z
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        r   )	allfilesr   r<   r%   r&   r   r   r   ra   )rE   r   r   r   r   s        r;   r   zFileList.global_include  sl    
 == LLN!"'',,tW"=> MM<qU[[^<<EE{ =s   B+Bc                     t        t        j                  j                  d|            }| j	                  |j
                        S )zD
        Exclude all files anywhere that match the pattern.
        r   r   r   s      r;   r   zFileList.global_exclude  s2     ""'',,tW"=>!!%++..r=   c                     |j                  d      r|d d }t        |      }| j                  |      r| j                  j	                  |       y y )Nr   )rR   r   
_safe_pathr   append)rE   r   r&   s      r;   r  zFileList.append  sF    ==9DD!??4 JJd# !r=   c                 b    | j                   j                  t        | j                  |             y rA   )r   r   filterr  )rE   pathss     r;   r   zFileList.extend  s    

&%89r=   c                 `    t        t        | j                  | j                              | _        y)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         yt        j                  |d      }|t        j                  ||d       y	 d|v xs d|v }| j
                  r|ryt        j                  j                  |      st        j                  j                  |      ryy # t        $ r, t        j                  ||t        j                                Y y 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>HH>EF ",,VW=	HHXtW-
	B%/L<93LK''Kww~~f%	)B *C " 	BHHXtS%>%>%@A	Bs   $B= =>B= =2C21C2)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  sQ    7K=Z/
//

/$:?Br=   r   c                   \    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y)r   zMANIFEST.inc                 J    d| _         d| _        d| _        d| _        d| _        y )Nr   F)use_defaultsr   manifest_onlyforce_manifestr   rD   s    r;   rq   z!manifest_maker.initialize_options"  s)    
#( r=   c                      y rA   rb   rD   s    r;   r   zmanifest_maker.finalize_options)  s    r=   c                    t        | j                        | _        t        j                  j                  | j                        s| j                          | j                          t        j                  j                  | j                        r| j                          | j                          | j                          | j                  j                          | j                  j                          | j                          y )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     T5M5MNww~~dmm,!77>>$--(  '')r=   c                 l    t        j                  |      }|j                  t        j                  d      S )N/)r  r  replacer%   r'   )rE   r&   s     r;   _manifest_normalizez"manifest_maker._manifest_normalize9  s'    ++D1||BFFC((r=   c                 
   | j                   j                          | j                   j                  D cg c]  }| j                  |       }}d| j                  z  }| j                  t        | j                  |f|       yc c}w )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        zwriting manifest file '%s'N)r   r  r   r+  r   executer   )rE   r   r   msgs       r;   r   zmanifest_maker.write_manifest=  sk    
 	 7;mm6I6IJ))!,JJ*T]]:Z$--!7= Ks   B c                 T    | j                  |      st        j                  | |       y y rA   )_should_suppress_warningr   r   )rE   r.  s     r;   r   zmanifest_maker.warnI  s#    ,,S1JJtS! 2r=   c                 .    t        j                  d|       S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r(   r   )r.  s    r;   r0  z'manifest_maker._should_suppress_warningM  s    
 xx4c::r=   c                 v   t        j                  |        | j                  j                  | j                         | j                  j                  | j
                         t        t                     }|r| j                  j                  |       n9t        j                  j                  | j
                        r| j                          t        j                  j                  d      r| j                  j                  d       | j                  d      }| j                  j                  |j                         y )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]]+|~&MM  )WW^^DMM* 77>>*% MM  ,++J7FOO,r=   c                     | j                   j                  j                  xs g }|D ]  }t        j                  d|        | j
                  j                  |       y )Nzadding license file '%s')rB   r   license_filesr   r   r   r   )rE   r8  lfs      r;   r$  z manifest_maker.add_license_filesf  sS    ))22@@FB 	BHH/4	 	]+r=   c                 l   | j                  d      }| j                  j                         }| j                  j	                  |j
                         | j                  j	                  |       t        j                  t        j                        }| j                  j                  d|z   dz   |z   d       y )Nbuildz(^|z)(RCS|CVS|\.svn)r   )is_regex)r4  rB   get_fullnamer   r   
build_baser(   r)   r%   r'   exclude_pattern)rE   r;  base_dirr'   s       r;   r%  zmanifest_maker.prune_file_listm  s    **73$$113E,,-H%ii%%fsl5H&H3&N/0 	& 	2r=   c                     t        |d      r|j                         S t        j                  dt               |j                         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.)hasattrrB  warningsr   r   get_data_files)rE   build_pys     r;   _safe_data_fileszmanifest_maker._safe_data_filesv  sE     8>?;;==5 )		
 &&((r=   N)r\   r]   r^   r"  rq   r   r   r+  r   r   staticmethodr0  r!  r$  r%  rG  rb   r=   r;   r   r     sM    H))
>" ; ;-$,2)r=   r   c                     dj                  |      }|j                  d      }t        | d      5 }|j                  |       ddd       y# 1 sw Y   yxY w)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     sO     yy"H w'H	h	 	  s   A

Ac                    t        j                  d|       | j                  s| j                  j                  }| j
                  |j                  c|_        }| j                  |j                  c|_        }	  |j                  | j                         ||c|_        |_        t        | j                  dd       }t        j                  | j                  |       y y # ||c|_        |_        w xY w)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;   rN  rN    s    HH\8$;;##,,#&??H4D4D &!$x}}w	> $H##CLL1.5v+HM8+s''T:##CLL$7  /6v+HM8+s   6C C+c                 n    t         j                  j                  |      rt        j                  d       y y )NzsWARNING: 'depends.txt' is not used by setuptools 0.6!
Use the install_requires/extras_require setup() args instead.)r%   r&   r   r   r   rQ  rR  r{   s      r;   warn_depends_obsoleterX    s)    	ww~~hL	
  r=   c                 b    t        |xs d      }d }t        ||      }| j                  |       y )Nrb   c                     | dz   S )NrJ  rb   )r   s    r;   	append_crz&_write_requirements.<locals>.append_cr  s    d{r=   )r   map
writelines)streamreqslinesr[  s       r;   _write_requirementsra    s/    
#E	5!E
er=   c           	      b   | j                   }t        j                         }t        ||j                         |j
                  xs i }t        |      D ]:  }|j                   dj                  di t                      t        |||          < | j                  d||j                                y )Nz
[{extra}]
requirementsrb   )rB   ioStringIOra  install_requiresextras_requiresortedr   r   varsr   getvalue)rQ  rR  r{   distr   rg  extras          r;   write_requirementsrm    s    D;;=Dd334((.BN' 9

)?))3DF34D."789 ^Xt}}Gr=   c                     t        j                         }t        || j                  j                         | j                  d||j                                y )Nzsetup-requirements)rd  re  ra  rB   setup_requiresr   rj  )rQ  rR  r{   r   s       r;   write_setup_requirementsrp    s<    ;;=Dc..==>18T]]_Mr=   c           	         t         j                  | j                  j                         D cg c]  }|j	                  dd      d    c}      }| j                  d|dj                  t        |            dz          y c c}w )N.r   r   ztop-level namesrJ  )rz   fromkeysrB   iter_distribution_namesr$   r   r   rh  )rQ  rR  r{   kpkgss        r;   write_toplevel_namesrw    sp    == %%==?	
 GGCOA	
D NN$h		&,0G$0NO	
s   A>c                      t        | ||d       y )NT)	write_argrW  s      r;   overwrite_argrz    s    c8Xt,r=   c                     t         j                  j                  |      d   }t        | j                  |d       }|dj                  |      dz   }| j                  ||||       y )Nr   rJ  )r%   r&   splitextrO  rB   r   r   )rQ  rR  r{   r   argnamerv   s         r;   ry  ry    s\    ggx(+GC$$gt4E		% 4'Whu=r=   c                     t        j                  | j                  j                        }t        j                  |      }| j                  d||d       y )Nzentry pointsT)r	   r   rB   r   renderr   )rQ  rR  r{   epsdefns        r;   write_entriesr    sB    


S--::
;C$D^XtTBr=   c                  V   t        j                  dt               t        j                  j                  d      rdt        j                  d      5 } | D ]?  }t        j                  d|      }|st        |j                  d            c cddd       S  	 ddd       yy# 1 sw Y   yxY w)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   )rD  r   EggInfoDeprecationWarningr%   r&   r   rd  r   r(   r   intr   )r   r   r   s      r;   get_pkg_info_revisionr    s    
 MM.0IK	ww~~j!WWZ  	/A /!94@u{{1~..		/ 	//	/
 	/
 s   B.BBB(c                       e Zd ZdZy)r  z?Deprecated behavior warning for EggInfo, bypassing suppression.N)r\   r]   r^   __doc__rb   r=   r;   r  r    s    Ir=   r  r   )>r  distutils.filelistr   	_FileListdistutils.errorsr   distutils.utilr   r   r   r   r%   r(   r  rd  rD  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   rN  rX  ra  rm  rp  rw  rz  ry  r  r  r  rb   r=   r;   <module>r     s   < 5 3 '     	 	 
 	    !   * 1 1 (  1   ' 5 3P;f& &Ri z7 i XMBy MB`j)U j)Z
8&
HNP->C J < Jr=   