
    Jid                    v   S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
r
SSKr
SSKr
SSKJr  SSKJr  SSKJr  SSKJrJr  SSKJr  SS	KJr  S
SKJrJr  S
SKJr  S
SKJ r   SSKJ!r!  SSK"r#SSK$r#SSK#J%r%  SSK"J&r&  SSK$J'r(  SSK)J*r*  \RV                  RX                   S\RV                  RZ                   3r.S r/ " S S5      r0 " S S\0\5      r1 " S S\(5      r' " S S\5      r2S(S jr3S(S jr4S(S  jr5\!Rl                  r6\!Rn                  r7S(S! jr8S(S" jr9S)S*S# jjr:S(S$ jr;S+S% jr< " S& S'\ 5      r=g),zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    )annotationsN)Callable)Command)	bdist_egg)sdistwalk_revctrl)edit_config)glob   )_entry_points_normalization)metadata)SetuptoolsDeprecationWarning   )_requirestxt)log)DistutilsInternalError)FileList)convert_path.c                   SnU R                   " [        R                  R                  5      n[        R
                  " [        R                  5      nSU S3n[        U5       GHG  u  pVU[        U5      S-
  :H  nUS:X  a  U(       a  US-  nOUSU SU S	3-  nM8  S
n[        U5      n	X:  a  Xh   n
U
S:X  a  XS-   -  nOU
S:X  a  X-  nOU
S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:w  a  US-   nX:  a
  Xk   S:w  a  M  X:  a  U[        R
                  " U
5      -  nOWXhS-   U nSnUS
   S:X  a  SnUSS nU[        R
                  " U5      -  nUSU S3-  nUnOU[        R
                  " U
5      -  nUS-  nX:  a  M  U(       a  GMC  X-  nGMJ     US-  n[        R                  " U[        R                  [        R                  -  S9$ )z
Translate a file path glob like '*.txt' in to a regular expression.
This differs from fnmatch.translate which allows wildcards to match
directory separators. It also knows about '**/' which matches any number of
directories.
 z[^]r   **z.*z(?:+z)*r   *?[!^Nz\Z)flags)splitospathsepreescape	enumeratelencompile	MULTILINEDOTALL)r
   patchunksr%   
valid_charcchunk
last_chunki	chunk_lencharinner_iinner
char_classs                 ]/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/setuptools/command/egg_info.pytranslate_patternr:   (   s    C ZZ$F
))BFF
CcU!Jf%#f+/)
 D=t ZL#b11 J	m8Ds{C''!a%&5>S+@%kG&5>S+@%kG )en.C%kG )en.C ' 299T?*C "a%'2E!#J Qx3%(
 %ab	"))E"22JQzl!,,C  Aryy&FAU mZ zJC} &@ 5LC::c		!9::    c                  f    \ rS rSrSrSr\S 5       rS rS r	S
S jr
SS jrSS jr\" \5      rS	rg)
InfoCommon{   Nc                ^    [         R                  " U R                  R                  5       5      $ N)r   	safe_namedistributionget_nameselfs    r9   nameInfoCommon.name   s"    ''(9(9(B(B(DEEr;   c                    U R                  U R                  R                  5       5      n[        R                  " U5      $ r@   )
_maybe_tagrB   get_versionr   safe_version)rE   taggeds     r9   tagged_versionInfoCommon.tagged_version   s0    !2!2!>!>!@A**622r;   c                p    U R                   (       a  U R                  U5      (       a  U$ XR                   -   $ )zw
egg_info may be called more than once for a distribution,
in which case the version string already contains all tags.
)vtags_already_taggedrE   versions     r9   rI   InfoCommon._maybe_tag   s6     zzd227;; 	
 ::%	
r;   c                X    UR                  U R                  U R                  5       45      $ r@   )endswithrP   
_safe_tagsrR   s     r9   rQ   InfoCommon._already_tagged   s%     T__-> ?@@r;   c                     [         R                  " SU R                   35      SS  $ ! [        R                  R
                   a3    [         R                  " U R                  R                  SS5      5      s $ f = f)N0r    r   )r   rK   rP   	packagingrS   InvalidVersionrA   replacerD   s    r9   rW   InfoCommon._safe_tags   sj    	J!..4::,/?@DD  // 	J!++DJJ,>,>sC,HII	Js   %( AA98A9c                    SnU R                   (       a  XR                   -  nU R                  (       a  U[        R                  " S5      -  nU$ )Nr   z%Y%m%d)	tag_buildtag_datetimestrftimerR   s     r9   tagsInfoCommon.tags   s9    >>~~%G==t}}X..Gr;    )rS   strreturnbool)ri   rh   )__name__
__module____qualname____firstlineno__ra   rb   propertyrF   rM   rI   rQ   rW   re   rP   __static_attributes__rg   r;   r9   r=   r=   {   sF    IHF F3	
A
J TNEr;   r=   c                      \ rS rSrSr/ SQrS/rSS0rS r\	SS j5       r
\
R                  SS j5       r
SS	 jrSS
 jr\S4S jrSSS jjrSS jrSS jrSS jrSS jrSrg)egg_info   z+create a distribution's .egg-info directory))z	egg-base=ezLdirectory containing .egg-info directories [default: top of the source tree])tag-datedz0Add date stamp (e.g. 20050528) to version number)z
tag-build=bz-Specify explicit tag to add to version number)no-dateDz"Don't include date stamp [default]ru   rx   c                J    S U l         S U l        S U l        S U l        SU l        g )NF)egg_baseegg_namerr   egg_versionignore_egg_info_in_manifestrD   s    r9   initialize_optionsegg_info.initialize_options   s'    +0(r;   c                    g r@   rg   rD   s    r9   tag_svn_revisionegg_info.tag_svn_revision       r;   c                    g r@   rg   )rE   values     r9   r   r      r   r;   c                Z    [        U R                  5       SS9n[        U[        US95        g)z
Materialize the value of date into the
build tag. Install build keys in a deterministic order
to avoid arbitrary reordering on subsequent builds.
r   )ra   rb   )rr   N)dictre   r	   )rE   filenamerr   s      r9   save_version_infoegg_info.save_version_info   s%     $))+:HdH56r;   c                   U R                   U l        U R                  5       U l        [        R
                  R                  U R                  5      n [        U[        R
                  R                  5      nU(       a  SOSn[        R                  R                  X0R                  U R                  4-  5        U R                  cD  U R                  R                   nU=(       d    0 R#                  S[$        R&                  5      U l        U R)                  S5        [*        R,                  " U R                  5      S-   U l        U R                  [$        R&                  :w  a9  [$        R0                  R3                  U R                  U R.                  5      U l        U R                  U R                  R4                  l        g ! [         a?  n[        R                  R                  SU R                   SU R                   35      UeS nAff = f)Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   r{   	.egg-info)rF   r|   rM   r}   r\   rS   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorr{   rB   package_dirgetr#   curdirensure_dirnamer   filename_componentrr   r$   joinr   )rE   parsed_version
is_versionspecrt   dirss         r9   finalize_optionsegg_info.finalize_options   s~   
 		..0"**2243C3CD	#NI4E4E4M4MNJ)8yD""..t}}dFVFV6W/WX == $$00D!ZR,,R;DMJ'&99$--H;V==BII%GGLLFDM
 .2-=-=""*#  	""77?aPTP`P`Oab	s   A&F> >
H:HHNc                D    [        U R                  U R                  X5      $ )0Compute filename of the output egg. Private API.)_egg_basenamer|   r}   )rE   
py_versionplatforms      r9   _get_egg_basenameegg_info._get_egg_basename   s    T]]D,<,<jSSr;   c                    U(       a  U R                  XU5        g[        R                  R                  U5      (       a4  Uc  U(       d  [        R
                  " SX5        gU R                  U5        gg)a  Write `data` to `filename` or delete if empty

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

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

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

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

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

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

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

Because some owners of FileList manipulate the underlying
``files`` attribute directly, this method must be called to
repair those paths.
N)r   r2  r.  r  rD   s    r9   _repairFileList._repair  s     &$**=>
r;   c                0   Sn[         R                  " U5      nUc  [        R                  " SU S35        g[         R                  " US5      nUc  [        R                  " X!S5        g SU;   =(       d    SU;   nU R
                  (       a  U(       a  g[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  gg ! [         a-    [        R                  " X![        R                  " 5       5         g f = f)	Nz!'%s' not %s encodable -- skippingr   z$' 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         r9   r.  FileList._safe_path  s    6 --d3>HHqBCD ",,VW=	HHXW-
	B%/L<93LK''Kww~~f%%	)B)B *C " 	BHHXS%>%>%@A	Bs   *)C AC 4DD)r  r   )NNF)r   rj   ri   r   r   )rk   rl   rm   rn   r   r  r  r   r   r   r   r   r   r   r   r/  r  r6  r.  rp   __classcell__)r   s   @r9   r   r   D  ss     HM7@D7	7 7D=L/
//

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

Therefore, avoid triggering any attempt of
analyzing/building the manifest again.
get_data_files_without_manifestz@`build_py` command does not inherit from setuptools' `build_py`.z
            Custom 'build_py' does not implement 'get_data_files_without_manifest'.
            Please extend command classes from setuptools instead of distutils.
            z!https://peps.python.org/pep-0632/)see_url)hasattrrv  r   emitget_data_files)rE   build_pys     r9   _safe_data_filesmanifest_maker._safe_data_filesc  sM     8>??;;==$))N 8	
 &&((r;   )r   rI  r   rH  r   rG  Nr   )rk   rl   rm   rn   rP  r   r   r   rZ  rN  r   staticmethodr`  rO  rR  rS  r|  rp   rg   r;   r9   r   r     sM    H))
>" ; ;-$,))r;   r   c                    SR                  U5      nUR                  S5      n[        U S5       nUR                  U5        SSS5        g! , (       d  f       g= f)zsCreate a file with the specified name and write 'contents' (a
sequence of strings without line terminators) to it.

r   r   N)r   r   r   r   )r   contentsr   s      r9   r   r   |  sF     yy"H w'H	h		 
		s   A


Ac                   [         R                  " SU5        U R                  R                  nU R                  UR
                  sUl        nU R                  UR                  sUl        n UR                  " U R                  5        XTsUl        Ul        [        U R                  SS 5      n[        R                  " U R                  U5        g ! XTsUl        Ul        f = f)Nz
writing %szip_safe)r   r   rB   r   r}   rS   r|   rF   write_pkg_inforr   rp  r   write_safety_flag)cmdbasenamer   r   oldveroldnamesafes          r9   r  r    s    HH\8$((H"0@0@Hf \\8==HM7:-*1'x'3##Z6Dd3	 +2'x's   +C Cc                    g)aR  
Unused: left to avoid errors when updating (from source) from <= 67.8.
Old installations have a .dist-info directory with the entry-point
``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
This may trigger errors when running the first egg_info in build_meta.
TODO: Remove this function in a version sufficiently > 68.
Nrg   r  r  r   s      r9   warn_depends_obsoleter    s    r;   c           	     
   [         R                  U R                  R                  5        Vs/ s H  o3R	                  SS5      S   PM     sn5      nU R                  SUSR                  [        U5      5      S-   5        g s  snf )Nr   r   r   ztop-level namesr  )r   fromkeysrB   iter_distribution_namesr"   r   r   sorted)r  r  r   kpkgss        r9   write_toplevel_namesr    sn    ==$'$4$4$L$L$N$NqQ$N D NN$h		&,0G$0NOs   B c                    [        XUS5        g )NT)	write_argr  s      r9   overwrite_argr    s    cXt,r;   c                    [         R                  R                  U5      S   n[        U R                  US 5      nUb  SR                  U5      S-   nU R                  XBXS5        g )Nr   r  )r#   r$   splitextrp  rB   r   r   )r  r  r   r   argnamer   s         r9   r  r    sX    ggx(+GC$$gt4E		% 4'W=r;   c                    [         R                  " U R                  R                  5      n[         R                  " U5      nU R                  SX$S5        g )Nzentry pointsT)r   r   rB   r   renderr   )r  r  r   epsdefns        r9   write_entriesr    s@    


S--::
;C$D^XTBr;   c                    [         R                  " U 5      n[         R                  " U5      nU SU SU=(       d    [         3nU(       a  USU 3-  nU$ )r   r   z-py)r   r   r   )r|   r}   r   r   rF   rS   eggs          r9   r   r     sV    ,,X6D//<GF!G9C
 6h7
8C8*~Jr;   c                      \ rS rSrSrSrg)EggInfoDeprecationWarningi  z?Deprecated behavior warning for EggInfo, bypassing suppression.rg   N)rk   rl   rm   rn   __doc__rp   rg   r;   r9   r  r    s    Ir;   r  r   r   r   )NN)>r  
__future__r   r   r#   r&   r=  rc   collections.abcr   r\   packaging.requirementspackaging.versionsetuptools.unicode_utilsr9  
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=   rr   r   r   r  r  write_requirementswrite_setup_requirementsr  r  r  r  r   r  rg   r;   r9   <module>r     s  < #  	 	 
  $    0  ( 8 1   , ! 3     3 4 '$$%Qs'7'7'='=&>?P;f, ,^W$z7 W$tFBy FBRl)U l)^
4  "44 '@@ P->CJ < Jr;   