£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d                 @   s   d dl Z d dlZd dlZd dlmZ yd dlZW n ek
rH   dZY nX d dlT d dlm	Z	m
Z
 d dlmZmZmZ d dlmZ d dlmZ edZd	d
 ZG dd dZG dd dZdd ZdS )    N)message_from_file)*)FancyGetopttranslate_longopt)check_environ	strtoboolrfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c             C   sL   t | trn<t | tsHt| j}d| d| d}ttj| t| } | S )Nz
Warning: 'z' should be a list, got type '')
isinstancestrlisttype__name__r	   ZWARN)valueZ	fieldnametypenamemsg r   3/opt/alt/python37/lib64/python3.7/distutils/dist.py_ensure_list   s    


r   c               @   sl  e Zd ZdddddgZdZddd	d
dddddddddddddddddgZdd eD ZddiZd`d!d"Zd#d$ Z	dad&d'Z
d(d) Zdbd*d+Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d4g fd5d6Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdcdCdDZdddEdFZdedHdIZejfdJdKZdLdM ZdNdO ZdPdQ Z dRdS Z!dTdU Z"dVdW Z#dXdY Z$dZd[ Z%d\d] Z&d^d_ Z'd S )fDistribution)verbosevzrun verbosely (default)   )quietqz!run quietly (turns verbosity off))zdry-runnzdon't actually do anything)helphzshow detailed help message)zno-user-cfgNz-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more)

  setup.py build      will build the package underneath 'build/'
  setup.py install    will install the package
)zhelp-commandsNzlist all available commands)nameNzprint package name)versionVzprint package version)fullnameNzprint <package name>-<version>)authorNzprint the author's name)zauthor-emailNz print the author's email address)
maintainerNzprint the maintainer's name)zmaintainer-emailNz$print the maintainer's email address)contactNz7print the maintainer's name if known, else the author's)zcontact-emailNz@print the maintainer's email address if known, else the author's)urlNzprint the URL for this package)licenseNz print the license of the package)licenceNzalias for --license)descriptionNzprint the package description)zlong-descriptionNz"print the long package description)	platformsNzprint the list of platforms)classifiersNzprint the list of classifiers)keywordsNzprint the list of keywords)providesNz+print the list of packages/modules provided)requiresNz+print the list of packages/modules required)	obsoletesNz0print the list of packages/modules made obsoletec             C   s   g | ]}t |d  qS )r   )r   ).0xr   r   r   
<listcomp>   s    zDistribution.<listcomp>r   r   Nc             C   sl  d| _ d| _d| _x| jD ]}t| |d qW t | _x,| jjD ] }d| }t| |t| j| q@W i | _	d | _
d | _d | _i | _g | _d | _i | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d | _d| _i | _i | _|r|d}|d k	rH|d= xD| D ]8\}}|  |}x"| D ]\}	}
d|
f||	< q(W qW d|kr|d |d< |d= d	}t!d k	r~t!"| nt#j$%|d
  x| D ]\}}
t&| jd| rt| jd| |
 nNt&| j|rt| j||
 n0t&| |r t| ||
 ndt'| }t!"| qW d| _(| jd k	r`x0| jD ]&}|)dsHP |dkr6d| _(P q6W | *  d S )Nr   r   get_ optionszsetup scriptr)   r(   z:'licence' distribution option is deprecated; use 'license'
Zset_zUnknown distribution option: %sT-z--no-user-cfgF)+r   dry_runr   display_option_namessetattrDistributionMetadatametadata_METHOD_BASENAMESgetattrcmdclasscommand_packagesscript_namescript_argscommand_optionsZ
dist_filespackagesZpackage_dataZpackage_dir
py_modules	librariesheadersext_modulesZext_packageZinclude_dirsZ
extra_pathscripts
data_filesZpasswordcommand_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrreprwant_user_cfg
startswithfinalize_options)selfZattrsattrbasenameZmethod_namer6   commandZcmd_optionsopt_dictoptvalr   keyargr   r   r   __init__   s~    





