
    ǆig                        S r SSK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
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JrJr  S
SKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&  SRN                  " \RP                  6 r)S r* " S S5      r+ " S S\+\5      r, " S S\5      r " S S\5      r-S r.S r/S  r0\Rb                  r1\Rd                  r2S! r3S" r4S(S# jr5S$ r6S)S% jr7 " S& S'\&5      r8g)*zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    )FileList)DistutilsInternalError)convert_path)logN   )metadata)_entry_points_normalization   )_requirestxt)Command)sdist)walk_revctrl)edit_config)	bdist_egg)glob)	packaging)SetuptoolsDeprecationWarningz{}.{}c                    SnU R                   " [        R                  R                  5      n[        R
                  " [        R                  5      nSU< S3n[        U5       GHJ  u  pVU[        U5      S-
  :H  nUS:X  a  U(       a  US-  nOUSU< SU< S	3-  nM:  S
n[        U5      n	X:  a  Xh   n
U
S:X  a  XS-   -  nOU
S:X  a  X-  nOU
S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:X  a  US-   nX:  a  Xk   S:w  a  US-   nX:  a
  Xk   S:w  a  M  X:  a  U[        R
                  " U
5      -  nOXXhS-   U nSnUS
   S:X  a  SnUSS nU[        R
                  " U5      -  nUSU< S3-  nUnOU[        R
                  " U
5      -  nUS-  nX:  a  M  U(       a  GMF  X-  nGMM     US-  n[        R                  " U[        R                  [        R                  -  S9$ )z
Translate a file path glob like '*.txt' in to a regular expression.
This differs from fnmatch.translate which allows wildcards to match
directory separators. It also knows about '**/' which matches any number of
directories.
 z[^]r   **z.*z(?:+z)*r   *?[!^Nz\Z)flags)splitospathsepreescape	enumeratelencompile	MULTILINEDOTALL)r   patchunksr#   
valid_charcchunk
last_chunki	chunk_lencharinner_iinner
char_classs                 k/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/setuptools/command/egg_info.pytranslate_patternr8   %   s    C ZZ$F
))BFF
C!Jf%#f+/)
 D=t z377 J	m8Ds{C''!a%&5>S+@%kG&5>S+@%kG )en.C%kG )en.C ' 299T?*C "a%'2E!#J Qx3%(
 %ab	"))E"22JZ11C  Aryy&FAU mZ zJC} &@ 5LC::c		!9::    c                   v    \ rS rSrSrSr\S 5       rS rS r	S\
S\4S jrS\
4S	 jrS\
4S
 jr\" \5      rSrg)
InfoCommonx   Nc                 ^    [         R                  " U R                  R                  5       5      $ N)r
   	safe_namedistributionget_nameselfs    r7   nameInfoCommon.name|   s"    ''(9(9(B(B(DEEr9   c                     U R                  U R                  R                  5       5      n[        R                  " U5      $ r>   )
_maybe_tagr@   get_versionr
   safe_version)rC   taggeds     r7   tagged_versionInfoCommon.tagged_version   s0    !2!2!>!>!@A**622r9   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rC   versions     r7   rG   InfoCommon._maybe_tag   s6     zzd227;; 	
 ::%	
r9   rQ   returnc                     UR                  U R                  5      =(       d    UR                  U R                  5       5      $ r>   )endswithrN   
_safe_tagsrP   s     r7   rO   InfoCommon._already_tagged   s0     

+Rw/?/?@Q/RRr9   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
   rI   rN   r   rQ   InvalidVersionr?   replacerB   s    r7   rV   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strftimerP   s     r7   tagsInfoCommon.tags   s9    >>~~%G==t}}X..Gr9    )__name__
