File: //usr/local/lib/python3.10/dist-packages/packaging/licenses/__pycache__/__init__.cpython-310.pyc
o
���gS � @ sn d dl mZ d dlZd dlmZmZ d dlmZmZ g d�Z e�
d�Zede�Z
G dd � d e�Zdd
d�ZdS )� )�annotationsN)�NewType�cast)�
EXCEPTIONS�LICENSES)�NormalizedLicenseExpression�InvalidLicenseExpression�canonicalize_license_expressionz^[A-Za-z0-9.-]*$r c @ s e Zd ZdZdS )r z�Raised when a license-expression string is invalid
>>> canonicalize_license_expression("invalid")
Traceback (most recent call last):
...
packaging.licenses.InvalidLicenseExpression: Invalid license expression: 'invalid'
N)�__name__�
__module__�__qualname__�__doc__� r r �F/usr/local/lib/python3.10/dist-packages/packaging/licenses/__init__.pyr 2 s r �raw_license_expression�str�returnc
s& | sd| ��}t |��| �dd��dd�}d� � fdd�|�� D �}|�� }|�� }g }|D ]0}|d vr:|�d
� q.|dkrD|�d� q.|dkrY|rY|d
dvrYd| ��}t |��|�|� q.d�|�}z
t|t� t� �}W n t yy d}Y nw |dur�d| ��}t |�d �g } |D ]t}|d v r�| �|�
� � q�| r�| d
dkr�|tvr�d|��}t |��| �t| d � q�|�d�r�|d d
� }
d}n|}
d}|
�
d�r�t�|
�s�d|
��}t |��| �||
| � q�|
tvr�d|
��}t |��| �t|
d | � q�d�| �}tt|�dd��dd��S )NzInvalid license expression: �(z ( �)z ) �LicenseRef-c s8 i | ]}|� � �� � � �r|� � d |t� �d� �qS )r N)�lower�
startswith�len)�.0�ref��licenseref_prefixr r �
<dictcomp>G s ��z3canonicalize_license_expression.<locals>.<dictcomp>> �or�and�withr r �Falser r ���> r r � TF�WITHzUnknown license exception: �id�+� zlicenseref-zInvalid licenseref: zUnknown license: z( z ))r �replace�splitr �append�join�eval�globals�locals� Exception�upperr �endswithr �license_ref_allowed�matchr r r )
r �message�license_expression�license_refs�tokens�
python_tokens�token�python_expression�invalid�normalized_tokens�final_token�suffix�normalized_expressionr r r r <