
    ϶vge                     D   d 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j)        j*         dej)        j+         Z,d Z- G d d          Z. G d de.e          Z/ G d de&          Z% G d de          Z0d*dZ1d*dZ2d*d Z3ej4        Z4ej5        Z5d*d!Z6d*d"Z7d+d$e8ddfd%Z9d*d&Z:d,d'Z; G d( d)e          Z<dS )-zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents    N)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 ]f\  }}|t          |          dz
  k    }|dk    r|r|dz  }n|d|d|d	z  }7d
}t          |          }	||	k     r||         }
|
dk    r	||dz   z  }n|
dk    r||z  }n|
dk    r|dz   }||	k     r||         dk    r|dz   }||	k     r||         dk    r|dz   }||	k     r#||         dk    r|dz   }||	k     r||         dk    ||	k    r|t	          j        |
          z  }na||dz   |         }d}|d
         dk    rd}|dd         }|t	          j        |          z  }|d|dz  }|}n|t	          j        |
          z  }|dz  }||	k     |s||z  }h|dz  }t	          j        |t          j	        t          j
        z            S )z
    Translate a file path glob like '*.txt' in to a regular expression.
    This differs from fnmatch.translate which allows wildcards to match
    directory separators. It also knows about '**/' which matches any number of
    directories.
     z[^]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                 X/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/command/egg_info.pytranslate_patternr9   &   s    C TZ$$F
)BF

CCCC!Jf%% > >5#f++/)
 D== 8t zzz33377 JJ	)mm8Ds{{zC''z!a%Y&&5>S+@+@%kGY&&5>S+@+@%kG 	))eGn.C.C%kG 	))eGn.C.C i'' 29T??*CC "!a%'/2E!#J Qx3%(
 %abb	")E"2"22JCZZZ11C  AAry&FAU )mmZ  	3JC5LC:c	!9::::    c                   v    e Zd ZdZdZed             Zd Zd Zde	de
fdZde	fdZde	fd	Z ee          ZdS )

InfoCommonNc                 X    t          j        | j                                                  S N)r   	safe_namedistributionget_nameselfs    r8   namezInfoCommon.name}   s"    '(9(B(B(D(DEEEr:   c                     |                      | j                                                  }t          j        |          S r>   )
_maybe_tagr@   get_versionr   safe_version)rC   taggeds     r8   tagged_versionzInfoCommon.tagged_version   s3    !2!>!>!@!@AA*6222r:   c                 R    | j         r|                     |          r|n	|| j         z   S )z
        egg_info may be called more than once for a distribution,
        in which case the version string already contains all tags.
        )vtags_already_taggedrC   versions     r8   rF   zInfoCommon._maybe_tag   s7     z&"227;;&GG4:%	
