
    ~pi e                    d   d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
Z
ddlZ
ddlZ
ddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ d
dlmZmZ d
dlmZ d
dlm Z  ddlm!Z! ddl"Z#ddl$Z#ddl#m%Z% ddl"m&Z& ddl$m'Z( ddl)m*Z* ejV                  jX                   dejV                  jZ                   Z.d Z/ G d d      Z0 G d de0e      Z1 G d de(      Z' G d de      Z2d(dZ3d(dZ4d(d Z5e!jl                  Z6e!jn                  Z7d(d!Z8d(d"Z9d)d*d#Z:d(d$Z;d+d%Z< G d& d'e       Z=y),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                   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[^]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                 ]/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/setuptools/command/egg_info.pytranslate_patternr:   (   s?    C TZZ$F
))BFF
CcU!Jf% >5#f+/)
 D=t ZL#b11 J	)m8Ds{zC''z!a%Y&5>S+@%kGY&5>S+@%kG 	)eGn.C%kG 	)eGn.C i' 299T?*C "!a%'2E!#J Qx3%(
 %ab	"))E"22JQzl!,,C  Aryy&FAU )mZ 3JC}>@ 5LC::c		!9::    c                  X    e Zd ZdZdZed        Zd Zd ZddZ	d	dZ
d	dZ ee      Zy)

InfoCommonNc                \    t        j                  | j                  j                               S N)r   	safe_namedistributionget_nameselfs    r9   namezInfoCommon.name   s"    ''(9(9(B(B(DEEr;   c                ~    | j                  | j                  j                               }t        j                  |      S r?   )
_maybe_tagrA   get_versionr   safe_version)rD   taggeds     r9   tagged_versionzInfoCommon.tagged_version   s0    !2!2!>!>!@A**622r;   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rD   versions     r9   rG   zInfoCommon._maybe_tag   s5     zzd227; 	
 4::%	
r;   c                X    |j                  | j                  | j                         f      S r?   )endswithrM   
_safe_tagsrO   s     r9   rN   zInfoCommon._already_tagged   s%     T__-> ?@@r;   c                    	 t        j                  d| j                         dd  S # t        j                  j
                  $ r2 t        j                  | j                  j                  dd            cY S w xY w)N0r    r   )r   rI   rM   	packagingrP   InvalidVersionr@   replacerC   s    r9   rS   zInfoCommon._safe_tags   sj    	J!..4::,/?@DD  // 	J!++DJJ,>,>sC,HII	Js   $' AA65A6c                    d}| j                   r|| j                   z  }| j                  r|t        j                  d      z  }|S )Nr   z%Y%m%d)	tag_buildtag_datetimestrftimerO   s     r9   tagszInfoCommon.tags   s;    >>t~~%G==t}}X..Gr;   )rP   strreturnbool)ra   r`   )__name__
__module____qualname__r[   r\   propertyrE   rK   rG   rN   rS   r_   rM    r;   r9   r=   r=   {   sF    IHF F3	
A
J TNEr;   r=   c                      e Zd ZdZg dZdgZddiZd Zedd       Z	e	j                  dd       Z	ddZdd	Zed
fdZdddZddZddZddZddZ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]rk   rn   c                J    d | _         d | _        d | _        d | _        d| _        y )NF)egg_baseegg_nameri   egg_versionignore_egg_info_in_manifestrC   s    r9   initialize_optionszegg_info.initialize_options   s'    +0(r;   c                     y r?   rg   rC   s    r9   tag_svn_revisionzegg_info.tag_svn_revision       r;   c                     y r?   rg   )rD   values     r9   rw   zegg_info.tag_svn_revision   rx   r;   c                f    t        | j                         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.
        r   )r[   r\   )ri   N)dictr_   r	   )rD   filenameri   s      r9   save_version_infozegg_info.save_version_info   s%     $))+:HdH56r;   c                   | j                   | _        | j                         | _        t        j
                  j                  | j                        }	 t        |t        j
                  j                        }|rdnd}t        j                  j                  || j                  | j                  fz         | j                  ?| j                  j                   }|xs i j#                  dt$        j&                        | _        | j)                  d       t+        j,                  | j                        dz   | _        | j                  t$        j&                  k7  r9t$        j0                  j3                  | j                  | j.                        | _        | j                  | j                  j4                  _        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   rq   	.egg-info)rE   rr   rK   rs   rW   rP   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorrq   rA   package_dirgetr#   curdirensure_dirnamer   filename_componentri   r$   joinr   )rD   parsed_version
