
    m&ph                         % S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
  SSKJr  \ " S S5      5       r " S S	\5      r0 S
S_SS_SS_SS_SS_SS_S\R                   " S\R"                  5      _SS_SS_SS_SS_S \R                   " S!\R"                  5      _S"\R                   " \R$                  \R&                  -   \R"                  \R(                  -  5      _S#S$_S%S&_S'S(_S)S*_S+S,S-S..ErS/\S0'    " S1 S25      rg)3    N)	dataclass)DictIteratorNoReturnOptionalTupleUnion   )	Specifierc                   4    \ rS rSr% \\S'   \\S'   \\S'   Srg)Token	   nametextposition N)__name__
__module____qualname____firstlineno__str__annotations__int__static_attributes__r       V/var/www/html/venv/lib/python3.13/site-packages/wheel/vendored/packaging/_tokenizer.pyr   r   	   s    
I
IMr   r   c                   X   ^  \ rS rSrSrS\S\S\\\4   SS4U 4S jjrS\4S	 jr	S
r
U =r$ )ParserSyntaxError   z7The provided source text could not be parsed correctly.messagesourcespanreturnNc                F   > X0l         Xl        X l        [        TU ]  5         g )N)r"   r    r!   super__init__)selfr    r!   r"   	__class__s       r   r&   ParserSyntaxError.__init__   s     	r   c                     SU R                   S   -  SU R                   S   U R                   S   -
  -  -   S-   nSR                  U R                  U R                  U/5      $ )N r   ~r
   ^z
    )r"   joinr    r!   )r'   markers     r   __str__ParserSyntaxError.__str__    sV    tyy|#cTYYq\DIIaL-H&IICO}}dllDKK@AAr   )r    r!   r"   )r   r   r   r   __doc__r   r   r   r&   r0   r   __classcell__)r(   s   @r   r   r      sM    A 	
 CHo 
B B Br   r   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            
           \ rS rSrSrS\SSSS4S jrS	\SS4S
 jrSS.S	\S\S\4S jjr	S	\S\S\
4S jrS\
4S jrSSS.S\S\\   S\\   S\4S jjr\R$                  S\S\S\S\S   4S j5       rSrg)	TokenizerX   zxContext-sensitive token parsing.

Provides methods to examine the input stream to check whether the next token
matches.
r!   rulesrK   r#   Nc                    Xl         UR                  5        VVs0 s H  u  p4U[        R                  " U5      _M     snnU l        S U l        SU l        g s  snnf )Nr   )r!   itemsrecompilerP   
next_tokenr   )r'   r!   rP   r   patterns        r   r&   Tokenizer.__init___   sO     ;@;;=2
;H-$D"**W%%=2

 ,0	2
s   #Ar   c                 R    U R                  U5      (       a  U R                  5         gg)z8Move beyond provided token name, if at current position.N)checkread)r'   r   s     r   consumeTokenizer.consumel   s    ::dIIK r   F)peekr]   c                @   U R                   b   SU< SU R                   < 35       eXR                  ;   d   SU< 35       eU R                  U   nUR                  U R                  U R                  5      nUc  gU(       d  [        XS   U R                  5      U l         g)zCheck 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.
zCannot check for z, already have zUnknown token name: Fr   T)rU   rP   matchr!   r   r   )r'   r   r]   
expressionr_   s        r   rY   Tokenizer.checkq   s     OO#	Jthodoo5HI	J#zz!B%9$#BB!ZZ%
  dmm<=#D(DMMBDOr   expectedc                v    U R                  U5      (       d  U R                  SU 35      eU R                  5       $ )zcExpect a certain token name next, failing with a syntax error otherwise.

The token is *not* read.
z	Expected )rY   raise_syntax_errorrZ   )r'   r   rb   s      r   expectTokenizer.expect   s7    
 zz$))IhZ*@AAyy{r   c                     U R                   nUc   eU =R                  [        UR                  5      -  sl        SU l         U$ )z%Consume the next token and return it.N)rU   r   lenr   )r'   tokens     r   rZ   Tokenizer.read   s9       UZZ(r   )
span_startspan_endr    rk   rl   c                p    Uc  U R                   OUUc  U R                   OU4n[        UU R                  US9e)z.Raise ParserSyntaxError at the given position.)r!   r"   )r   r   r!   )r'   r    rk   rl   r"   s        r   rd   Tokenizer.raise_syntax_error   sC     (/DMMZ%-DMM8
  ;;
 	
r   
open_tokenclose_tokenaroundc             #     #    U R                  U5      (       a  U R                  nU R                  5         OS nS v   Uc  g U R                  U5      (       d  U R                  SU SU SU 3US9  U R                  5         g 7f)NzExpected matching z for z, after )rk   )rY   r   rZ   rd   )r'   ro   rp   rq   open_positions        r   enclosing_tokensTokenizer.enclosing_tokens   s      ::j!! MMMIIK M zz+&&##$[Mzl(6(S( $ 
 			s   A>B )rU   r   rP   r!   )r   r   r   r   r2   r   r&   r[   boolrY   r   re   rZ   r   r   r   rd   
contextlibcontextmanagerr   rt   r   r   r   r   rN   rN   X   s     8	
 
C D 
 05 #   *3 S U e  %)"&

 SM	

 3-
 

$ ,/<?	$ r   rN   )rw   rS   dataclassesr   typingr   r   r   r   r   r	   
specifiersr   r   	Exceptionr   rT   VERBOSE_operator_regex_str_version_regex_str
IGNORECASErL   r   rN   r   r   r   <module>r      s    	 ! C C !   B	 B*0;0;0; E0; U	0;
 0; T0; RZZ	 	

	0;" 	
%#0;$ o%0;& 	)'0;( 
:)0;* 

	 	

+0;J %%	(D(DD


R]]"K0;R 	%S0;T 
:U0;V 3W0;X GY0;Z "D
_0;7 0fh hr   