r:   rO   returnc                     |                     | j                  p&|                     |                                           S r>   )endswithrL   
_safe_tagsrN   s     r8   rM   zInfoCommon._already_tagged   s7     
++Rw/?/?@Q@Q/R/RRr:   c                     	 t          j        d| j                   dd          S # t          j        j        $ r0 t          j        | j                            dd                    cY S w xY w)N0r    r   )r   rH   rL   	packagingrO   InvalidVersionr?   replacerB   s    r8   rS   zInfoCommon._safe_tags   s{    	J!./?4:/?/?@@DD / 	J 	J 	J!+DJ,>,>sC,H,HIIIII	Js   #& AA*)A*c                 h    d}| j         r
|| j         z  }| j        r|t          j        d          z  }|S )Nr   z%Y%m%d)	tag_buildtag_datetimestrftimerN   s     r8   tagszInfoCommon.tags   s@    > 	&t~%G= 	/t}X...Gr:   )__name__
__module____qualname__r[   r\   propertyrD   rJ   rF   strboolrM   rS   r_   rL    r:   r8   r<   r<   y   s        IHF F XF3 3 3	
 	
 	
Ss St S S S S
JC J J J Jc     HTNNEEEr:   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	             Z	dd
ZddZedfdZddeddfdZddZddZddZddZdS )egg_infoz+create a distribution's .egg-info directory))z	egg-base=ezLdirectory containing .egg-info directories [default: top of the source tree])tag-datedz0Add date stamp (e.g. 20050528) to version number)z
tag-build=bz-Specify explicit tag to add to version number)no-dateDz"Don't include date stamp [default]rj   rm   c                 L    d | _         d | _        d | _        d | _        d| _        d S )NF)egg_baseegg_namerh   egg_versionignore_egg_info_in_manifestrB   s    r8   initialize_optionszegg_info.initialize_options   s-    +0(((r:   rP   Nc                     d S r>   rf   rB   s    r8   tag_svn_revisionzegg_info.tag_svn_revision       r:   c                     d S r>   rf   )rC   values     r8   rv   zegg_info.tag_svn_revision   rw   r:   c                     t          |                                 d          }t          |t          |                     dS )z
        Materialize the value of date into the
        build tag. Install build keys in a deterministic order
        to avoid arbitrary reordering on subsequent builds.
        r   )r[   r\   )rh   N)dictr_   r   )rC   filenamerh   s      r8   save_version_infozegg_info.save_version_info   s?     $))++:::HdH55566666r:   c                 Z   | j         | _        |                                 | _        t          j                            | j                  }	 t          |t          j        j                  }|rdnd}t          j        	                    || j        | j        fz             nB# t          $ r5}t          j                            d| j        d| j                  |d }~ww xY w| j        3| j        j        }|pi                     dt$          j                  | _        |                     d           t+          j        | j                  dz   | _        | j        t$          j        k    r/t$          j                            | j        | j                  | _        | j        | j        j        _        d S )Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: -r   rp   	.egg-info)rD   rq   rJ   rr   rW   rO   Version
isinstancerequirementsRequirement
ValueError	distutilserrorsDistutilsOptionErrorrp   r@   package_dirgetr"   curdirensure_dirnamer   filename_componentrh   r#   joinr   )rC   parsed_version
is_versionspecri   dirss         r8   finalize_optionszegg_info.finalize_options   s   
 	..00"*2243CDD	#NI4E4MNNJ)888yD"..tt}dFV6W/WXXXX 	 	 	"777===$"2"24  	 = $0D!ZR,,R;;DMJ'''&9$-HH;V=BI%%GLLFFDM
 .2-="***s   AB 
C)0CCc                 :    t          | j        | j        ||          S )0Compute filename of the output egg. Private API.)_egg_basenamerq   rr   )rC   
py_versionplatforms      r8   _get_egg_basenamezegg_info._get_egg_basename   s    T]D,<j(SSSr:   Fforcec                     |r|                      |||           dS t          j                            |          r3||st	          j        d||           dS |                     |           dS dS )a  Write `data` to `filename` or delete if empty

        If `data` is non-empty, this routine is the same as ``write_file()``.
        If `data` is empty but not ``None``, this is the same as calling
        ``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
        unless `filename` exists, in which case a warning is issued about the
        orphaned file (if `force` is false), or deleted (if `force` is true).
        Nz$%s not set in setup(), but %s exists)
write_filer"   r#   existsr   warndelete_file)rC   whatr|   datar   s        r8   write_or_delete_filezegg_info.write_or_delete_file   s      	+OOD(D11111W^^H%% 	+|E|?xPPP  *****	+ 	+r:   c                     t          j        d||           |                    d          }| j        s;t	          |d          }|                    |           |                                 dS dS )zWrite `data` to `filename` (if not a dry run) after announcing it

        `what` is used in a log message to identify what is being written
        to the file.
        zwriting %s to %sutf-8wbN)r   infoencodedry_runopenwriteclose)rC   r   r|   r   fs        r8   r   zegg_info.write_file  sm     	#T8444{{7##| 	Xt$$AGGDMMMGGIIIII	 	r:   c                 j    t          j        d|           | j        st          j        |           dS dS )z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r   r   r"   unlink)rC   r|   s     r8   r   zegg_info.delete_file  s>    )))| 	 Ih	  	 r:   c           	         t          t          j        d                    }|                     | j                   	 t          j        | j        d            n=# t          $ r0}d| j         d}t          j	        
                    |          |d }~ww xY w|D ]P}|                                } || |j        t
          j                            | j        |j                             Qt
          j                            | j        d          }t
          j                            |          r|                     |           |                                  d S )Nzegg_info.writers)groupz'Cannot update time stamp of directory ''znative_libs.txt)listr   entry_pointsmkpathrh   r"   utimeOSErrorr   r   DistutilsFileErrorloadrD   r#   r   r   r   find_sources)rC   writersri   msgepwriternls          r8   runzegg_info.run%  sH    x,3EFFFGGDM"""	BHT]D)))) 	B 	B 	BLDMLLLC"55c::A	B  	H 	HBWWYYFF4"',,t}bg"F"FGGGG W\\$-):;;7>>" 	!R   s   A 