is_versionspecrj   dirss         r9   finalize_optionszegg_info.finalize_options   s   
 		..0"**2243C3CD	#NI4E4E4M4MNJ)8yD""..tt}}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"F2 2	G:;:G55G:Nc                F    t        | j                  | j                  ||      S )0Compute filename of the output egg. Private API.)_egg_basenamerr   rs   )rD   
py_versionplatforms      r9   _get_egg_basenamezegg_info._get_egg_basename   s    T]]D,<,<j(SSr;   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)rD   whatr}   dataforces        r9   write_or_delete_filezegg_info.write_or_delete_file  sU     OOD(D1WW^^H%|E?xP  * &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)rD   r   r}   r   fs        r9   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)rD   r}   s     r9   r   zegg_info.delete_file   s(    )||IIh r;   c           	        t        t        j                  d            }| j                  | j                         	 t        j                  | j                  d        |D ]X  }|j                         } || |j                  t
        j                  j                  | j                  |j                               Z t
        j                  j                  | j                  d      }t
        j                  j                  |      r| j!                  |       | j#                          y # t        $ r5}d| j                   d}t        j                  j                  |      |d }~ww xY w)Nzegg_info.writers)groupz'Cannot update time stamp of directory ''znative_libs.txt)listr   entry_pointsmkpathri   r#   utimeOSErrorr   r   DistutilsFileErrorloadrE   r$   r   r   r   find_sources)rD   writersrj   msgepwriternls          r9   runzegg_info.run&  s    x,,3EFGDMM"	BHHT]]D)  	HBWWYF4"'',,t}}bgg"FG	H
 WW\\$--):;77>>"R   	B;DMM?!LC""55c:A	Bs    D$ $	E"-0EE"c                    t         j                  j                  | j                  d      }t	        | j
                        }| j                  |_        ||_        |j                          |j                  | _
        y)z"Generate SOURCES.txt manifest filezSOURCES.txtN)r#   r$   r   ri   manifest_makerrA   rt   ignore_egg_info_dirmanifestr   filelist)rD   manifest_filenamemms      r9   r   zegg_info.find_sources<  sT    GGLLFD--.!%!A!A'
r;   )ra   z
int | Nonera   NoneFr   rb   ra   r   )rc   rd   re   descriptionuser_optionsboolean_optionsnegative_optru   rf   rw   setterr~   r   PY_MAJORr   r   r   r   r   r   rg   r;   r9   ri   ri      s    ?K
L "lO:L1    
	7>@ ,4d T+$ ,$r;   ri   c                       e Zd Z	 d	 	 	 d fdZddZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZddZddZd Zd Z xZS )r   c                4    t         |   ||       || _        y r?   )super__init__r   )rD   r   debug_printr   	__class__s       r9   r   zFileList.__init__I  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 d
|d|}	t        |	      d 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$Invalid MANIFEST.in: unknown action z in z
recursive->   r   r   rg   rV   )_parse_template_liner   r   global_includeglobal_exclude	functoolspartialrecursive_includerecursive_excluder   r   KeyErrorr   
startswithr   r   r   r   )rD   lineactionpatternsdirdir_pattern
action_maplog_mapprocess_actionr   action_is_recursiveextra_log_argslog_tmplpatterns                 r9   process_template_linezFileList.process_template_lineO  s    04/H/H/N,3 ||||"11"11!*!2!2&&" "+!2!2&&" ZZZZ+

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

   	=G!'*7<^<	='  	88
