§
    k•j}  ã                  ó¨   — 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__© ó    új/var/www/finuniver-perm.ru/html/portfolio/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	   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: Invalid license expression: '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 �]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 )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   ú Ú ÚevalNÚ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   G   s·  ø€ ð> "ð 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ð:øøøð
 ÐØð Oñ OˆØÐ3Ð3Ð3Ø×$Ò$ U§[¢[¡]¤]Ñ3Ô3Ð3Øàð 	OÐ!2°2Ô!6¸&Ò!@Ð!@Ø�JÐ&Ð&ØA¸ÐAÐA�Ý.¨wÑ7Ô7Ð7à×$Ò$¥Z°Ô%6°tÔ%<Ñ=Ô=Ð=Ð=à�~Š~˜cÑ"Ô"ð Ø# C R Cœj�Ø��à#�Ø�à×%Ò% mÑ4Ô4ð 	OÝ*×0Ò0°Ñ=Ô=ð <ØD°[ÐDÐD�GÝ2°7Ñ;Ô;Ð;Ø!×(Ò(¨°kÔ)BÀVÑ)KÑLÔLÐLÑLà¥hÐ.Ð.ØA°+ÐAÐA�GÝ2°7Ñ;Ô;Ð;Ø!×(Ò(­°+Ô)>¸tÔ)DÀvÑ)MÑNÔ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>rL      só   ðð@ #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð €ðð ð ð ð !�b”jÐ!3Ñ4Ô4Ð à%˜gÐ&CÀSÑIÔIÐ ððð ð ð ð ˜zñ ô ð ðsð sð sð sð sð sr   