B#+BBc                     t           j                            | j        d          }t	          | j                  }| j        |_        ||_        |	                                 |j
        | _
        dS )z"Generate SOURCES.txt manifest filezSOURCES.txtN)r"   r#   r   rh   manifest_makerr@   rs   ignore_egg_info_dirmanifestr   filelist)rC   manifest_filenamemms      r8   r   zegg_info.find_sources;  sV    GLLFFD-..!%!A'
r:   rP   NF)r`   ra   rb   descriptionuser_optionsboolean_optionsnegative_optrt   rc   rv   setterr}   r   PY_MAJORr   re   r   r   r   r   r   rf   r:   r8   rh   rh      sM       ?K
 
 
L "lO:L1 1 1    X   
	7 	7 	7 	7> > > >B ,4d T T T T+ + +QU + + + +$             ,$ $ $ $ $ $r:   rh   c                        e Zd Z	 ddeddf 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   NFr   rP   c                 Z    t                                          ||           || _        d S r>   )super__init__r   )rC   r   debug_printr   	__class__s       r8   r   zFileList.__init__H  s-     	{+++#6   r:   c           	      f   |                      |          \  }}}}| j        | j        | j        | j        t          j        | j        |          t          j        | j        |          | j	        | j
        d}dddddddd	d}	 ||         }n&# t          $ r d
|d|}	t          |	          d w xY w|                    d          }
|dv r|g}|
r|fnd}||         }|                     d                    |g|
r|gng z   |z                        |D ] } ||          st!          j        ||g|R   !d S )N)includeexcludezglobal-includezglobal-excludezrecursive-includezrecursive-excludegraftprunez%warning: no files found matching '%s'z9warning: no previously-included files found matching '%s'z>warning: no files found matching '%s' anywhere in distributionzRwarning: no previously-included files matching '%s' found anywhere in distributionz:warning: no files found matching '%s' under directory '%s'zNwarning: no previously-included files matching '%s' found under directory '%s'z+warning: no directories found matching '%s'z6no previously-included directories found matching '%s'z$Invalid MANIFEST.in: unknown action z in z
recursive->   r   r   rf   rV   )_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                 r8   process_template_linezFileList.process_template_lineN  s    04/H/H/N/N,3 ||"1"1!*!2&" " "+!2&" " ZZ+
 +

" ?SP6 M2 CM%
 
*	8'/NN 	8 	8 	8OOOtOOC(--47	8 %//=='''#}H#6>#B6?HH%8@SEEbAHL 	
 	
 	

   	= 	=G!>'** =7<^<<<<	= 	=s    B	 	#B,c                     d}t          t          | j                  dz
  dd          D ]E} || j        |                   r-|                     d| j        |         z              | j        |= d}F|S )z
        Remove all files from the file list that match the predicate.
        Return True if any matching files were removed
        Fr   z
 removing T)ranger(   filesr   )rC   	predicatefoundr2   s       r8   _remove_fileszFileList._remove_files  s|    
 s4:*B33 	 	AyA''   
1!=>>>JqMr:   c                 |    d t          |          D             }|                     |           t          |          S )z#Include files that match 'pattern'.c                 P    g | ]#}t           j                            |          !|$S rf   r"   r#   isdir.0r   s     r8   
<listcomp>z$FileList.include.<locals>.<listcomp>  s+    BBBqq1A1ABBBBr:   r	   extendre   )rC   r   r   s      r8   r   zFileList.include  s9    BBDMMBBBEE{{r:   c                 T    t          |          }|                     |j                  S )z#Exclude files that match 'pattern'.)r9   r   matchrC   r   r  s      r8   r   zFileList.exclude  s%    !'**!!%+...r:   c                     t           j                            |d|          }d t          |d          D             }|                     |           t          |          S )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r   c                 P    g | ]#}t           j                            |          !|$S rf   r   r   s     r8   r   z.FileList.recursive_include.<locals>.<listcomp>  s,    WWWqbgmmTUFVFVWWWWr:   T)	recursive)r"   r#   r   r	   r   re   )rC   r   r   full_patternr   s        r8   r   zFileList.recursive_include  sY     w||Cw77WWD>>>WWWEE{{r:   c                     t          t          j                            |d|                    }|                     |j                  S )zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r   r9   r"   r#   r   r   r  )rC   r   r   r  s       r8   r   zFileList.recursive_exclude  s9     ""',,sD'"B"BCC!!%+...r:   c                 |    d t          |          D             }|                     |           t          |          S )zInclude all files from 'dir/'.c                 V    g | ]&}t           j                            |          D ]}|'S rf   )r   r   findall)r   	match_diritems      r8   r   z"FileList.graft.<locals>.<listcomp>  sP     
 
 
!*229==
 
  
 
 
 
r:   r   )rC   r   r   s      r8   r   zFileList.graft  sF    
 
!#YY
 
 

 	EE{{r:   c                     t          t          j                            |d                    }|                     |j                  S )zFilter out files from 'dir/'.r   r  )rC   r   r  s      r8   r   zFileList.prune  s5    !"',,sD"9"9::!!%+...r:   c                    | j         |                                  t          t          j                            d|                    fd| j         D             }|                     |           t          |          S )z
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        Nr   c                 >    g | ]}                     |          |S rf   )r  )r   r   r  s     r8   r   z+FileList.global_include.<locals>.<listcomp>  s(    <<<qU[[^^<<<<r:   )allfilesr  r9   r"   r#   r   r   re   )rC   r   r   r  s      @r8   r   zFileList.global_include  sp    
 = LLNNN!"',,tW"="=>><<<<DM<<<EE{{r:   c                     t          t          j                            d|                    }|                     |j                  S )zD
        Exclude all files anywhere that match the pattern.
        r   r  r  s      r8   r   zFileList.global_exclude  s7     ""',,tW"="=>>!!%+...r:   c                     |                     d          r
|d d         }t          |          }|                     |          r| j                            |           d S d S )Nr   )rR   r   
_safe_pathr   append)rC   r  r#   s      r8   r  zFileList.append  sj    == 	9DD!!??4   	$Jd#####	$ 	$r:   c                 `    | j                             t          | j        |                     d S r>   )r   r   filterr  )rC   pathss     r8   r   zFileList.extend  s*    
&%8899999r:   c                 ^    t          t          | j        | j                            | _        dS )z
        Replace self.files with only safe paths

        Because some owners of FileList manipulate the underlying
        ``files`` attribute directly, this method must be called to
        repair those paths.
        N)r   r  r  r   rB   s    r8   _repairzFileList._repair  s%     &$*==>>


