
    cPi                        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__     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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 ]}|dvr|                    d	           |d
k    r|                    d           8|dk    r|r
|d         dvs|dk    r"|r |d         dk    rd| }t          |          |                    |           d                    |          }	 t          |dd           n## t          $ r d| }t          |          d w xY w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          d|                    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$   r     evalWITHzUnknown license exception: id+zlicenseref-zInvalid licenseref: zUnknown license: r
   z( z ))r	   replacesplitr   appendjoincompileSyntaxErrorupperr   endswithr   license_ref_allowedmatchr   r   )r   messagelicense_expressionlicense_refstokenspython_tokenstokenpython_expression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__  &&&&SLL b!);;;sll}lr1Bc1I1IO5KOOG*7333  ''''//:!2v.... : : :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 )r   r   r   r
   )
__future__r   retypingr   r   _spdxr   r   __all__r2   r6   r   r
   
ValueErrorr	   r   r   r   r   <module>rI      s   @ # " " " " " 				                 ' ' ' ' ' ' ' '   !bj!344 %g&CSII     z   W W W W W Wr   