o
    ɐiS                     @  sn   d dl mZ d dlZd dlmZmZ d dlmZmZ g dZ	e
dZedeZG dd	 d	eZdddZdS )    )annotationsN)NewTypecast)
EXCEPTIONSLICENSES)InvalidLicenseExpressionNormalizedLicenseExpressioncanonicalize_license_expressionz^[A-Za-z0-9.-]*$r   c                   @  s   e Zd ZdZdS )r   zRaised 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   j/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/packaging/licenses/__init__.pyr   2   s    r   raw_license_expressionstrreturnc                   s&  | sd| }t || dddd}d  fdd| D }| }| }g }|D ]0}|d	vr:|d
 q.|dkrD|d q.|dkrY|rY|d dvrYd| }t ||| q.d|}z
t|t t }W n t	yy   d}Y nw |durd| }t |d g }	|D ]t}|d	v r|	|
  q|	r|	d dkr|tvrd|}t ||	t| d  q|dr|d d }
d}n|}
d}|
drt|
sd|
}t ||	||
 |  q|
tvrd|
}t ||	t|
 d |  qd|	}tt|ddddS )NzInvalid license expression: (z ( )z ) LicenseRef-c                   s8   i | ]}|     r|  d |t d  qS )r   N)lower
startswithlen).0refZlicenseref_prefixr   r   
<dictcomp>G   s    z3canonicalize_license_expression.<locals>.<dictcomp>>   r   r   andorwithFalser   r   >   r   r    TFZWITHzUnknown license exception: id+ zlicenseref-zInvalid licenseref: zUnknown license: z( z ))r   replacesplitr   appendjoinevalglobalslocals	Exceptionupperr   endswithr   license_ref_allowedmatchr   r   r   )r   messageZlicense_expressionZlicense_refstokensZpython_tokenstokenZpython_expressioninvalidZnormalized_tokensZfinal_tokensuffixZnormalized_expressionr   r   r   r	   <   st   












r	   )r   r   r   r   )
__future__r   retypingr   r   Zpackaging.licenses._spdxr   r   __all__compiler0   r   r   
ValueErrorr   r	   r   r   r   r   <module>   s   