r:   c                    d}t          j        |          }|t          j        d|z             dS t          j        |d          }|t          j        ||d           dS 	 d|v pd|v }| j        r|rdS t          j                            |          st          j                            |          rdS d S # t          $ r+ t          j        ||t          j                               Y d S w xY w)Nz!'%s' not %s encodable -- skippingz''%s' in unexpected encoding -- skippingFr   r   s	   .egg-infoT)unicode_utilsfilesys_decoder   r   
try_encoder   r"   r#   r   UnicodeEncodeErrorsysgetfilesystemencoding)rC   r#   enc_warnu_path	utf8_pathis_egg_infos         r8   r  zFileList._safe_path  s   6 -d33>H>EFFF5 ",VW==	HXtW---5
	B%/L<93LK' K uw~~f%% 	)B)B t  " 	B 	B 	BHXtS%>%@%@AAAAAA	Bs   "B7 5>B7 71C,+C,)NNFr   )r`   ra   rb   re   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  __classcell__)r   s   @r8   r   r   E  sF        HM7 7@D7	7 7 7 7 7 7D= D= D= D=L    / / /
  / / /  / / /

 
 
/ / /$ $ $ $: : : :? ? ?B B B B B B Br:   r   c                   r    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dS )r   zMANIFEST.inrP   Nc                 L    d| _         d| _        d| _        d| _        d| _        d S )NTF)use_defaultsr   manifest_onlyforce_manifestr   rB   s    r8   rt   z!manifest_maker.initialize_options  s/     
!"#(   r:   c                     d S r>   rf   rB   s    r8   r   zmanifest_maker.finalize_options  s    r:   c                 F   t          | j                  | _        t          j                            | j                  s|                                  |                                  t          j                            | j	                  r| 
                                 |                                  |                                  |                                  | j                                         | j                                         |                                  d S )N)r   )r   r   r   r"   r#   r   r   write_manifestadd_defaultstemplateread_templateadd_license_files_add_referenced_filesprune_file_listsortremove_duplicatesrB   s    r8   r   zmanifest_maker.run  s     T5MNNNw~~dm,, 	"!!!7>>$-(( 	!      ""$$$'')))r:   c                 j    t          j        |          }|                    t          j        d          S )N/)r  r  rY   r"   r$   )rC   r#   s     r8   _manifest_normalizez"manifest_maker._manifest_normalize*  s(    +D11||BFC(((r:   c                       j                                           fd j         j        D             }d j        z  }                     t
           j        |f|           dS )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c                 :    g | ]}                     |          S rf   )r:  )r   r   rC   s     r8   r   z1manifest_maker.write_manifest.<locals>.<listcomp>6  s'    JJJ))!,,JJJr:   zwriting manifest file '%s'N)r   r  r   r   executer   )rC   r   r   s   `  r8   r/  zmanifest_maker.write_manifest.  si    
 	 KJJJdm6IJJJ*T]:Z$-!7=====r:   c                 ^    |                      |          st          j        | |           d S d S r>   )_should_suppress_warningr   r   )rC   r   s     r8   r   zmanifest_maker.warn:  s:    ,,S11 	"JtS!!!!!	" 	"r:   c                 ,    t          j        d|           S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r%   r  )r   s    r8   r?  z'manifest_maker._should_suppress_warning>  s    
 x4c:::r:   c                 d   t          j        |            | j                            | j                   | j                            | j                   t          t                                }|r| j                            |           n8t          j
                            | j                  r|                                  t          j
                            d          r| j                            d           |                     d          }| j                            |j                   d S )Nzsetup.pyrh   )r   r0  r   r  r1  r   r   r   r   r"   r#   r   read_manifestget_finalized_commandr   rh   )rC   rcfilesei_cmds      r8   r0  zmanifest_maker.add_defaultsE  s    4   T]+++T]+++|~~&& 	!M  ))))W^^DM** 	!   7>>*%% 	- M  ,,,++J77FO,,,,,r:   c                     | j         j        j        pg }|D ]}t          j        d|           | j                            |           d S )Nzadding license file '%s')r@   r   license_filesr   r   r   r   )rC   rG  lfs      r8   r3  z manifest_maker.add_license_filesW  sV    )2@FB 	5 	5BH/4444]+++++r:   c                     t          | j        dg           }|D ]}t          j        d|           | j                            |           dS )zGAdd files referenced by the config (e.g. `file:` directive) to filelist_referenced_filesz%adding file referenced by config '%s'N)getattrr@   r   debugr   r   )rC   