__module____qualname____firstlineno__r`   ra   propertyrD   rK   rG   strboolrO   rV   rd   rN   __static_attributes__rf   r9   r7   r;   r;   x   se    IHF F3	
Ss St S
JC Jc  TNEr9   r;   c                       \ rS rSrSr/ SQrS/rSS0rS r\	S 5       r
\
R                  S 5       r
S	 rS
 r\S4S jrSS jrS rS rS rS 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]rs   rv   c                 J    S U l         S U l        S U l        S U l        SU l        g )NF)egg_baseegg_namerp   egg_versionignore_egg_info_in_manifestrB   s    r7   initialize_optionsegg_info.initialize_options   s'    +0(r9   c                     g r>   rf   rB   s    r7   tag_svn_revisionegg_info.tag_svn_revision       r9   c                     g r>   rf   )rC   values     r7   r   r      r   r9   c                     [         R                  " 5       nU R                  5       US'   SUS'   [        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`   r   ra   )rp   N)collectionsOrderedDictrd   r   dict)rC   filenamerp   s      r7   save_version_infoegg_info.save_version_info   s=     **, !%		 HdH56r9   c                 j   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        U R                  R6                  n[9        USS 5      =(       d    [9        US	S 5      nUbo  XpR                  R;                  5       :X  aQ  U R                  Ul        [        R
                  R                  U R                  5      Ul        S U R                  l        g g g ! [         aA  n[        R                  R                  SU R                  < SU R                  < 35      UeS nAff = f)
Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   ry   	.egg-infokeyrD   ) rD   rz   rK   r{   r   rQ   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorry   r@   package_dirgetr!   curdirensure_dirnamer
   filename_componentrp   r"   joinr   _patched_distgetattrlower_version_parsed_version)rC   parsed_version
is_versionspecrr   dirspdr   s           r7   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-=-=""* ,,b%&C'"fd*C>c]]%8%8%::**BK!*!2!2!:!:4;K;K!LB.2D+ ;>5  	""77==$"2"24 	s   A&I' '
J21<J--J2Nc                 D    [        U R                  U R                  X5      $ )0Compute filename of the output egg. Private API.)_egg_basenamerz   r{   )rC   
py_versionplatforms      r7   _get_egg_basenameegg_info._get_egg_basename  s    T]]D,<,<jSSr9   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)rC   whatr   dataforces        r7   write_or_delete_fileegg_info.write_or_delete_file  sT     OODD1WW^^H%%|E?P  * &r9   c                     [         R                  " SX5        UR                  S5      nU R                  (       d.  [	        US5      nUR                  U5        UR                  5         gg)zWrite `data` to `filename` (if not a dry run) after announcing it

`what` is used in a log message to identify what is being written
to the file.
zwriting %s to %sutf-8wbN)r   infoencodedry_runopenwriteclose)rC   r   r   r   fs        r7   r   egg_info.write_file  sM     	#T4{{7#||Xt$AGGDMGGI r9   c                     [         R                  " SU5        U R                  (       d  [        R                  " U5        gg)z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r   r   r!   unlink)rC   r   s     r7   r   egg_info.delete_file+  s(    )||IIh r9   c           	         U R                  U R                  5         [        R                  " U R                  S 5        [        R                  " SS9 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'Cannot update time stamp of directory ''zegg_info.writers)groupznative_libs.txt)mkpathrp   r!   utimeOSErrorr   r   DistutilsFileErrorr   entry_pointsloadrD   r"   r   r   r   find_sources)rC   rr   msgepwriternls         r7   runegg_info.run1  s    DMM"	BHHT]]D) ''.@ABWWYF4"'',,t}}bgg"FG B
 WW\\$--):;77>>"R   	B;DMM?!LC""55c:A	Bs   !D 
E(0E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   rp   manifest_makerr@   r|   ignore_egg_info_dirmanifestr   filelist)rC   manifest_filenamemms      r7   r   egg_info.find_sourcesC  sR    GGLLFD--.!%!A!A'
r9   )ry   rp   rz   r{   r   r|   F)rg   rh   ri   rj   descriptionuser_optionsboolean_optionsnegative_optr}   rk   r   setterr   r   PY_MAJORr   r   r   r   r   r   rn   rf   r9   r7   rp   rp      s    ?K
L "lO:L1    
7*3X ,4d T+$ $$r9   rp   c                      ^  \ rS rSrSU 4S jjrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrU =r$ )r   iM  c                 0   > [         TU ]  X5        X0l        g r>   )super__init__r   )rC   r   debug_printr   	__class__s       r7   r   FileList.__init__P  s    +#6 r9   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   rf   rZ   )_parse_template_liner   r   global_includeglobal_exclude	functoolspartialrecursive_includerecursive_excluder   r   KeyErrorr   
startswithr   r   r   r   )rC   lineactionpatternsdirdir_pattern
action_maplog_mapprocess_actionr   action_is_recursiveextra_log_argslog_tmplpatterns                 r7   process_template_lineFileList.process_template_lineT  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   )rC   	predicatefoundr1   s       r7   _remove_filesFileList._remove_files  sn    
 s4::*B3AA''  

