Ë íÅ du¸$Åãó—UddlZddlZddlmZddlmZmZmZmZm Z m Z ddl m Z eGd„d««Z Gd„d e«Zid d “d d “dd“dd“dd“dd“dej dej"«“dd“dd“dd“dd“d ej d!ej"«“d"ej e j$e j&zej"ej(z«“d#d$“d%d&“d'd(“d)d*“d+d,d-d.œ¥Zd/ed0<Gd1„d2«Zy)3éN)Ú dataclass)ÚDictÚIteratorÚNoReturnÚOptionalÚTupleÚUnioné)Ú Specifiercó,—eZdZUeed<eed<eed<y)ÚTokenÚnameÚtextÚpositionN)Ú__name__Ú __module__Ú __qualname__ÚstrÚ__annotations__Úint©óú9/usr/lib/python3.12/site-packages/packaging/_tokenizer.pyr r s…à ƒIØ ƒIØ„Mrr cóJ‡—eZdZdZdededeeefddfˆfd„ Zdefd„ZˆxZ S) ÚParserSyntaxErrorz7The provided source text could not be parsed correctly.ÚmessageÚsourceÚspanÚreturnNcóL•—||_||_||_t‰|�«y)N)rrrÚsuperÚ__init__)ÚselfrrrÚ __class__s €rr"zParserSyntaxError.__init__s%ø€ðˆŒ ؈Œ ؈Œ ä ‰ÑÕrcó—d|jdzd|jd|jdz zzdz}dj|j|j|g«S)NÚ rÚ~r Ú^z )rÚjoinrr)r#Úmarkers rÚ__str__zParserSyntaxError.__str__ sV€Ø�t—y‘y ‘|Ñ# c¨T¯Y©Y°q©\¸D¿I¹IÀa¹LÑ-HÑ&IÑIÈCÑOˆØ�}‰}˜dŸl™l¨D¯K©K¸Ð@ÓAÐAr) rrrÚ__doc__rrrr"r+Ú __classcell__)r$s@rrrsGø„ÙAð àð ðð ð �C˜�H‰oð ð õ ðB˜÷BrrÚLEFT_PARENTHESISz\(ÚRIGHT_PARENTHESISz\)Ú LEFT_BRACKETz\[Ú RIGHT_BRACKETz\]Ú SEMICOLONÚ;ÚCOMMAÚ,Ú QUOTED_STRINGzk ( ('[^']*') | ("[^"]*") ) ÚOPz(===|==|~=|!=|<=|>=|<|>)ÚBOOLOPz \b(or|and)\bÚINz\bin\bÚNOTz\bnot\bÚVARIABLEa‡ \b( python_version |python_full_version |os[._]name |sys[._]platform |platform_(release|system) |platform[._](version|machine|python_implementation) |python_implementation |implementation_(name|version) |extra )\b Ú SPECIFIERÚATz\@ÚURLz[^ \t]+Ú IDENTIFIERz\b[a-zA-Z0-9][a-zA-Z0-9._-]*\bÚVERSION_PREFIX_TRAILz\.\*z\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*z[ \t]+Ú$)ÚVERSION_LOCAL_LABEL_TRAILÚWSÚENDú&Dict[str, Union[str, re.Pattern[str]]]Ú DEFAULT_RULESc óÖ—eZdZdZdeddddfd„Zdeddfd „Zd d œded edefd „Zdedede fd„Z de fd„Z dddœdede e de e defd„Zej"dededededfd„«Zy)Ú Tokenizerz„Context-sensitive token parsing. Provides methods to examine the input stream to check whether the next token matches. rÚrulesrErNcó²—||_|j«D��cic]\}}|tj|«“Œc}}|_d|_d|_ycc}}w)Nr)rÚitemsÚreÚcompilerIÚ next_tokenr)r#rrIrÚpatterns rr"zTokenizer.__init___sS€ð ˆŒ à;@¿;¹;¼=ô2 Ù;H©-¨$°ˆD”"—*‘*˜WÓ%Ñ %¸=ò2 ˆŒ ð,0ˆŒØˆ� ùó 2 s› ArcóH—|j|«r|j«yy)z8Move beyond provided token name, if at current position.N)ÚcheckÚread)r#rs rÚconsumezTokenizer.consumels€à �:‰:�dÔ Ø �I‰I�Kð rF)ÚpeekrTcó,—|j�Jd|›d|j›�«‚||jvs Jd|›�«‚|j|}|j|j|j«}|€y|st ||d|j«|_y)zÿCheck whether the next token has the provided name. By default, if the check succeeds, the token *must* be read before another check. If `peek` is set to `True`, the token is not loaded and would need to be checked again. zCannot check for z, already have zUnknown token name: FrT)rNrIÚmatchrrr )r#rrTÚ expressionrVs rrQzTokenizer.checkqsŸ€ð �O‰OÐ #ð Jà ˜t˜h o°d·o±oÐ5HÐ Ió JØ #à�t—z‘zÑ!ÐBÐ%9¸$¸Ð#BÓBÐ!à—Z‘Z Ñ%ˆ à× Ñ  §¡¨d¯m©mÓ<ˆØ ˆ=ØÙÜ# D¨%°©(°D·M±MÓBˆDŒOØrÚexpectedcól—|j|«s|jd|›�«‚|j«S)zsExpect a certain token name next, failing with a syntax error otherwise. The token is *not* read. z Expected )rQÚraise_syntax_errorrR)r#rrXs rÚexpectzTokenizer.expect†s4€ð �z‰z˜$ÔØ×)Ñ)¨I°h°ZÐ*@ÓAÐ AØ�y‰y‹{Ðrcó„—|j}|€J‚|xjt|j«z c_d|_|S)z%Consume the next token and return it.N)rNrÚlenr)r#Útokens rrRzTokenizer.read�s9€à—‘ˆØÐ Ð Ð à � Š œ˜UŸZ™Z›Ñ(� ؈Œàˆ r)Ú span_startÚspan_endrr_r`cór—|€ |jn||€ |jn|f}t||j|¬«‚)z.Raise ParserSyntaxError at the given position.)rr)rrr)r#rr_r`rs rrZzTokenizer.raise_syntax_error™sC€ð(Ð/ˆD�MŠM°ZØ%Ð-ˆD�MŠM°8ð ˆô Ø Ø—;‘;Øô ð rÚ open_tokenÚ close_tokenÚaroundc#óôK—|j|«r|j}|j«nd}d–—|€y|j|«s|jd|›d|›d|›�|¬«|j«y­w)NzExpected matching z for z, after )r_)rQrrRrZ)r#rbrcrdÚ open_positions rÚenclosing_tokenszTokenizer.enclosing_tokens«szèø€ð �:‰:�jÔ !Ø ŸM™MˆMØ �I‰I�Kà ˆMã à Ð Ø à�z‰z˜+Ô&Ø × #Ñ #Ø$ [ M°°z°lÀ(È6È(ÐSØ(ð $ô ð � ‰ � ùs‚A6A8)rrrr,rr"rSÚboolrQr r[rRrrrrZÚ contextlibÚcontextmanagerrrgrrrrHrHXsù„ñð àð ð8ð ð ó ð˜Cð Dóð 05ò˜#ð¨ð¸óð*˜3ð¨Sð°Uóð�eóð%)Ø"&ò  àð ð˜S‘Mð  ð ˜3‘-ð  ð ó  ð$×ÑðØðØ,/ðØrss¢ðÜÛ Ý!ßC×Cå!ð ÷ðó ðô B˜ ôBð*0;ؘð0;à˜ð0;ð�Eð0;ð�Uð 0;ð �ð 0;ð  ˆTð 0;ð�Z�R—Z‘Zð ð � ‰ ó ð0;ð" Ð %ð#0;ð$ ˆoð%0;ð& ˆ)ð'0;ð( ˆ:ð)0;ð*� �— ‘ ð ð � ‰ óð+0;ðJ��—‘Ø×%Ñ%¨ ×(DÑ(DÑDØ � ‰ �R—]‘]Ñ"óðK0;ðR ˆ%ðS0;ðT ˆ:ðU0;ðVÐ3ðW0;ðX˜GðY0;ðZ"DØ Ø ò_0;€ Ð7ó0÷fhòhr