referencedrfs      r8   r4  z$manifest_maker._add_referenced_files]  sZ    T.0CRHH
 	C 	CBI=rBBBBZ(((((r:   c                     t          |d          r|                                S t          j        ddd           |                                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)hasattrrP  r   emitget_data_files)rC   build_pys     r8   _safe_data_fileszmanifest_maker._safe_data_filese  sd     8>?? 	>;;===$)N 8	
 	
 	
 	
 &&(((r:   r   )r`   ra   rb   r1  rt   r   r   r:  r/  r   staticmethodr?  r0  r3  r4  rV  rf   r:   r8   r   r     s        H) ) ) )      ) ) )
> 
> 
> 
>" " " " ; ; \;- - - -$, , , ,) ) )) ) ) ) )r:   r   rP   c                     d                     |          }|                    d          }t          | d          5 }|                    |           ddd           dS # 1 swxY w Y   dS )z{Create a file with the specified name and write 'contents' (a
    sequence of strings without line terminators) to it.
    
r   r   N)r   r   r   r   )r|   contentsr   s      r8   r   r   ~  s     yy""H w''H	h		 	                 s   AA"%A"c                 ~   t          j        d|           | j        s| j        j        }| j        |j        c|_        }| j        |j        c|_        }	  |j	        | j
                   ||c|_        |_        n# ||c|_        |_        w xY wt          | j        dd           }t          j        | j
        |           d S d S )Nz
writing %szip_safe)r   r   r   r@   r   rr   rO   rq   rD   write_pkg_inforh   rK  r   write_safety_flag)cmdbasenamer|   r   oldveroldnamesafes          r8   r]  r]    s    H\8$$$; 8#,#&?H4D &!$x}w	> $H#CL111.5v+HM8++gv+HM8+====s'T::#CL$777778 8s   A7 7Bc                     dS )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.
    Nrf   r_  r`  r|   s      r8   warn_depends_obsoleterf    s      r:   c           	          t                               d | j                                        D                       }|                     d|d                    t          |                    dz              d S )Nc                 F    g | ]}|                     d d          d         S )r   r   r   )r!   )r   ks     r8   r   z(write_toplevel_names.<locals>.<listcomp>  s6        Q  r:   ztop-level namesrY  )r{   fromkeysr@   iter_distribution_namesr   r   sorted)r_  r`  r|   pkgss       r8   write_toplevel_namesrn    sv    ==  $'$4$L$L$N$N    D NN$h		&,,0G0G$0NOOOOOr:   c                 *    t          | ||d           d S )NT)	write_argre  s      r8   overwrite_argrq    s    c8Xt,,,,,r:   Fr   c                     t           j                            |          d         }t          | j        |d           }|d                    |          dz   }|                     ||||           d S )Nr   rY  )r"   r#   splitextrK  r@   r   r   )r_  r`  r|   r   argnamery   s         r8   rp  rp    sl    gx((+GC$gt44E		%  4'Whu=====r:   c                     t          j        | j        j                  }t          j        |          }|                     d||d           d S )Nzentry pointsT)r   r   r@   r   renderr   )r_  r`  r|   epsdefns        r8   write_entriesry    sH    

S-:
;
;C$$D^XtTBBBBBr:   c                     t          j        |           }t          j        |          }| d| d|pt           }|r|d| z  }|S )r   r   z-py)r   r   r   )rq   rr   r   r   rD   rO   eggs          r8   r   r     s_    ,X66D/<<G
8
8G
8
8
 6h
8
8C ~8~~Jr:   c                       e Zd ZdZdS )EggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)r`   ra   rb   __doc__rf   r:   r8   r}  r}    s        IIIIr:   r}  r   r   )NN)=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   r9   r<   rh   r   r   r]  rf  write_requirementswrite_setup_requirementsrn  rq  re   rp  ry  r   r}  rf   r:   r8   <module>r     s  < <     				 				 



  $ $ $ $ $ $             0 0 0 0 0 0       ( ( ( ( ( ( 8 8 8 8 8 8 8 8 1 1 1 1 1 1             , , , , , , , , ! ! ! ! ! ! 3 3 3 3 3 3                     3 3 3 3 3 3 4 4 4 4 4 4 ' ' ' ' ' '$??s'7'=??P; P; P;f, , , , , , , ,^Z$ Z$ Z$ Z$ Z$z7 Z$ Z$ Z$zGB GB GB GB GBy GB GB GBTl) l) l) l) l)U l) l) l)^
 
 
 
8 8 8 8&    "4 '@ P P P P- - - -> >d >t > > > >C C C C   J J J J J < J J J J Jr:   