Your IP : 216.73.216.213
3
Dt�Zf � @ s� d Z ddlZddlZddlZddlmZ ddlZddlm Z ej
d�Zedd�Zd
d� Z
dd
� Zdd� Zdd� Zdd� Zdd� ZdS )z2
Tools for converting old- to new-style metadata.
� N)�
namedtuple� )�
read_pkg_infozF^(?P<package>.*?)(;\s*(?P<condition>.*?)(extra == '(?P<extra>.*?)')?)$�MayRequiresKey� condition�extrac C s@ g }x | j D ]\}}|j|| � qW |s.dS ddjt|�� S )zBCompose the version predicates for requirement in PEP 345 fashion.� z (%s)�,)�specs�append�join�sorted)�requirementZ
requires_dist�op�ver� r �?/opt/alt/python36/lib/python3.6/site-packages/wheel/metadata.py�requires_to_requires_dist s r c c sN xH| D ]@}t jj|�}t|�}dj|j�}|r6d| }|j| | V qW dS )z=Yield Requires-Dist: strings for parsed requirements strings.r z[%s]N)�
pkg_resources�Requirement�parser r �extras�project_name)�requirements�reqZparsed_requirement�specr r r r �convert_requirements s
r c c s� x�| j � D ]�\}}d}|r<d|kr<|jdd�\}}tj|�}|rfd|fV |rZd| d }|d| 7 }|rrd| }xt|�D ]}d || fV q|W q
W d
S )a,
Convert requirements from a setup()-style dictionary to ('Requires-Dist', 'requirement')
and ('Provides-Extra', 'extra') tuples.
extras_require is a dictionary of {extra: [requirements]} as passed to setup(),
using the empty extra {'': [requirements]} to hold install_requires.
r �:r zProvides-Extra�(z) and z
extra == '%s'z; z
Requires-DistN)�items�splitr �
safe_extrar )�extras_requirer �dependsr Znew_reqr r r �generate_requirements* s
r$ c
C s� t |�}|jdd� tjj| d�}tjj|�r�t|��}|j� }W dQ R X xHtt j
|�dd� d�D ].\}}x$t||i�D ]}|d ||d <