zDistribution.__init__c             C   s&   | j |}|d kr"i  }| j |< |S )N)rD   rN   )r[   r^   dictr   r   r   rP   &  s    zDistribution.get_option_dictr5   c       	      C   s   ddl m} |d kr"t| j }|d k	r@| ||  |d }|sV| |d  d S xt|D ]l}| j|}|d kr| |d|   q\| |d|   ||}x$|dD ]}| |d |  qW q\W d S )Nr   )pformatz  zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:r7   )Zpprintrf   sortedrD   keysannouncerN   split)	r[   headercommandsindentrf   Zcmd_namer_   outliner   r   r   dump_option_dicts1  s&    
zDistribution.dump_option_dictsc             C   s   g }t   tjtjd j}tj|d}tj|rB|	| tj
dkrRd}nd}| jrtjtjd|}tj|r|	| d}tj|r|	| tr| dd	|  |S )
N	distutilszdistutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z	setup.cfgzusing config files: %sz, )r   ospathdirnamerS   modules__file__joinisfileappendr    rX   
expanduserr
   ri   )r[   filesZsys_dirZsys_fileZuser_filenameZ	user_fileZ
local_filer   r   r   find_config_filesM  s&    



zDistribution.find_config_filesc             C   s  ddl m} tjtjkr8ddddddd	d
dddddg}ng }t|}|d krT|  }trb| d | }x|D ]}tr| d|  |	| xf|
 D ]Z}||}| |}x@|D ]8}	|	dkr|	|kr|||	}
|	dd}	||
f||	< qW qW |  qnW d| jkrx| jd  D ]\}	\}}
| j|	}yF|rRt| |t|
  n(|	dkrnt| |	t|
 nt| |	|
 W n, tk
r } zt|W d d }~X Y nX qW d S )Nr   )ConfigParserzinstall-basezinstall-platbasezinstall-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptszinstall-dataprefixzexec-prefixhomeuserrootz"Distribution.parse_config_files():z  reading %sr   r8   _global)r   r9   )Zconfigparserr   rS   r   base_prefix	frozensetr~   r
   ri   readZsectionsr6   rP   rN   replacerd   rD   rO   negative_optr;   r   
ValueErrorDistutilsOptionError)r[   	filenamesr   Zignore_optionsparserfilenamesectionr6   r_   r`   ra   srcaliasr   r   r   r   parse_config_files}  sJ    






zDistribution.parse_config_filesc             C   s   |   }g | _t|| j }|| j |ddi |j| j| d}|	 }t
| j | |rhd S x |r| ||}|d krjd S qjW | jr| j|t| jdk| jd d S | jstddS )Nr)   r(   )argsobjectr   )display_optionsrl   zno commands suppliedT)_get_toplevel_optionsrl   r   r   set_negative_aliasesr   Zset_aliasesgetoptrC   Zget_option_orderr	   Zset_verbosityr   handle_display_options_parse_command_optsr   
_show_helplenDistutilsArgError)r[   Ztoplevel_optionsr   r   option_orderr   r   r   parse_command_line  s,    	

zDistribution.parse_command_linec             C   s   | j dg S )N)zcommand-packages=Nz0list of packages that provide distutils commands)global_options)r[   r   r   r   r     s    z"Distribution._get_toplevel_optionsc          
   C   s  ddl m} |d }t|s*td| | j| y| |}W n* tk
rn } zt	|W d d }~X Y nX t
||std| t|drt|jtsd}t|| | j}t|dr| }||j t|drt|jtrt|j}ng }|| j|j |  || ||d	d  \}}	t|	d
rV|	jrV| j|d|gd d S t|drt|jtrd}
xP|jD ]F\}}}}t|	||r|d	}
t|r|  ntd||f q|W |
rd S | |}x&t|	 D ]\}}d|f||< qW |S )Nr   )Commandzinvalid command name '%s'z&command class %s must subclass Commanduser_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r   help_optionsr   r   )r   rl   zYinvalid help function %r for help option '%s': must be a callable object (function, etc.)zcommand line) distutils.cmdr   
command_rematch
SystemExitrl   r{   get_command_classDistutilsModuleErrorr   
issubclassZDistutilsClassErrorrV   r   r   r   r   copyupdater   fix_help_optionsset_option_tabler   r   r   r   r   Zget_attr_namecallablerP   varsrO   )r[   r   r   r   r^   Z	cmd_classr   r   r   ZoptsZhelp_option_foundZhelp_optionZshortZdescfuncr_   r    r   r   r   r   r     sb    










z Distribution._parse_command_optsc             C   sT   xNdD ]F}t | j|}|d kr qt|trdd |dD }t| j|| qW d S )N)r-   r+   c             S   s   g | ]}|  qS r   )strip)r1   Zelmr   r   r   r3   j  s    z1Distribution.finalize_options.<locals>.<listcomp>,)r?   r=   r   r   rj   r;   )r[   r\   r   r   r   r   rZ   `  s    

zDistribution.finalize_optionsr   c       
      C   s  ddl m} ddlm} |rR|r*|  }n| j}|| || jd  t	d |rt|| j
 |d t	d x| jD ]z}t|trt||r|}	n
