�
�5sgk � � � d Z ddlmZ ddlmZ ddlmZ ddlm Z ddlZddlZddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddlm-Z- d� Z. G d� d� � Z/ G d� de/e� � Z0 G d� de� � Z G d� de� � Z1d� Z2d� Z3d� Z4d � Z5d!� Z6d"� Z7d#� Z8d$� Z9d+d&�Z:d'� Z;d(� Z< G d)� d*e-� � Z=dS ),zUsetuptools.command.egg_info
Create a distribution's .egg-info directory and contents� )�FileList)�DistutilsInternalError)�convert_path)�logN� )�metadata)�
_entry_points)�Command)�sdist)�walk_revctrl)�edit_config)� bdist_egg)�Requirement� safe_name�
parse_version�safe_version�to_filename)�glob)� packaging)�yield_lines)�SetuptoolsDeprecationWarningc �� � d} | j t j j � � }t j t j � � }d|�d�}t
|� � D �]f\ }}|t |� � dz
k }|dk r|r|dz
}n|d|�d|�d �z
}�7d
}t |� � } || k �r|| }
|
dk r ||dz z
}n�|
dk r||z
}n�|
d
k r�|dz }|| k r|| dk r|dz }|| k r|| dk r|dz }|| k r#|| dk r|dz }|| k r|| dk �|| k r|t j |
� � z
}na||dz |� }d}
|d
dk rd}
|dd� }|
t j |� � z
}
|d
|
�d�z
}|}n|t j |
� � z
}|dz
}|| k ��|s||z
}��h|dz
}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[^�]� �**z.*z(?:�+z)*r �*�?�[�!�^Nz\Z)�flags)�split�os�path�sep�re�escape� enumerate�len�compile� MULTILINE�DOTALL)r �pat�chunksr' |