K iSddlmZddlZddlmZmZddlmZmZgdZ ejdZ ede Z Gdd eZ d d Zy) ) annotationsN)NewTypecast) EXCEPTIONSLICENSES)InvalidLicenseExpressionNormalizedLicenseExpressioncanonicalize_license_expressionz^[A-Za-z0-9.-]*$r ceZdZdZy)rzRaised 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__a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/packaging/licenses/__init__.pyrr2srrc |sd|}t||jddjdd}d}|jDcic]O}|jj |jr |jd|t |dzQ}}|j}|j}g}|D]^}|dvr|j d|d k(r|j d 0|dk(r|r|d d vrd|}t||j |`d j|} t| tt} | durd|}t|dg} |D]}|dvr | j |j(| r<| d dk(r4|tvrd|}t|| j t|df|jdr|dd } d} n|} d} | j dr=tj!| sd| }t|| j || | z| t"vrd| }t|| j t"| d| z d j| }t%t&|jddjddScc}w#t$rd} YwwxYw)NzInvalid license expression: (z ( )z ) z LicenseRef->orandwithrrFalserr>rr TFWITHzUnknown license exception: id+z licenseref-zInvalid licenseref: zUnknown license: z( z ))rreplacesplitlower startswithlenappendjoinevalglobalslocals Exceptionupperrendswithlicense_ref_allowedmatchrrr )raw_license_expressionmessagelicense_expressionlicenseref_prefixref license_refstokens python_tokenstokenpython_expressioninvalidnormalized_tokens final_tokensuffixnormalized_expressions rr r <s  "01G0JK&w//077UCKKCQVW%&++-  99; ! !"3"9"9"; < ]S->)?)A%BBBL,113  % % 'F M ( 7 7   ) f_   & c\m b0A0V45K4NOG*73 3   ' (/(')VX>e01G0JK&w/T9O 3 3  $ $U[[] 3  !22!6&!@J&7yA.w77  $ $Z%6t%< =~~c"#CRj # %%m4*00= 4[ODG27;;!((k)BV)KLh. 1+AG27;;!((+)>t)Dv)MN9O< HH%67 #%%dC088sC O< s AJ76J<< K  K )r/strreturnr ) __future__rretypingrrpackaging.licenses._spdxrr__all__compiler-r>r ValueErrorrr rrrrGsa@# 9  !bjj!34%&CSIzUU Ur