
    wi-                        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m	Z	 ddl
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$                  z   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.      d/Zd0ed1<    G d2 d3      Zy)4    )annotationsN)	dataclass)	GeneratorMappingNoReturn   )	Specifierc                  ,    e Zd ZU ded<   ded<   ded<   y)TokenstrnametextintpositionN)__name__
__module____qualname____annotations__     S/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/packaging/_tokenizer.pyr   r      s    
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]+$)VERSION_LOCAL_LABEL_TRAILWSENDzdict[str, re.Pattern[str]]DEFAULT_RULESc                      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y	)	TokenizerzContext-sensitive token parsing.

    Provides methods to examine the input stream to check whether the next token
    matches.
    c               <    || _         || _        d | _        d| _        y )Nr   )r   rules
next_tokenr   )r    r   rG   s      r   r   zTokenizer.__init__b   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.consumem   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)rH   rG   matchr   r   r   )r    r   rM   
expressionrO   s        r   rJ   zTokenizer.checkr   s     & 	
xt6IJ	
& tzz!B%9$#BB!ZZ%
  dmm<=#D%(DMMBDOr   c               l    | j                  |      s| j                  d|       | j                         S )zsExpect a certain token name next, failing with a syntax error otherwise.

        The token is *not* read.
        z	Expected )rJ   raise_syntax_errorrK   )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)rH   r   lenr   )r    tokens     r   rK   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   rX   rY   r   s        r   rR   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 )rX   )rJ   r   rK   rR   )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   rG   zMapping[str, re.Pattern[str]]r(   r)   )r   r   r(   r)   )r   r   rM   boolr(   ra   )r   r   rS   r   r(   r   )r(   r   )r   r   rX   
int | NonerY   rb   r(   r   )r\   r   r]   r   r^   r   r(   zGenerator[None, None, None])r   r   r   r*   r   rL   rJ   rT   rK   rR   
contextlibcontextmanagerr`   r   r   r   rE   rE   [   s    		 -		
 
	
 05 * "&#

 	

 
 

$ ,/<?	$ r   rE   )
__future__r   rc   redataclassesr   typingr   r   r   
specifiersr	   r   	Exceptionr   compileVERBOSE_operator_regex_str_version_regex_str
IGNORECASErC   r   rE   r   r   r   <module>rp      s`   "  	 ! / / !   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 %%	(D(DD


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