$thOC(-47	8s   &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   )rD   	predicatefoundr3   s       r9   _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extendrb   )rD   r   r   r   s       r9   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rD   r   r   s      r9   r   zFileList.exclude  s!    !'*!!%++..r;   c                    t         j                  j                  |d|      }t        |d      D cg c]$  }t         j                  j	                  |      r#|& }}| 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   rb   )rD   r   r   full_patternr   r   s         r9   r   zFileList.recursive_include  s`     ww||Cw7 >WqbggmmTUFVWWEE{ Xs   $A8A8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   )rD   r   r   r   s       r9   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   rb   )rD   r   	match_diritemr   s        r9   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  )rD   r   r   s      r9   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   rb   )rD   r   r   r   r   s        r9   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      r9   r   zFileList.global_exclude  s2     ""'',,tW"=>!!%++..r;   c                    |j                  d      }t        |      }| j                  |      r| j                  j	                  |       y y )N)removesuffixr   
_safe_pathr   append)rD   r  r$   s      r9   r  zFileList.append  s?      &D!??4 JJd# !r;   c                b    | j                   j                  t        | j                  |             y r?   )r   r   filterr  )rD   pathss     r9   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)r   r  r  r   rC   s    r9   _repairzFileList._repair  s     &$**=>
r;   c                   d}t        j                  |      }|t        j                  d| d       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 -- skippingr   z$' in unexpected encoding -- skippingFr   r   s	   .egg-infoT)unicode_utilsfilesys_decoder   r   
try_encoder   r#   r$   r   UnicodeEncodeErrorsysgetfilesystemencoding)rD   r$   enc_warnu_path	utf8_pathis_egg_infos         r9   r  zFileList._safe_path  s    6 --d3>HHqBCD ",,VW=	HHXtW-
	B%/L<93LK''Kww~~f%	)B *C " 	BHHXtS%>%>%@A	Bs   %B> >>B> >2C32C3)NNF)r   rb   ra   r   r   )rc   rd   re   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  __classcell__)r   s   @r9   r   r   F  sh     HM7@D7	7D=L/
//

/$:?Br;   r   c                  j    e Zd ZdZddZddZddZd ZddZddZ	e
d        Zdd	Zdd
Zd Zd Zy)r   zMANIFEST.inc                J    d| _         d| _        d| _        d| _        d| _        y )NTF)use_defaultsr   manifest_onlyforce_manifestr   rC   s    r9   ru   z!manifest_maker.initialize_options  s)     
!"#( r;   c                     y r?   rg   rC   s    r9   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                          | j                          y )N)r   )r   r   r   r#   r$   r   r   write_manifestadd_defaultstemplateread_templateadd_license_files_add_referenced_filesprune_file_listsortremove_duplicatesrC   s    r9   r   zmanifest_maker.run  s     T5M5MNww~~dmm,!77>>$--(  ""$'')r;   c                l    t        j                  |      }|j                  t        j                  d      S )N/)r  r  rY   r#   r%   )rD   r$   s     r9   _manifest_normalizez"manifest_maker._manifest_normalize*  s'    ++D1||BFFC((r;   c                   | j                   j                          | j                   j                  D cg c]  }| j                  |       }}d| j                   d}| 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 'r   N)r   r  r   r5  r   executer   )rD   r   r   r   s       r9   r*  zmanifest_maker.write_manifest.  so    
 	 7;mm6I6IJ))!,JJ'a8Z$--!7= Ks   Bc                T    | j                  |      st        j                  | |       y y r?   )_should_suppress_warningr   r   )rD   r   s     r9   r   zmanifest_maker.warn:  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    r9   r9  z'manifest_maker._should_suppress_warning>  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.pyri   )r   r+  r   r  r,  r   r   r   r   r#   r$   r   read_manifestget_finalized_commandr   ri   )rD   rcfilesei_cmds      r9   r+  zmanifest_maker.add_defaultsE  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')rA   r   license_filesr   r   r   r   )rD   rA  lfs      r9   r.  z manifest_maker.add_license_filesW  sN    ))22@@FB 	5BHH/4	5]+r;   c                    t        | j                  dg       }|D ]  }t        j                  d|        | j                  j                  |       y)zGAdd files referenced by the config (e.g. `file:` directive) to filelist_referenced_filesz%adding file referenced by config '%s'N)getattrrA   r   debugr   r   )rD   