1!=>JJqM	 4
 r9   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extendrm   )rC   r  r   r  s       r7   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'.)r8   r  matchrC   r  r  s      r7   r   FileList.exclude  s!    !'*!!%++..r9   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  rm   )rC   r   r  full_patternr   r  s         r7   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   r8   r!   r"   r   r  r  )rC   r   r  r  s       r7   r   FileList.recursive_exclude  s4     ""'',,sD'"BC!!%++..r9   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  rm   )rC   r   	match_diritemr  s        r7   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   )rC   r   r  s      r7   r   FileList.prune  s0    !"'',,sD"9:!!%++..r9   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#  r8   r!   r"   r   r  r  rm   )rC   r  r  r   r  s        r7   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      r7   r   FileList.global_exclude  s2     ""'',,tW"=>!!%++..r9   c                     UR                  S5      (       a  US S n[        U5      nU R                  U5      (       a  U R                  R	                  U5        g g )Nr  )rU   r   
_safe_pathr  append)rC   r%  r"   s      r7   r1  FileList.append  sL    ==9DD!??4  JJd# !r9   c                 b    U R                   R                  [        U R                  U5      5        g r>   )r  r  filterr0  )rC   pathss     r7   r  FileList.extend  s    

&%89r9   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)listr4  r0  r  rB   s    r7   _repairFileList._repair  s     &$**=>
r9   c                 .   Sn[         R                  " U5      nUc  [        R                  " SU-  5        g[         R                  " US5      nUc  [        R                  " X!S5        g SU;   =(       d    SU;   nU R
                  (       a  U(       a  g[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  gg ! [         a-    [        R                  " X![        R                  " 5       5         g f = f)Nz!'%s' not %s encodable -- skippingz''%s' in unexpected encoding -- skippingFr   r   s	   .egg-infoT)unicode_utilsfilesys_decoder   r   
try_encoder   r!   r"   r   UnicodeEncodeErrorsysgetfilesystemencoding)rC   r"   enc_warnu_path	utf8_pathis_egg_infos         r7   r0  FileList._safe_path  s    6 --d3>HH>EF ",,VW=	HHXW-
	B%/L<93LK''Kww~~f%%	)B)B *C " 	BHHXS%>%>%@A	Bs   ))C AC 4DD)r  r   )NNF)rg   rh   ri   rj   r   r	  r  r   r   r   r   r   r   r   r   r1  r  r9  r0  rn   __classcell__)r   s   @r7   r   r   M  sW    7D=L/
//

/$:?B Br9   r   c                   j    \ rS rSrSrS rS rS rS rS r	S r
\S	 5       rS
 rS rS 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   rB   s    r7   r}   !manifest_maker.initialize_options  s)     
!"#( r9   c                     g r>   rf   rB   s    r7   r   manifest_maker.finalize_options  s    r9   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_duplicatesrB   s    r7   r   manifest_maker.run"  s     T5M5MNww~~dmm,,!77>>$--((  ""$'')r9   c                 n    [         R                  " U5      nUR                  [        R                  S5      $ )N/)r<  r=  r]   r!   r#   )rC   r"   s     r7   _manifest_normalize"manifest_maker._manifest_normalize0  s'    ++D1||BFFC((r9   c                    U R                   R                  5         U R                   R                   Vs/ s H  oR                  U5      PM     nnSU R                  -  nU R                  [        U R                  U4U5        gs  snf )zW
Write the file list in 'self.filelist' to the manifest file
named by 'self.manifest'.
zwriting manifest file '%s'N)r   r9  r  r]  r   executer   )rC   r   r  r   s       r7   rQ  manifest_maker.write_manifest4  sl    
 	 7;mm6I6IJ6I))!,6IJ*T]]:Z$--!7= Ks   Bc                 ^    U R                  U5      (       d  [        R                  " X5        g g r>   )_should_suppress_warningr   r   )rC   r   s     r7   r   manifest_maker.warn@  s$    ,,S11JJt! 2r9   c                 0    [         R                  " SU 5      $ )z+
suppress missing-file warnings from sdist
zstandard file .*not found)r$   r  )r   s    r7   rc  'manifest_maker._should_suppress_warningD  s    
 xx4c::r9   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.pyrp   )r   rR  r   r1  rS  r   r8  r   r  r!   r"   r   read_manifestget_finalized_commandr   rp   )rC   rcfilesei_cmds      r7   rR  manifest_maker.add_defaultsK  s    4 T]]+T]]+|~&MM  )WW^^DMM** 77>>*%% MM  ,++J7FOO,r9   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')r@   r   license_filesr   r   r   r  )rC   rn  lfs      r7   rU   manifest_maker.add_license_files]  sI    ))22@@FBBHH/4  ]+r9   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)r   r@   r   debugr   r  )rC   
