
    #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y)5    )annotationsN)	dataclass)TYPE_CHECKINGNoReturn   )	Specifier)	GeneratorMappingc                  0    e Zd ZU dZded<   ded<   ded<   y)Token)namepositiontextstrr   r   intr   N)__name__
__module____qualname__	__slots____annotations__     X/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/packaging/_tokenizer.pyr   r      s    ,I
I
IMr   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.c               L    || _         || _        || _        t        |           y )N)spanmessagesourcesuper__init__)selfr   r   r   	__class__s       r   r!   zParserSyntaxError.__init__   s%     	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__'   sW    tyy|#cTYYq\DIIaL-H&IICO,,vdkk]&AAr   )r   r   r   r   r   ztuple[int, int]returnNone)r*   r   )r   r   r   __doc__r!   r)   __classcell__)r#   s   @r   r   r      s7    A 	
  
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                      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y
)	TokenizerzContext-sensitive token parsing.

    Provides methods to examine the input stream to check whether the next token
    matches.
    )
next_tokenr   rulesr   c               <    || _         || _        d | _        d| _        y )Nr   )r   rH   rG   r   )r"   r   rH   s      r   r!   zTokenizer.__init__i   s      
(,r   c                H    | j                  |      r| j                          yy)z8Move beyond provided token name, if at current position.N)checkread)r"   r   s     r   consumezTokenizer.consumet   s    ::dIIK r   F)peekc               ,   | j                   J d|d| j                          || j                  v s
J d|       | j                  |   }|j                  | j                  | j                        }|y|st        ||d   | j                        | _         y)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)rG   rH   matchr   r   r   )r"   r   rN   
expressionrP   s        r   rK   zTokenizer.checky   s     & 	
xt6IJ	
& tzz!B%9$#BB!ZZ%
  dmm<=#D%(DMMBDOr   c               l    | j                  |      s| j                  d|       | j                         S )zzExpect a certain token name next, failing with a syntax error otherwise.

        The token is read and returned.
        z	Expected )rK   raise_syntax_errorrL   )r"   r   expecteds      r   expectzTokenizer.expect   s4    
 zz$))IhZ*@AAyy{r   c                    | j                   }|J | xj                  t        |j                        z  c_        d| _         |S )z%Consume the next token and return it.N)rG   r   lenr   )r"   tokens     r   rL   zTokenizer.read   s9       UZZ(r   N)
span_startspan_endc               r    || j                   n||| j                   n|f}t        || j                  |      )z.Raise ParserSyntaxError at the given position.)r   r   )r   r   r   )r"   r   rY   rZ   r   s        r   rS   zTokenizer.raise_syntax_error   sC     (/DMMZ%-DMM8
  ;;
 	
r   c             #     K   | j                  |      r| j                  }| j                          nd }d  |y | j                  |      s| j                  d| d| d| |       | j                          y w)NzExpected matching z for z, after )rY   )rK   r   rL   rS   )r"   
open_tokenclose_tokenaroundopen_positions        r   enclosing_tokenszTokenizer.enclosing_tokens   sz      ::j! MMMIIK M zz+&##$[Mzl(6(S( $ 
 			s   A6A8)r   r   rH   zMapping[str, re.Pattern[str]]r*   r+   )r   r   r*   r+   )r   r   rN   boolr*   rb   )r   r   rT   r   r*   r   )r*   r   )r   r   rY   
int | NonerZ   rc   r*   r   )r]   r   r^   r   r_   r   r*   zGenerator[None, None, None])r   r   r   r,   r   r!   rM   rK   rU   rL   rS   
contextlibcontextmanagerra   r   r   r   rF   rF   `   s     >I		 -		
 
	
 05 * "&#

 	

 
 

$ ,/<?	$ r   rF   )
__future__r   rd   redataclassesr   typingr   r   
specifiersr   collections.abcr	   r
   r   	Exceptionr   compileVERBOSE_specifier_regex_str
IGNORECASErD   r   rF   r   r   r   <module>rq      sX   "  	 ! * !2   B	 B*1-


5)1-E*1- JBJJu%1- ZRZZ&	1-
 D!1- ZRZZ1- ZRZZ	 	

	1-" 	*"**0
1#1-$ jbjj)%1-& 	*"**Y
'1-( 
:2::j!)1-* 


	 	

+1-L &&


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