§
    ZŠtj³  ã                  ó¨   — 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	d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_expressionÚreturnú	list[str]c                 ó   — t           S )N)Ú__all__© ó    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/packaging/licenses/__init__.pyÚ__dir__r   /   s   € Ý€Nr   z^[A-Za-z0-9.-]+$r
   c                  ó   — e Zd ZdZdS )r	   a1  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'
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r	   r	   <   s   € € € € € ðð ð ð r   r	   Úraw_license_expressionÚstrc                óä  ‡— | 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}	t          |¦  «        D �]­\  }
}|dv ri|d
k    r9|	r#|
dz   t          |¦  «        k    s||
dz            dv rd| ›�}t          |¦  «        ‚|                     | 
                    ¦   «         ¦  «         d}	Œs|rR|d         dk    rF|t          vrd|›�}t          |¦  «        ‚|                     t          |         d         ¦  «         d}	ŒÇ|                     d¦  «        r|dd…         }d}n|}d}|                     d¦  «        rc|t          d¦  «        d…         }|st                               |¦  «        sd|›�}t          |¦  «        ‚|                     ||         ¦  «         nF|t           vrd|›�}t          |¦  «        ‚|                     t           |         d         |z   ¦  «         d}	�Œ¯d                     |¦  «        }t#          d|                     dd¦  «                             dd¦  «        ¦  «        S )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 ) ú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>n   su   ø€ ð ð ð àØ�9Š9‰;Œ;×!Ò!Ð"3×"9Ò"9Ñ";Ô";Ñ<Ô<ðØ�	Š	‰Œ�] S­Ð->Ñ)?Ô)?Ð)AÐ)AÔ%BÑBðð ð r   >   ÚorÚandÚwithr   r   ÚFalser)   r'   éÿÿÿÿ>   r'   r(   r   ú Ú ÚevalNFr   ÚWITHzUnknown license exception: Úidú+zlicenseref-zInvalid licenseref: zUnknown license: Tr
   z( z ))r	   ÚreplaceÚsplitr    ÚappendÚjoinÚcompileÚSyntaxErrorÚ	enumerater"   Úupperr   Úendswithr!   Úlicense_ref_allowedÚmatchr   r   )r   ÚmessageÚlicense_expressionÚlicense_refsÚtokensÚpython_tokensÚtokenÚpython_expressionÚnormalized_tokensÚlast_license_startÚindexÚfinal_tokenÚsuffixÚlicense_ref_idÚnormalized_expressionr%   s                  @r   r   r   G   sJ  ø€ ð> "ð 0ØKÐ1GÐKÐKˆÝ& wÑ/Ô/Ð/ð 0×7Ò7¸¸UÑCÔC×KÒKÈCÐQVÑWÔWÐØ%Ððð ð ð à%×+Ò+Ñ-Ô-ðñ ô €Lð ,×1Ò1Ñ3Ô3Ðà×%Ò%Ñ'Ô'€Fð €MØð (ð (ˆØÐ7Ð7Ð7Ø× Ò  Ñ)Ô)Ð)Ð)Ø�fŠ_ˆ_Ø× Ò  Ñ&Ô&Ð&Ð&à�SŠLˆLØð à˜bÔ!Ð);Ð;Ð;Ø�sŠlˆl˜}ˆl°¸rÔ1BÀcÒ1IÐ1IØOÐ5KÐOÐOˆGÝ*¨7Ñ3Ô3Ð3à× Ò  Ñ'Ô'Ð'Ð'àŸš Ñ/Ô/Ðð:ÝÐ! 2 vÑ.Ô.Ð.Ð.øÝð :ð :ð :ØKÐ1GÐKÐKˆÝ& wÑ/Ô/°TÐ9ð:øøøð
 ÐØÐÝ! &Ñ)Ô)ð '&ñ '&‰ˆˆuØÐ3Ð3Ð3Ø˜ŠˆØ&ð à˜1‘9¥ F¡¤Ò+Ð+Ø˜% !™)Ô$Ð(GÐGÐGàSÐ9OÐSÐS�Ý.¨wÑ7Ô7Ð7Ø×$Ò$ U§[¢[¡]¤]Ñ3Ô3Ð3Ø!&ÐØàð 	&Ð!2°2Ô!6¸&Ò!@Ð!@Ø�JÐ&Ð&ØA¸ÐAÐA�Ý.¨wÑ7Ô7Ð7à×$Ò$¥Z°Ô%6°tÔ%<Ñ=Ô=Ð=Ø!&ÐÐà�~Š~˜cÑ"Ô"ð Ø# C R Cœj�Ø��à#�Ø�à×%Ò% mÑ4Ô4ð 
OØ!,­S°Ñ-?Ô-?Ð-AÐ-AÔ!B�Øð <Õ!4×!:Ò!:¸>Ñ!JÔ!Jð <Ø>°UÐ>Ð>�GÝ2°7Ñ;Ô;Ð;Ø!×(Ò(¨°kÔ)BÑCÔCÐCÐCà¥hÐ.Ð.ØA°+ÐAÐA�GÝ2°7Ñ;Ô;Ð;Ø!×(Ò(­°+Ô)>¸tÔ)DÀvÑ)MÑNÔNÐNØ!%ÐÑàŸHšHÐ%6Ñ7Ô7ÐåØ%Ø×%Ò% d¨CÑ0Ô0×8Ò8¸¸sÑCÔCñô ð s   Ä.E  Å  E )r   r   )r   r   r   r
   )Ú
__future__r   ÚreÚtypingr   r   Ú_spdxr   r   r   r   r6   r;   r   r
   Ú
ValueErrorr	   r   r   r   r   ú<module>rP      só   ðð@ #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð €ðð ð ð ð !�b”jÐ!3Ñ4Ô4Ð à%˜gÐ&CÀSÑIÔIÐ ððð ð ð ð ˜zñ ô ð ðð ð ð ð ð r   