
    "hS                        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y)    )annotationsN)NewTypecast)
EXCEPTIONSLICENSES)InvalidLicenseExpressionNormalizedLicenseExpressioncanonicalize_license_expressionz^[A-Za-z0-9.-]*$r	   c                      e Zd ZdZy)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/Resume-Scraper/venv/lib/python3.12/site-packages/packaging/licenses/__init__.pyr   r   2   s    r   r   c           	        | sd| }t        |      | j                  dd      j                  dd      }d}|j                         D ci c]O  }|j                         j	                  |j                               r |j                         d|t        |      d  z   Q }}|j                         }|j                         }g }|D ]^  }|dvr|j                  d       |d	k(  r|j                  d
       0|dk(  r|r|d   dvrd| }t        |      |j                  |       ` dj                  |      }		 t        |	t               t                     }
|
durd| }t        |      d g }|D ]  }|dv r |j                  |j                                (|r<|d   dk(  r4|t        vrd|}t        |      |j                  t        |   d          f|j                  d      r|d d }d}n|}d}|j	                  d      r=t        j!                  |      sd|}t        |      |j                  ||   |z          |t"        vrd|}t        |      |j                  t"        |   d   |z          	 dj                  |      }t%        t&        |j                  dd      j                  dd            S c c}w # t        $ r d}
Y ww xY w)NzInvalid license expression: (z ( )z ) zLicenseRef->   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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% &++-99;!!"3"9"9";< 			]S->)?)A%BBBL  ,113%%'F
 M 	(77  )f_  &c\mb0A0V45K4NOG*733  '	( /(')VX> e01G0JK&w/T9  O33$$U[[]3!22!6&!@J&7yA.w77$$Z%6t%<=~~c"#CRj#%%m4*00= 4[ODG27;;!((k)BV)KLh. 1+AG27;;!((+)>t)Dv)MN9O<  HH%67#%%dC088sC O<  s   	AJ76J< <K
K)r/   strreturnr	   )
__future__r   retypingr   r   packaging.licenses._spdxr   r   __all__compiler-   r>   r	   
ValueErrorr   r
   r   r   r   <module>rG      sa   @ # 	   9 !bjj!34 %&CSI z UU Ur   