referencedrfs      r7   rV  $manifest_maker._add_referenced_filesc  sB    T..0CRH
BII=rB Z(r9   c                 h   U R                  S5      nU R                  R                  5       nU R                  R	                  UR
                  5        U R                  R	                  U5        [        R                  " [        R                  5      nU R                  R                  SU-   S-   U-   SS9  g )Nbuildz(^|z)(RCS|CVS|\.svn)T)is_regex)ri  r@   get_fullnamer   r   
build_baser$   r%   r!   r#   exclude_pattern)rC   rx  base_dirr#   s       r7   rW  manifest_maker.prune_file_listk  s    **73$$113E,,-H%ii%%SL..4t 	& 	
r9   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)hasattrr  r   emitget_data_files)rC   build_pys     r7   _safe_data_filesmanifest_maker._safe_data_filesu  sM     8>??;;==$))N 8	
 &&((r9   )r   rL  r   rK  r   rJ  N)rg   rh   ri   rj   rS  r}   r   r   r]  rQ  r   staticmethodrc  rR  rU  rV  rW  r  rn   rf   r9   r7   r   r     sR    H))
>" ; ;-$,)
)r9   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      r7   r   r     sF     yy"H w'H	h		 
		s   A


Ac                    [         R                  " SU5        U R                  (       d  U R                  R                  nU R
                  UR                  sUl        nU R                  UR                  sUl        n UR                  " U R                  5        XTsUl        Ul        [        U R                  SS 5      n[        R                  " U R                  U5        g g ! XTsUl        Ul        f = f)Nz
writing %szip_safe)r   r   r   r@   r   r{   rQ   rz   rD   write_pkg_inforp   r   r   write_safety_flag)cmdbasenamer   r   oldveroldnamesafes          r7   r  r    s    HH\8$;;##,,#&??H4D4D &!$x}}w	> ##CLL1.5+HM8+s''T:##CLL$7  /6+HM8+s   <C   C0c                     g)aR  
Unused: left to avoid errors when updating (from source) from <= 67.8.
Old installations have a .dist-info directory with the entry-point
``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
This may trigger errors when running the first egg_info in build_meta.
TODO: Remove this function in a version sufficiently > 68.
Nrf   r  r  r   s      r7   warn_depends_obsoleter    s    r9   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   fromkeysr@   iter_distribution_namesr    r   r   sorted)r  r  r   kpkgss        r7   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      r7   overwrite_argr    s    cXt,r9   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"   splitextr   r@   r   r   )r  r  r   r   argnamer   s         r7   r  r    sX    ggx(+GC$$gt4E		% 4'W=r9   c                     [         R                  " U R                  R                  5      n[         R                  " U5      nU R                  SX$S5        g )Nzentry pointsT)r	   r   r@   r   renderr   )r  r  r   epsdefns        r7   write_entriesr    s@    


S--::
;C$D^XTBr9   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   )rz   r{   r   r   rD   rQ   eggs          r7   r   r     sV    ,,X6D//<GF!G9C
 6h7
8C8*~Jr9   c                       \ rS rSrSrSrg)EggInfoDeprecationWarningi  z?Deprecated behavior warning for EggInfo, bypassing suppression.rf   N)rg   rh   ri   rj   __doc__rn   rf   r9   r7   r  r    s    Ir9   r  r   )NN)9r  distutils.filelistr   	_FileListdistutils.errorsr   distutils.utilr   r   r   r   r!   r$   r@  rb   r   
_importlibr   r   r	   r
   r   
setuptoolsr   setuptools.command.sdistr   r   setuptools.command.setoptr   setuptools.commandr   setuptools.unicode_utilsr<  setuptools.globr   setuptools.externr   warningsr   formatversion_infor   r8   r;   rp   r   r   r  r  write_requirementswrite_setup_requirementsr  r  r  r  r   r  rf   r9   r7   <module>r     s   < 5 3 '     	 	 
   ! ,   * 1 1 ( 0   ' 3 >>3++,P;f, ,^c$z7 c$LEBy EBPv)U v)r
8& "44 '@@ P->CJ < Jr9   