ruạṛ
a �u:j e � @ s d Z ddlmZ ddlZddlZddlZddlZddlZddlm Z ddl Z ddlZ ddlZ ddl mZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd lmZ d dlmZmZ d dlmZ d d lm Z ddlm!Z! ddl"Z#ddl$Z#ddl#m%Z% ddl"m&Z& ddl$m'Z( ddl)m*Z* ej+j,� dej+j-� �Z.dd� Z/G dd� d�Z0G dd� de0e�Z1G dd� de(�Z'G dd� de�Z2dd �d!d"�Z3dd �d#d$�Z4dd �d%d&�Z5e!j6Z6e!j7Z7dd �d'd(�Z8dd �d)d*�Z9d6d,dd-�d.d/�Z:dd �d0d1�Z;d7d2d3�Z<G d4d5� d5e �Z=dS )8zUsetuptools.command.egg_info Create a distribution's .egg-info directory and contents� )�annotationsN)�Callable)�Command)� bdist_egg)�sdist�walk_revctrl)�edit_config)�glob� )� _entry_points�_normalization)�metadata)�SetuptoolsDeprecationWarning� )�_requirestxt)�log)�DistutilsInternalError)�FileList)�convert_path�.c C s� d}| � tjj�}t�tj�}d|� d�}t|�D �]�\}}|t|�d k}|dkrz|rb|d7 }q2|d|� d|� d �7 }q2d }t|�} || k �r�|| } | dkr�||d 7 }�n| dkr�||7 }n�| d k�r�|d }|| k r�|| dkr�|d }|| k �r|| dk�r|d }|| k �r4|| dk�r4|d }�q|| k�rN|t�| �7 }nT||d |� }d} |d dk�r�d} |dd� }| t�|�7 } |d | � d�7 }|}n|t�| �7 }|d7 }q�|s2||7 }q2|d7 }tj|tj tj B d�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[^�]r �**z.*z(?:�+z)*r �*�?�[�!�^Nz\Z)�flags)�split�os�path�sep�re�escape� enumerate�len�compile� MULTILINE�DOTALL)r �pat�chunksr# Z valid_char�c�chunk� last_chunk�iZ chunk_len�charZinner_i�innerZ char_class� r3 �N/opt/bart/bart_venv/lib/python3.9/site-packages/setuptools/command/egg_info.py�translate_pattern( sV r5 c @ sd e Zd ZdZdZedd� �Zdd� Zdd� Zdd d �dd�Z dd �dd�Z dd �dd�Zee�ZdS )� InfoCommonNc C s t �| j�� �S �N)r � safe_name�distribution�get_name��selfr3 r3 r4 �name s zInfoCommon.namec C s | � | j�� �}t�|�S r7 )� _maybe_tagr9 �get_versionr �safe_version)r<