File: //lib/python3/dist-packages/wheel/__pycache__/metadata.cpython-38.pyc
U
�-^� � @ sn d Z ddlZddlZddlZddlZddlmZ e�d�Z dd� Z
dd � Zd
d� Zdd
� Z
dd� Zdd� ZdS )z2
Tools for converting old- to new-style metadata.
� N� )�
read_pkg_infozF^(?P<package>.*?)(;\s*(?P<condition>.*?)(extra == '(?P<extra>.*?)')?)$c C sR t | dd�rd| j S g }| jD ]\}}|�|| � q |s@dS dd�t|�� S )zFReturn the version specifier for a requirement in PEP 345/566 fashion.�urlNz @ � z (%s)�,)�getattrr Zspecs�append�join�sorted)ZrequirementZ
requires_dist�opZver� r �0/usr/lib/python3/dist-packages/wheel/metadata.py�requires_to_requires_dist s
r c c sN | D ]D}t j�|�}t|�}d�t|j��}|r8d| }|j| | V qdS )z=Yield Requires-Dist: strings for parsed requirements strings.r z[%s]N)�
pkg_resourcesZRequirement�parser r r
�extrasZproject_name)ZrequirementsZreqZparsed_requirement�specr r r r
�convert_requirements s r c c s� | � � D ]�\}}d}|pd}d|kr4|�dd�\}}t�|�}|rhd|fV |r\d| d }|d| 7 }|rtd| }t|�D ]}d || fV q|qd
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 �Provides-Extra�(z) and z
extra == '%s'z ; �
Requires-DistN)�items�splitr Z
safe_extrar )Zextras_require�extraZdependsZ conditionZnew_reqr r r
�generate_requirements* s
r c C s� t |�}|�dd� |d= |d= tj�| d�}tj�|�r�t|��}|�� }W 5 Q R X tt �
|�dd� d�}|D ]6\}}t||i�D ] \} }
| |
f|�� kr�|
|| <