
    hS                        S SK Jr  S SKrS SKJrJr  S SKJrJr  / SQr	\R                  " S5      r\" S\5      r " S S	\5      r    SS
 jrg)    )annotationsN)NewTypecast)
EXCEPTIONSLICENSES)InvalidLicenseExpressionNormalizedLicenseExpressioncanonicalize_license_expressionz^[A-Za-z0-9.-]*$r	   c                      \ rS rSrSrSrg)r   2   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____firstlineno____doc____static_attributes__r       M/var/www/html/env/lib/python3.13/site-packages/packaging/licenses/__init__.pyr   r   2   s    r   r   c           	     &   U (       d  SU < 3n[        U5      eU R                  SS5      R                  SS5      nSnUR                  5        Vs0 s HW  nUR                  5       R	                  UR                  5       5      (       d  M7  UR                  5       SU[        U5      S  -   _MY     nnUR                  5       nUR                  5       n/ nU Hm  nUS;  a  UR                  S5        M  US	:X  a  UR                  S
5        M5  US:X  a!  U(       a  US   S;  a  SU < 3n[        U5      eUR                  U5        Mo     SR                  U5      n	 [        U	[        5       [        5       5      n
U
SLa  SU < 3n[        U5      S e/ nU GH'  nUS;   a!  UR                  UR                  5       5        M+  U(       aA  US   S:X  a8  U[        ;  a  SU< 3n[        U5      eUR                  [        U   S   5        Ms  UR                  S5      (       a  US S nSnOUnSnUR	                  S5      (       aC  [        R!                  U5      (       d  SU< 3n[        U5      eUR                  X\   U-   5        M  U["        ;  a  SU< 3n[        U5      eUR                  ["        U   S   U-   5        GM*     SR                  U5      n[%        [&        UR                  SS5      R                  SS5      5      $ s  snf ! [         a    Sn
 GNf = f)NzInvalid license expression: (z ( )z ) zLicenseRef->   r   r   orandwithFalser   r   >   r   r    TFWITHzUnknown license exception: id+ zlicenseref-zInvalid licenseref: zUnknown license: z( z ))r   replacesplitlower
startswithlenappendjoinevalglobalslocals	Exceptionupperr   endswithlicense_ref_allowedmatchr   r   r	   )raw_license_expressionmessagelicense_expressionlicenseref_prefixreflicense_refstokenspython_tokenstokenpython_expressioninvalidnormalized_tokensfinal_tokensuffixnormalized_expressions                  r   r
   r
   <   s!    "01G0JK&w// 077UCKKCQVW% &++--C99;!!"3"9"9";< 	C		]S->)?)A%BBB-   ,113%%'F
 M77  )f_  &c\mb0A0V45K4NOG*733  '  /(')VX> e01G0JK&w/T9 33$$U[[]3!22!6&!@J&7yA.w77$$Z%6t%<=~~c""#CRj#%%m44*00== 4[ODG27;;!(()BV)KLh. 1+AG27;;!((+)>t)Dv)MN9 <  HH%67#%%dC088sC O<  s   6K;	$K;L   LL)r2   strreturnr	   )
__future__r   retypingr   r   packaging.licenses._spdxr   r   __all__compiler0   rA   r	   
ValueErrorr   r
   r   r   r   <module>rJ      s_   @ # 	   9 jj!34 %&CSI z UU Ur   