| |}	t|	drt|	jtr||	jt|	j  n||	j |d|	j  t	d q|W t	|| j d S )	Nr   )	gen_usage)r   z
Global options:r5   zKInformation display options (just display information, ignore any commands)r   zOptions for '%s' command:)distutils.corer   r   r   r   r   r   
print_helpcommon_usageprintr   rl   r   r   r   r   rV   r   r   r   r   r   rB   )
r[   r   r   r   rl   r   r   r6   r^   klassr   r   r   r   m  s4    



zDistribution._show_helpc       	      C   s   ddl m} | jr4|   td t|| j dS d}i }x| jD ]}d||d < qDW xt|D ]l\}}|r^||r^t|}t	| j
d|  }|dkrtd| n |dkrtd	| nt| d}q^W |S )
Nr   )r   r5   r   r4   )r-   r+   r   )r,   r.   r/   r0   r7   )r   r   Zhelp_commandsprint_commandsr   rB   r   rN   r   r?   r=   ry   )	r[   r   r   Zany_display_optionsZis_display_optionoptionr`   ra   r   r   r   r   r     s*    z#Distribution.handle_display_optionsc          	   C   sn   t |d  x\|D ]T}| j|}|s0| |}y
|j}W n tk
rR   d}Y nX t d|||f  qW d S )N:z(no description available)z
  %-*s  %s)r   r@   rN   r   r*   AttributeError)r[   rl   rk   
max_lengthcmdr   r*   r   r   r   print_command_list  s    



zDistribution.print_command_listc             C   s   dd l }|jj}i }x|D ]}d||< qW g }x&| j D ]}||s:|| q:W d}x$|| D ]}t||krdt|}qdW | |d| |rt	  | |d| d S )Nr   r   zStandard commandszExtra commands)
distutils.commandr^   __all__r@   rh   rN   r{   r   r   r   )r[   rq   std_commandsis_stdr   extra_commandsr   r   r   r   r     s*    

zDistribution.print_commandsc       	   	   C   s   dd l }|jj}i }x|D ]}d||< qW g }x&| j D ]}||s:|| q:W g }x\|| D ]P}| j|}|s| |}y
|j}W n t	k
r   d}Y nX |||f qdW |S )Nr   r   z(no description available))
r   r^   r   r@   rh   rN   r{   r   r*   r   )	r[   rq   r   r   r   r   rvr   r*   r   r   r   get_command_list  s(    	




zDistribution.get_command_listc             C   sN   | j }t|tsJ|d krd}dd |dD }d|krD|dd || _ |S )Nr5   c             S   s   g | ]}|d kr|  qS )r5   )r   )r1   Zpkgr   r   r   r3   !  s    z5Distribution.get_command_packages.<locals>.<listcomp>r   zdistutils.commandr   )rA   r   r   rj   insert)r[   Zpkgsr   r   r   get_command_packages  s    
z!Distribution.get_command_packagesc          	   C   s   | j |}|r|S x|  D ]}d||f }|}yt| tj| }W n tk
r^   wY nX yt||}W n& tk
r   t	d|||f Y nX || j |< |S W t	d| d S )Nz%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s')
r@   rN   r   
__import__rS   rw   ImportErrorr?   r   r   )r[   r^   r   ZpkgnameZmodule_nameZ
klass_namemoduler   r   r   r   '  s(    
zDistribution.get_command_classc             C   sl   | j |}|sh|rhtr&| d|  | |}||  }| j |< d| j|< | j|}|rh| || |S )Nz<Distribution.get_command_obj(): creating '%s' command objectr   )rL   rN   r
   ri   r   rM   rD   _set_command_options)r[   r^   Zcreatecmd_objr   r6   r   r   r   get_command_objM  s    

zDistribution.get_command_objc             C   sb  |  }|d kr| |}tr,| d|  x.| D ] \}\}}tr^| d|||f  ydd |jD }W n tk
r   g }Y nX y
|j}W n tk
r   i }Y nX y|t|t	}	||kr|	rt
||| t|  nJ||kr|	rt
||t| n,t||rt
||| ntd|||f W q8 tk
rX }
 zt|
W d d }
~
X Y q8X q8W d S )Nz#  setting options for '%s' command:z    %s = %s (from %s)c             S   s   g | ]}t |qS r   )r   )r1   or   r   r   r3   |  s   z5Distribution._set_command_options.<locals>.<listcomp>z1error in %s: command '%s' has no such option '%s')get_command_namerP   r
   ri   rO   Zboolean_optionsr   r   r   r   r;   r   rV   r   r   )r[   rL   Zoption_dictcommand_namer   sourcer   Z	bool_optsZneg_optZ	is_stringr   r   r   r   r   h  s>    	






z!Distribution._set_command_optionsr   c             C   s   ddl m} t||s&|}| |}n| }|js8|S |  d|_d| j|< | | |r|x|	 D ]}| 
|| qhW |S )Nr   )r   )r   r   r   r   r   Z	finalizedZinitialize_optionsrM   r   Zget_sub_commandsreinitialize_command)r[   r^   Zreinit_subcommandsr   r   subr   r   r   r     s    


z!Distribution.reinitialize_commandc             C   s   t  || d S )N)r	   )r[   r   levelr   r   r   ri     s    zDistribution.announcec             C   s   x| j D ]}| | qW d S )N)rl   run_command)r[   r   r   r   r   run_commands  s    zDistribution.run_commandsc             C   sD   | j |rd S td| | |}|  |  d| j |< d S )Nz
running %sr   )rM   rN   r	   infor   Zensure_finalizedrun)r[   r^   r   r   r   r   r     s    	
zDistribution.run_commandc             C   s   t | jp| jpg dkS )Nr   )r   rE   rF   )r[   r   r   r   has_pure_modules  s    zDistribution.has_pure_modulesc             C   s   | j ot| j dkS )Nr   )rI   r   )r[   r   r   r   has_ext_modules  s    zDistribution.has_ext_modulesc             C   s   | j ot| j dkS )Nr   )rG   r   )r[   r   r   r   has_c_libraries  s    zDistribution.has_c_librariesc             C   s   |   p|  S )N)r   r   )r[   r   r   r   has_modules  s    zDistribution.has_modulesc             C   s   | j ot| j dkS )Nr   )rH   r   )r[   r   r   r   has_headers  s    zDistribution.has_headersc             C   s   | j ot| j dkS )Nr   )rJ   r   )r[   r   r   r   has_scripts  s    zDistribution.has_scriptsc             C   s   | j ot| j dkS )Nr   )rK   r   )r[   r   r   r   has_data_files  s    zDistribution.has_data_filesc             C   s   |   o|   o|   S )N)r   r   r   )r[   r   r   r   is_pure  s    
zDistribution.is_pure)N)NNr5   )N)r   )N)r   )(r   
__module____qualname__r   r   r   r:   r   rd   rP   rp   r~   r   r   r   r   rZ   r   r   r   r   r   r   r   r   r   r   r	   INFOri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ,   sz   
 
0
:C[1(!"&

,
)
r   c               @   s  e Zd ZdZdAddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" ZeZd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"d?d@ Z#dS )Br<   )r    r!   r$   author_emailr%   maintainer_emailr'   r(   r*   long_descriptionr-   r+   r#   r&   Zcontact_emailr,   download_urlr.   r/   r0   Nc             C   s   |d k	r|  t| nfd | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _d | _d | _d | _d | _d S )N)read_pkg_fileopenr    r!   r$   r   r%   r   r'   r(   r*   r   r-   r+   r,   r   r.   r/   r0   )r[   ru   r   r   r   rd     s&    zDistributionMetadata.__init__c                s  t |  fdd} fdd} d }|d| _|d| _|d| _|d	| _d | _|d
| _d | _|d| _|d| _	d kr|d| _
nd | _
|d| _|d| _d kr|dd| _|d| _|d| _|dkr|d| _|d| _|d| _nd | _d | _d | _d S )Nc                s    |  }|dkrd S |S )NUNKNOWNr   )r    r   )r   r   r   _read_field(  s    z7DistributionMetadata.read_pkg_file.<locals>._read_fieldc                s     | d }|g krd S |S )N)Zget_all)r    values)r   r   r   
_read_list.  s    z6DistributionMetadata.read_pkg_file.<locals>._read_listzmetadata-versionr    r!   Zsummaryr$   zauthor-emailz	home-pager(   zdownload-urlr*   r-   r   platformZ
classifierz1.1r/   r.   r0   )r   r    r!   r*   r$   r%   r   r   r'   r(   r   r   rj   r-   r+   r,   r/   r.   r0   )r[   filer   r   Zmetadata_versionr   )r   r   r   $  s:    












z"DistributionMetadata.read_pkg_filec          	   C   s2   t tj|dddd}| | W d Q R X d S )NzPKG-INFOwzUTF-8)encoding)r   rt   ru   ry   write_pkg_file)r[   Zbase_dirZpkg_infor   r   r   write_pkg_infoX  s    
z#DistributionMetadata.write_pkg_infoc             C   sb  d}| j s"| js"| js"| js"| jr&d}|d|  |d|    |d|    |d|    |d| 	   |d| 
   |d	|    |d
|    | jr|d| j  t|  }|d|  d|  }|r|d|  | |d|   | |d|   | |d|   | |d|   | |d|   d S )Nz1.0z1.1zMetadata-Version: %s
z	Name: %s
zVersion: %s
zSummary: %s
zHome-page: %s
zAuthor: %s
zAuthor-email: %s
zLicense: %s
zDownload-URL: %s
zDescription: %s
r   zKeywords: %s
ZPlatformZ
ClassifierZRequiresZProvidesZ	Obsoletes)r.   r/   r0   r,   r   rU   get_nameget_versionget_descriptionget_urlget_contactget_contact_emailget_licenser   get_long_descriptionry   get_keywords_write_listget_platformsget_classifiersget_requiresget_providesget_obsoletes)r[   r   r!   Z	long_descr-   r   r   r   r   _  s0    z#DistributionMetadata.write_pkg_filec             C   s$   x|D ]}| d||f  qW d S )Nz%s: %s
)rU   )r[   r   r    r   r   r   r   r   r     s    
z DistributionMetadata._write_listc             C   s
   | j pdS )Nr   )r    )r[   r   r   r   r     s    zDistributionMetadata.get_namec             C   s
   | j pdS )Nz0.0.0)r!   )r[   r   r   r   r     s    z DistributionMetadata.get_versionc             C   s   d|   |  f S )Nz%s-%s)r   r   )r[   r   r   r   get_fullname  s    z!DistributionMetadata.get_fullnamec             C   s
   | j pdS )Nr   )r$   )r[   r   r   r   
get_author  s    zDistributionMetadata.get_authorc             C   s
   | j pdS )Nr   )r   )r[   r   r   r   get_author_email  s    z%DistributionMetadata.get_author_emailc             C   s
   | j pdS )Nr   )r%   )r[   r   r   r   get_maintainer  s    z#DistributionMetadata.get_maintainerc             C   s
   | j pdS )Nr   )r   )r[   r   r   r   get_maintainer_email  s    z)DistributionMetadata.get_maintainer_emailc             C   s   | j p| jpdS )Nr   )r%   r$   )r[   r   r   r   r     s    z DistributionMetadata.get_contactc             C   s   | j p| jpdS )Nr   )r   r   )r[   r   r   r   r     s    z&DistributionMetadata.get_contact_emailc             C   s
   | j pdS )Nr   )r'   )r[   r   r   r   r     s    zDistributionMetadata.get_urlc             C   s
   | j pdS )Nr   )r(   )r[   r   r   r   r     s    z DistributionMetadata.get_licensec             C   s
   | j pdS )Nr   )r*   )r[   r   r   r   r     s    z$DistributionMetadata.get_descriptionc             C   s
   | j pdS )Nr   )r   )r[   r   r   r   r     s    z)DistributionMetadata.get_long_descriptionc             C   s
   | j pg S )N)r-   )r[   r   r   r   r     s    z!DistributionMetadata.get_keywordsc             C   s   t |d| _d S )Nr-   )r   r-   )r[   r   r   r   r   set_keywords  s    z!DistributionMetadata.set_keywordsc             C   s   | j p
dgS )Nr   )r+   )r[   r   r   r   r    s    z"DistributionMetadata.get_platformsc             C   s   t |d| _d S )Nr+   )r   r+   )r[   r   r   r   r   set_platforms  s    z"DistributionMetadata.set_platformsc             C   s
   | j pg S )N)r,   )r[   r   r   r   r    s    z$DistributionMetadata.get_classifiersc             C   s   t |d| _d S )Nr,   )r   r,   )r[   r   r   r   r   set_classifiers  s    z$DistributionMetadata.set_classifiersc             C   s
   | j pdS )Nr   )r   )r[   r   r   r   get_download_url  s    z%DistributionMetadata.get_download_urlc             C   s
   | j pg S )N)r/   )r[   r   r   r   r    s    z!DistributionMetadata.get_requiresc             C   s0   dd l }x|D ]}|j| qW t|| _d S )Nr   )distutils.versionpredicateversionpredicateVersionPredicater   r/   )r[   r   rq   r   r   r   r   set_requires  s    
z!DistributionMetadata.set_requiresc             C   s
   | j pg S )N)r.   )r[   r   r   r   r    s    z!DistributionMetadata.get_providesc             C   s:   dd |D }x |D ]}dd l }|j| qW || _d S )Nc             S   s   g | ]}|  qS r   )r   )r1   r   r   r   r   r3     s    z5DistributionMetadata.set_provides.<locals>.<listcomp>r   )r  r  Zsplit_provisionr.   )r[   r   r   rq   r   r   r   set_provides  s
    
z!DistributionMetadata.set_providesc             C   s
   | j pg S )N)r0   )r[   r   r   r   r    s    z"DistributionMetadata.get_obsoletesc             C   s0   dd l }x|D ]}|j| qW t|| _d S )Nr   )r  r  r  r   r0   )r[   r   rq   r   r   r   r   set_obsoletes  s    
z"DistributionMetadata.set_obsoletes)N)$r   r   r   r>   rd   r   r   r   r   r   r   r  r  r  r	  r
  r   r   r   r   Zget_licencer   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r<     sB   	
4"r<   c             C   s(   g }x| D ]}| |dd  q
W |S )Nr      )r{   )r6   Znew_optionsZ
help_tupler   r   r   r     s    
r   )rS   rt   reZemailr   rQ   r   Zdistutils.errorsZdistutils.fancy_getoptr   r   Zdistutils.utilr   r   r   rq   r	   Zdistutils.debugr
   compiler   r   r   r<   r   r   r   r   r   <module>   s2   

       Z c