
    j                       U d dl mZ d dlZd dlZd dlmZ d dlmZmZ ddl	m
Z
 erd dlmZmZ e G d d	                      Z G d
 de          Zi d ej        d          d ej        d          d ej        d          d ej        d          d ej        d          d ej        d          d ej        dej                  d ej        d          d ej        d          d ej        d          d  ej        d!          d" ej        d#ej                  d$ ej        e
j        ej        ej        z            d% ej        d&          d' ej        d(          d) ej        d*          d+ ej        d,           ej        d-           ej        d.           ej        d/          d0Zd1ed2<    G d3 d4          ZdS )5    )annotationsN)	dataclass)TYPE_CHECKINGNoReturn   )	Specifier)	GeneratorMappingc                  2    e Zd ZU dZded<   ded<   ded<   dS )Token)namepositiontextstrr   r   intr   N)__name__
__module____qualname__	__slots____annotations__     S/var/www/html/python-test/venv/lib/python3.11/site-packages/packaging/_tokenizer.pyr   r      s0         ,IIIIIIIMMMMMr   r   c                  ,     e Zd ZdZd fd	Zdd
Z xZS )ParserSyntaxErrorz7The provided source text could not be parsed correctly.messager   sourcespantuple[int, int]returnNonec               r    || _         || _        || _        t                                                       d S )N)r   r   r   super__init__)selfr   r   r   	__class__s       r   r$   zParserSyntaxError.__init__   s6     	r   c                    d| j         d         z  d| j         d         | j         d         z
  z  z   dz   }| j         d| j         d| S )N r   ~r   ^z
    )r   r   r   )r%   markers     r   __str__zParserSyntaxError.__str__'   sR    ty|#cTYq\DIaL-H&IICO,AAdkAAAAAr   )r   r   r   r   r   r   r    r!   )r    r   )r   r   r   __doc__r$   r,   __classcell__)r&   s   @r   r   r      s_        AA     B B B B B 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)
                |extras?
                |dependency_groups
            )\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]+z\Z)VERSION_LOCAL_LABEL_TRAILWSENDzdict[str, re.Pattern[str]]DEFAULT_RULESc                  v    e Zd ZdZdZd"d	Zd#dZddd$dZd%dZd&dZ	dddd'dZ
ej        d(d!            ZdS ))	TokenizerzContext-sensitive token parsing.

    Provides methods to examine the input stream to check whether the next token
    matches.
    )
next_tokenr   rulesr   r   r   rI   Mapping[str, re.Pattern[str]]r    r!   c               >    || _         || _        d | _        d| _        d S )Nr   )r   rI   rH   r   )r%   r   rI   s      r   r$   zTokenizer.__init__i   s$     
(,r   r   c                \    |                      |          r|                                  dS dS )z8Move beyond provided token name, if at current position.N)checkread)r%   r   s     r   consumezTokenizer.consumet   s1    ::d 	IIKKKKK	 	r   F)peekrP   boolc                  | j         J d|d| j                     || j        v sJ d|            | j        |         }|                    | j        | j                  }|dS |s!t          ||d         | j                  | _         dS )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.
        NzCannot check for z, already have zUnknown token name: Fr   T)rH   rI   matchr   r   r   )r%   r   rP   
expressionrS   s        r   rM   zTokenizer.checky   s     &&JJJtJJ '&& tz!!!#B$#B#B!!!Z%
  dm<<=5 	C#D%(DMBBDOtr   expectedr   c                   |                      |          s|                     d|           |                                 S )zzExpect a certain token name next, failing with a syntax error otherwise.

        The token is read and returned.
        z	Expected )rM   raise_syntax_errorrN   )r%   r   rU   s      r   expectzTokenizer.expect   sD    
 zz$ 	B))*@h*@*@AAAyy{{r   c                n    | j         }|J | xj        t          |j                  z  c_        d| _         |S )z%Consume the next token and return it.N)rH   r   lenr   )r%   tokens     r   rN   zTokenizer.read   s9       UZ(r   N)
span_startspan_endr   r\   
int | Noner]   r   c               \    || j         n||| j         n|f}t          || j        |          )z.Raise ParserSyntaxError at the given position.N)r   r   )r   r   r   )r%   r   r\   r]   r   s        r   rW   zTokenizer.raise_syntax_error   sK     (/DMMZ%-DMM8
  ;
 
 
 	
r   
open_tokenclose_tokenaroundGenerator[None, None, None]c             #    K   |                      |          r| j        }|                                  nd }d V  |d S |                      |          s |                     d| d| d| |           |                                  d S )NzExpected matching z for z, after )r\   )rM   r   rN   rW   )r%   r`   ra   rb   open_positions        r   enclosing_tokenszTokenizer.enclosing_tokens   s       ::j!! 	! MMIIKKKK M Fzz+&& 	##S[SSzSS6SS( $   
 			r   )r   r   rI   rJ   r    r!   )r   r   r    r!   )r   r   rP   rQ   r    rQ   )r   r   rU   r   r    r   )r    r   )r   r   r\   r^   r]   r^   r    r   )r`   r   ra   r   rb   r   r    rc   )r   r   r   r-   r   r$   rO   rM   rX   rN   rW   
contextlibcontextmanagerrf   r   r   r   rG   rG   `   s          >I	 	 	 	   
 05      *       "&#
 
 
 
 
 
$      r   rG   )
__future__r   rg   redataclassesr   typingr   r   
specifiersr   collections.abcr	   r
   r   	Exceptionr   compileVERBOSE_specifier_regex_str
IGNORECASErE   r   rG   r   r   r   <module>rt      sZ   " " " " " " "     				 ! ! ! ! ! ! * * * * * * * * ! ! ! ! ! ! 322222222        B B B B B	 B B B*1-

5))1-E**1- JBJu%%1- ZRZ&&	1-
 D!!1- ZRZ1- ZRZ	 	
	 	1-" 	*"*0
1
1#1-$ jbj))%1-& 	*"*Y

'1-( 
:2:j!!)1-* 

	 	
 +1-L &

R]" M1-T 	*"*U

U1-V 
:2:j!!W1-X *"*>??Y1-Z JBJw//[1-\ ",,N!O!O
"*Y

2:ea1- 1- 1- 1 1 1 1hh h h h h h h h h hr   