
    жvg                       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 G d d                      Z G d	 d
e          Zi ddddddddddddd ej        dej                  dddddddd d! ej        d"ej                  d# ej        e
j        e
j        z   ej        ej        z            d$d%d&d'd(d)d*d+d,d-d.d/Zd0ed1<    G d2 d3          ZdS )4    )annotationsN)	dataclass)IteratorNoReturn   )	Specifierc                  .    e Zd ZU ded<   ded<   ded<   dS )TokenstrnametextintpositionN)__name__
__module____qualname____annotations__     ]/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_vendor/packaging/_tokenizer.pyr
   r
      s+         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   }d                    | j        | j        |g          S )N r   ~r   ^z
    )r   joinr   r   )r"   markers     r   __str__zParserSyntaxError.__str__"   sO    ty|#cTYq\DIaL-H&IICO}}dlDK@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)
                |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, str | re.Pattern[str]]DEFAULT_RULESc                  r    e 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.
    r   r   rulesrD   r   r   c               v    || _         d |                                D             | _        d | _        d| _        d S )Nc                >    i | ]\  }}|t          j        |          S r   )recompile).0r   patterns      r   
<dictcomp>z&Tokenizer.__init__.<locals>.<dictcomp>h   s5     2
 2
 2
*7$D"*W%%2
 2
 2
r   r   )r   itemsrH   
next_tokenr   )r"   r   rH   s      r   r!   zTokenizer.__init__a   sG     2
 2
;@;;==2
 2
 2

 )-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.consumen   s1    ::d 	IIKKKKK	 	r   F)peekrV   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)rQ   rH   matchr   r   r
   )r"   r   rV   
expressionrY   s        r   rS   zTokenizer.checks   s     O##ItIIdoII $##tz!!!#B$#B#B!!!Z%
  dm<<=5 	C#D%(DMBBDOtr   expectedr
   c                   |                      |          s|                     d|           |                                 S )zsExpect a certain token name next, failing with a syntax error otherwise.

        The token is *not* read.
        z	Expected )rS   raise_syntax_errorrT   )r"   r   r[   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)rQ   r   lenr   )r"   tokens     r   rT   zTokenizer.read   s9       UZ(r   N)
span_startspan_endr   rb   
int | Nonerc   r   c               \    || j         n||| j         n|f}t          || j        |          )z.Raise ParserSyntaxError at the given position.N)r   r   )r   r   r   )r"   r   rb   rc   r   s        r   r]   zTokenizer.raise_syntax_error   sK     (/DMMZ%-DMM8
  ;
 
 
 	
r   
open_tokenclose_tokenaroundIterator[None]c             #    K   |                      |          r| j        }|                                  nd }d V  |d S |                      |          s |                     d| d| d| |           |                                  d S )NzExpected matching z for z, after )rb   )rS   r   rT   r]   )r"   rf   rg   rh   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   rH   rD   r   r   )r   r   r   r   )r   r   rV   rW   r   rW   )r   r   r[   r   r   r
   )r   r
   )r   r   rb   rd   rc   rd   r   r   )rf   r   rg   r   rh   r   r   ri   )r   r   r   r+   r!   rU   rS   r^   rT   r]   
contextlibcontextmanagerrl   r   r   r   rG   rG   Z   s               
 05      *       "&#
 
 
 
 
 
$      r   rG   )
__future__r   rm   rK   dataclassesr   typingr   r   
specifiersr   r
   	Exceptionr   rL   VERBOSE_operator_regex_str_version_regex_str
IGNORECASErE   r   rG   r   r   r   <module>rx      sv   " " " " " " "     				 ! ! ! ! ! ! % % % % % % % % ! ! ! ! ! !        B B B B B	 B B B*030303 E03 U	03
 03 T03 ZRZ	 	
	 	03" 	
%#03$ o%03& 	)'03( 
:)03* 

	 	
 +03J %	(DD

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