ó
    ÷Þ j³  ã                  óª   • 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	SS j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_expressionc                 ó   • [         $ )N)Ú__all__© ó    ÚU/var/www/html/gaurav/venv/lib/python3.13/site-packages/packaging/licenses/__init__.pyÚ__dir__r   /   s   € Ü€Nr   z^[A-Za-z0-9.-]+$r
   c                  ó   • \ rS rSrSrSrg)r	   é<   a  Raised when a license-expression string is invalid

>>> from packaging.licenses import canonicalize_license_expression
>>> canonicalize_license_expression("invalid")
Traceback (most recent call last):
    ...
packaging.licenses.InvalidLicenseExpression: Unknown license: 'invalid'
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   r   r   r	   r	   <   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 Hƒ  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;  d  US:X  a!  U(       a  US   S:X  a  SU < 3n[        U5      eUR                  U5        M…     SR                  U5      n	 [        U	SS5        / n
Sn[        U5       GH{  u  pÈUS;   a^  US
:X  a5  U(       a  US-   [        U5      :X  d  XlS-      S;   a  SU < 3n[        U5      eU
R                  UR                  5       5        SnMj  U
(       aC  U
S   S:X  a:  U[        ;  a  SU< 3n[        U5      eU
R                  [        U   S   5        SnM´  UR                  S5      (       a  USS nSnOUnSnUR	                  S5      (       aT  U[        S5      S nU(       d  [        R                  U5      (       d  SU< 3n[        U5      eU
R                  X]   5        O9U[         ;  a  SU< 3n[        U5      eU
R                  [         U   S   U-   5        SnGM~     SR                  U
5      n[#        SUR                  SS5      R                  SS5      5      $ s  snf ! [         a    SU < 3n[        U5      Sef = f)a<  
This function takes a valid License-Expression, and returns the normalized
form of it.

The return type is typed as :class:`NormalizedLicenseExpression`. This
allows type checkers to help require that a string has passed through this
function before use.

:param str raw_license_expression: The License-Expression to canonicalize.
:raises InvalidLicenseExpression: If the License-Expression is invalid due to an
    invalid/unknown license identifier or invalid syntax.

.. doctest::

    >>> from packaging.licenses import canonicalize_license_expression
    >>> canonicalize_license_expression("mit")
    'MIT'
    >>> canonicalize_license_expression("mit and (apache-2.0 or bsd-2-clause)")
    'MIT AND (Apache-2.0 OR BSD-2-Clause)'
    >>> canonicalize_license_expression("(mit")
    Traceback (most recent call last):
      ...
    InvalidLicenseExpression: Invalid license expression: '(mit'
    >>> canonicalize_license_expression("Use-it-after-midnight")
    Traceback (most recent call last):
      ...
    InvalidLicenseExpression: Unknown license: 'Use-it-after-midnight'
zInvalid license expression: Ú(z ( Ú)z ) zLicenseRef-N>   r   r   ÚorÚandÚwithÚFalser   r   éÿÿÿÿ>   r   r   r   Ú Ú ÚevalFr   ÚWITHzUnknown license exception: ÚidÚ+zlicenseref-zInvalid licenseref: zUnknown license: Tr
   z( z ))r	   ÚreplaceÚsplitÚlowerÚ
startswithÚlenÚappendÚjoinÚcompileÚSyntaxErrorÚ	enumerateÚupperr   ÚendswithÚlicense_ref_allowedÚmatchr   r   )Úraw_license_expressionÚmessageÚlicense_expressionÚlicenseref_prefixÚrefÚlicense_refsÚtokensÚpython_tokensÚtokenÚpython_expressionÚnormalized_tokensÚlast_license_startÚindexÚfinal_tokenÚsuffixÚlicense_ref_idÚnormalized_expressions                    r   r   r   G   s™  € ö> "Ø0Ð1GÑ0JÐKˆÜ& wÓ/Ð/ð 0×7Ñ7¸¸UÓC×KÑKÈCÐQVÓWÐØ%Ðð &×+Ñ+Ô-óá-ˆCØ�9‰9‹;×!Ñ!Ð"3×"9Ñ"9Ó";×<ó 	Cˆ�	‰	‹�] S¬Ð->Ó)?Ð)AÐ%BÑBÒBÙ-ð ð ð ,×1Ñ1Ó3Ðà×%Ñ%Ó'€Fð €MÛˆØÐ7Ó7Ø× Ñ  Ö)Ø�f‹_Ø× Ñ  Ö&à�S‹LÞØ˜bÑ!Ð);Ó;Ø�s‹lž}°¸rÑ1BÀcÓ1IØ4Ð5KÑ4NÐOˆGÜ*¨7Ó3Ð3à× Ñ  Ö'ñ ð Ÿ™ Ó/Ðð:ÜÐ! 2 vÔ.ð ÐØÐÜ! &×)‰ˆØÐ3Ó3Ø˜‹Þ&Ø˜1‘9¤ F£Ó+Ø !™)Ñ$Ð(GÓGà8Ð9OÑ8RÐS�Ü.¨wÓ7Ð7Ø×$Ñ$ U§[¡[£]Ô3Ø!&ÐÙæÐ!2°2Ñ!6¸&Ó!@ØœJÓ&Ø7¸±yÐA�Ü.¨wÓ7Ð7à×$Ñ$¤Z°Ñ%6°tÑ%<Ô=Ø!&Òà�~‰~˜c×"Ñ"Ø# C R˜j�Ø‘à#�Ø�à×%Ñ% m×4Ñ4Ø!,¬S°Ó-?Ð-AÐ!B�ÞÔ!4×!:Ñ!:¸>×!JÑ!JØ 4°U±IÐ>�GÜ2°7Ó;Ð;Ø!×(Ñ(¨Ñ)BÕCà¤hÓ.Ø 1°+±ÐA�GÜ2°7Ó;Ð;Ø!×(Ñ(¬°+Ñ)>¸tÑ)DÀvÑ)MÔNØ!%ÓñO *ðR  ŸH™HÐ%6Ó7ÐäØ%Ø×%Ñ% d¨CÓ0×8Ñ8¸¸sÓCóð ùòkøôF ó :Ø0Ð1GÑ0JÐKˆÜ& wÓ/°TÐ9ð:ús   Á5MÂ$MÅ+M	 Í	M&)Úreturnz	list[str])r6   ÚstrrG   r
   )Ú
__future__r   ÚreÚtypingr   r   Ú_spdxr   r   r   r   r/   r4   rH   r
   Ú
ValueErrorr	   r   r   r   r   Ú<module>rN      si   ðõ@ #ã 	ß  ç 'ò€ôð —j’jÐ!3Ó4Ð á%Ð&CÀSÓIÐ ðô˜zô ðØðà õr   