
    MhS                        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j
        d          Z ede          Z G d d	e          ZddZdS )    )annotationsN)NewTypecast)
EXCEPTIONSLICENSES)InvalidLicenseExpressionNormalizedLicenseExpressioncanonicalize_license_expressionz^[A-Za-z0-9.-]*$r	   c                      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__     [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/packaging/licenses/__init__.pyr   r   2   s           r   r   raw_license_expressionstrreturnc                .   | sd| }t          |          |                     dd                              dd          }dfd|                                D             }|                                }|                                }g }|D ]s}|dvr|                    d	           |d
k    r|                    d           8|dk    r |r|d         dvrd| }t          |          |                    |           td                    |          }	 t          |t                      t                                }n# t          $ r d}Y nw xY w|durd| }t          |          d g }	|D ]P}|dv r(|	                    |
                                           /|	rP|	d         dk    rD|t          vrd|}t          |          |	                    t          |         d                    |                    d          r|d d         }
d}n|}
d}|
                    d          rNt                              |
          sd|
}t          |          |	                    ||
         |z              
|
t           vrd|
}t          |          |	                    t           |
         d         |z              Rd                    |	          }t#          t$          |                    dd                              dd                    S )NzInvalid license expression: (z ( )z ) LicenseRef-c                    i | ]h}|                                                                                                ;|                                 d |t                    d         z   iS )r   N)lower
startswithlen).0reflicenseref_prefixs     r   
<dictcomp>z3canonicalize_license_expression.<locals>.<dictcomp>G   su       99;;!!"3"9"9";";<<		]S->)?)?)A)A%BB  r   >   orandwithr   r   Falser$   r"   >   r"   r#    TF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   messagelicense_expressionlicense_refstokenspython_tokenstokenpython_expressioninvalidnormalized_tokensfinal_tokensuffixnormalized_expressionr    s                @r   r
   r
   <   s    " 0K1GKK&w/// 077UCCKKCQVWW%   %++--  L ,1133%%''F
 M 	( 	(777  ))))f__  &&&&c\\m\b0A0V0VO5KOOG*7333  ''''//('))VXX>>    eK1GKK&w//T9  O O333$$U[[]]333 	O!22!6&!@!@J&&AAA.w777$$Z%6t%<====~~c"" #CRCj#%%m44 	O*00== <D[DDG27;;;!((k)BV)KLLLLh..A+AAG27;;;!((+)>t)Dv)MNNNNHH%677#%%dC0088sCC  s   )E EE)r   r   r   r	   )
__future__r   retypingr   r   packaging.licenses._spdxr   r   __all__compiler6   r   r	   
ValueErrorr   r
   r   r   r   <module>rK      s   @ # " " " " " 				                 9 9 9 9 9 9 9 9   !bj!344 %g&CSII     z   U U U U U Ur   