Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib/python3.3/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib/python3.3/site-packages/wheel/__pycache__/metadata.cpython-33.pyc

�
�/6R�&c@s�dZddlmZmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddl
Z
dZidd6d	d
6dd6Ze�Zid
d6dd6dfidd6dd6dffZed,�Zejd�Zejd�Zedd-�Zdd�Zdd�Zddd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Z e!d+kr�ddl"Z"ddl#Z#e#j#ee"j$d��ndS(.u2
Tools for converting old- to new-style metadata.
i(udefaultdictu
namedtuplei(u
read_pkg_infoNu2.0uclassifiersu
classifieruprovidesu
provides_distuextrasuprovides_extrauauthor_emailuemailuauthorunameumaintainer_emailu
maintaineruplatformu	home_pageulicenseuF^(?P<package>.*?)(;\s*(?P<condition>.*?)(extra == '(?P<extra>.*?)')?)$u[-,]+uMayRequiresKeyu	conditionuextraccs?t�}x/|D]'}||kr|j|�|VqqWdS(u<
    Yield unique values in iterable, preserving order.
    N(usetuadd(uiterableuseenuvalue((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyuunique's
	

uuniquecCs}tt�}x�|j|�D]�}tj|�}|r�|j�}|d}|d}|d}	|jd�r�|dd
�}q�nd\}}|}	t||�}||j	|	�qW|ryg|d<xj|j
�D]\\}}i|d6}
|jr|j|
d<n|jr$|j|
d	<n|dj	|
�q�Wd
|krRg|d
<n|d
j
dd�|j�D��ndS(uF
    Place the runtime requirements from pkg_info into metadata. 
    u	conditionuextraupackageu and Niurun_requiresurequiresuenvironmentuextrascSs"g|]}|jr|j�qS((uextra(u.0ukey((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyu
<listcomp>Rs	u#handle_requires.<locals>.<listcomp>i����(NN(udefaultdictulistuget_alluEXTRA_REusearchu	groupdictuendswithuNoneuMayRequiresKeyuappenduitemsuextrau	conditionuextendukeys(umetadataupkg_infoukeyumay_requiresuvalueuextra_matchu	groupdictu	conditionuextraupackageumay_requirement((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyuhandle_requires2s4




		
uhandle_requirescCs�idtjdd6}ytt|�}WnBtk
rptjj�jt	|d�j
�jd��}YnXd}|dr�t
|d�|d<|d=n|dr�t|�}|d=n<|j�}t|t�r�|jd�}n|r�|}n|r
||d	<nx+td
d�|j�D��D]
}|jdd
�}|tkrWq-n|tkr~|j|�dkr~q-n|tkr�|j|�|t|<q-|dkr�t|||�q-|dkrd|kr�g|d<n|dj|j|��q-|dkr)i||d6|d<q-||||<q-Wt|d<d|krntt|d��|d<n|r�xwd'D]l\}}	yKt||	�}
t|
t �r�t t!|
��}i|d6g||<nWq{t"k
r�Yq{Xq{Wng}xut#D]m\}
}i}x8|
D]0}|
||kr|j$|
|�||<qqW|r�||d<|j%|�q�q�W|r||d<ny�t	t&j'j(t&j'j)|�d�d��}t*j+j,|j
��}WdQXi}xg|j-�D]Y\}}i||<x@|j.�D]2}t/|�j0dd�\}}||||<qWq�W|rP||d <nWnt1k
reYnXd |kr�xVd*D]K\}}||d kry|jd%i�|d%<|d ||d%|<qyqyWn|S(+u
    Convert PKG-INFO to a prototype Metadata 2.0 (PEP 426) dict.
    
    The description is included under the key ['description'] rather than 
    being written to a separate file.
    
    path: path to PKG-INFO file
    distribution: optional distutils Distribution()
    u
bdist_wheel (u)u	generatorurbuutf-8uSummaryusummaryuDescriptionudescriptioncss|]}|j�VqdS(N(ulower(u.0uk((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyu	<genexpr>{su"pkginfo_to_dict.<locals>.<genexpr>u-u_uUNKNOWNu
requires_distuprovides_extrauextrasu	home_pageuHomeuproject_urlsumetadata_versionu
test_requiresu
tests_requireurequiresuroleucontactsuentry_points.txturNu = iuexportsuconsole_scriptsuwrap_consoleugui_scriptsuwrap_guiucommands(u
test_requiresu
tests_require((u
test_requiresu
tests_require(uconsole_scriptsuwrap_console(ugui_scriptsuwrap_gui((uconsole_scriptsuwrap_console(ugui_scriptsuwrap_gui(2uwheelu__version__uunicodeu
read_pkg_infou	NameErroruemailuparseruParseruparsestruopenureadudecodeuNoneupkginfo_unicodeudedent_descriptionuget_payloadu
isinstanceubytesuuniqueukeysureplaceuSKIP_FIELDSuUNKNOWN_FIELDSugetu
PLURAL_FIELDSuget_alluhandle_requiresuextenduMETADATA_VERSIONusortedusetugetattrulistuconvert_requirementsuAttributeErroruCONTACT_FIELDSupopuappenduosupathujoinudirnameu
pkg_resourcesu
EntryPointu	parse_mapuitemsuvaluesustrusplituIOError(upathudistributionumetadataupkg_infoudescriptionupayloadukeyulow_keyurequiresuattrurequirementsunew_requirementsucontactsucontact_typeuroleucontactuep_fileuep_mapuexportsugroupuitemsuitemunameuexportu	ep_scriptuwrap_script((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyupkginfo_to_dictUs�
5



	
&!





-

 upkginfo_to_dictcCsLg}x(|jD]\}}|j||�qW|s;dSddj|�S(uBCompose the version predicates for requirement in PEP 345 fashion.uu (%s)u,(uspecsuappendujoin(urequirementu
requires_distuopuver((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyurequires_to_requires_dist�surequires_to_requires_distccshxa|D]Y}tjj|�}t|�}dj|j�}|rPd|}n|j||VqWdS(u=Yield Requires-Dist: strings for parsed requirements strings.u,u[%s]N(u
pkg_resourcesuRequirementuparseurequires_to_requires_distujoinuextrasuproject_name(urequirementsurequparsed_requirementuspecuextras((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyuconvert_requirements�s

uconvert_requirementsc
Cs�t|�}|jdd�tjj|d�}tjj|�r�t|�j�}xntj	|�D]Z\}}d}|r�||d<dt
|�}nx"t|�D]}|||d<q�WqeWn|d}	|	r�|jt
|��|d=n|S(	un
    Convert .egg-info directory with PKG-INFO to the Metadata 1.3 aka
    old-draft Metadata 2.0 format.
    uMetadata-Versionu2.0urequires.txtuuProvides-Extrau
; extra == %su
Requires-DistuDescription(u
read_pkg_infoureplace_headeruosupathujoinuexistsuopenureadu
pkg_resourcesusplit_sectionsurepruconvert_requirementsuset_payloadudedent_description(
u
egg_info_pathupkginfo_pathupkg_infou
requires_pathurequiresuextraureqsu	conditionunew_requdescription((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyupkginfo_to_metadata�s"


upkginfo_to_metadatacCs�||}|j�}t|t�s�t|d�s>t|�SxP|j�D]?}|dj�|krK|djdd�jd�}PqKqKWn|S(u<Hack to coax Unicode out of an email Message() - Python 3.3+u	raw_itemsiiuasciiusurrogateescapeuutf-8(uloweru
isinstanceustruhasattru	raw_itemsuencodeudecode(upkg_infoufieldutextuitem((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyupkginfo_unicode�s

	upkginfo_unicodecCs�|d}d	}t|t�s7d
}t|d�}n|j�}dj|dj�tj	dj|dd���df�}|r�|j
d�jdd�}n|S(u@
    Dedent and convert pkg_info['Description'] to Unicode.
    uDescriptionu
iiNuutf8uasciiusurrogateescapeFT(uFalseu
isinstanceustruTrueupkginfo_unicodeu
splitlinesujoinulstriputextwrapudedentuencodeudecode(upkg_infoudescriptionu
surrogatesudescription_linesudescription_dedent((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyudedent_descriptions

	udedent_descriptionu__main__(uauthoruauthor_emailuplatformu	home_pageulicense(u	conditionuextra(%u__doc__ucollectionsudefaultdictu
namedtupleupkginfou
read_pkg_infoureuos.pathuosutextwrapu
pkg_resourcesuemail.parseruemailuwheeluMETADATA_VERSIONu
PLURAL_FIELDSusetuSKIP_FIELDSuCONTACT_FIELDSuUNKNOWN_FIELDSucompileuEXTRA_REuKEYWORDS_REuMayRequiresKeyuuniqueuhandle_requiresuNoneupkginfo_to_dicturequires_to_requires_distuconvert_requirementsupkginfo_to_metadataupkginfo_unicodeudedent_descriptionu__name__usysupprintuargv(((u?/opt/alt/python33/lib/python3.3/site-packages/wheel/metadata.pyu<module>sB

		#v