referencedrfs      r9   r/  z$manifest_maker._add_referenced_files]  sI    T..0CRH
 	CBII=rB	CZ(r;   c                    t        |d      r|j                         S t        j                  ddd       |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_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)hasattrrJ  r   emitget_data_files)rD   build_pys     r9   _safe_data_fileszmanifest_maker._safe_data_filese  sJ     8>?;;==$))N 8	
 &&((r;   Nr   )rc   rd   re   r,  ru   r   r   r5  r*  r   staticmethodr9  r+  r.  r/  rP  rg   r;   r9   r   r     sM    H))
>" ; ;-$,))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      r9   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   rA   r   rs   rP   rr   rE   write_pkg_infori   rE  r   write_safety_flag)cmdbasenamer}   r   oldveroldnamesafes          r9   rW  rW    s    HH\8$;;##,,#&??H4D4D &!$x}}w	>#H##CLL1.5v+HM8+s''T:##CLL$7  /6v+HM8+s   6C C+c                     y)aj  
    Unused: left to avoid errors when updating (from source) from <= 67.8.
    Old installations have a .dist-info directory with the entry-point
    ``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
    This may trigger errors when running the first egg_info in build_meta.
    TODO: Remove this function in a version sufficiently > 68.
    Nrg   rY  rZ  r}   s      r9   warn_depends_obsoleter`    s    r;   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 )Nr   r   r   ztop-level namesrS  )r|   fromkeysrA   iter_distribution_namesr"   r   r   sorted)rY  rZ  r}   kpkgss        r9   write_toplevel_namesrg    sk    ==$'$4$4$L$L$N Q D NN$h		&,0G$0NOs   A>c                     t        | ||d       y )NT)	write_argr_  s      r9   overwrite_argrj    s    c8Xt,r;   c                    t         j                  j                  |      d   }t        | j                  |d       }|dj                  |      dz   }| j                  ||||       y )Nr   rS  )r#   r$   splitextrE  rA   r   r   )rY  rZ  r}   r   argnamerz   s         r9   ri  ri    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   rA   r   renderr   )rY  rZ  r}   epsdefns        r9   write_entriesrr    sB    


S--::
;C$D^XtTBr;   c                    t        j                  |       }t        j                  |      }| d| d|xs t         }|r|d| z  }|S )r   r   z-py)r   r   r   )rr   rs   r   r   rE   rP   eggs          r9   r   r     sV    ,,X6D//<GF!G9C
 6h7
8C8*~Jr;   c                      e Zd ZdZy)EggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)rc   rd   re   __doc__rg   r;   r9   rv  rv    s    Ir;   rv  r   r   r   )NN)>rw  
__future__r   r   r#   r&   r  r]   collections.abcr   rW   packaging.requirementspackaging.versionsetuptools.unicode_utilsr  
setuptoolsr   setuptools.commandr   setuptools.command.sdistr   r   setuptools.command.setoptr	   setuptools.globr
   r   r   r   
_importlibr   warningsr   r   distutils.errorsr   distutils.filelistr   r   r   	_FileListdistutils.utilr   version_infomajorminorr   r:   r=   ri   r   r   rW  r`  write_requirementswrite_setup_requirementsrg  rj  ri  rr  r   rv  rg   r;   r9   <module>r     s  < #  	 	 
  $    0  ( 8 1   , ! 3     3 4 '$$%Qs'7'7'='=&>?P;f, ,^Y$z7 Y$xFBy FBRl)U l)^
8" "44 '@@ P->CJ < Jr;   