
    "h                       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y)4    )annotationsN)	dataclass)Iterator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__     V/var/www/html/Resume-Scraper/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   }dj                  | j                  | j                  |g      S )N r   ~r   ^z
    )r   joinr   r   )r   markers     r   __str__zParserSyntaxError.__str__"   sV    tyy|#cTYYq\DIIaL-H&IICO}}dllDKK@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END dict[str, 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                   || _         |j                         D ci c]  \  }}|t        j                  |       c}}| _        d | _        d| _        y c c}}w )Nr   )r   itemsrecompilerules
next_tokenr   )r   r   rK   r   patterns        r   r   zTokenizer.__init__b   sO     ;@;;=2
*7$D"**W%%2

 )-	2
s    A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.consumeo   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)rL   rK   matchr   r   r
   )r   r   rR   
expressionrT   s        r   rO   zTokenizer.checkt   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 )rO   raise_syntax_errorrP   )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)rL   r   lenr   )r   tokens     r   rP   zTokenizer.read   s6      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   r]   r^   r   s        r   rW   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 )r]   )rO   r   rP   rW   )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   rK   rC   r(   r)   )r   r   r(   r)   )r   r   rR   boolr(   rf   )r   r   rX   r   r(   r
   )r(   r
   )r   r   r]   
int | Noner^   rg   r(   r   )ra   r   rb   r   rc   r   r(   zIterator[None])r   r   r   r*   r   rQ   rO   rY   rP   rW   
contextlibcontextmanagerre   r   r   r   rF   rF   [   s     0	
 

 05 * "&#

 	

 
 

$ ,/<?	 r   rF   )
__future__r   rh   rI   dataclassesr   typingr   r   
specifiersr   r
   	Exceptionr   rJ   VERBOSE_operator_regex_str_version_regex_str
IGNORECASErD   r   rF   r   r   r   <module>rs      s   "  	 ! % !   B	 B*131313 E13 U	13
 13 T13 ZRZZ	 	

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

	 	

+13L %%	(D(DD


R]]"M13T 	%U13V 
:W13X 3Y13Z G[13\ "D
a13/ 1hh hr   