
    ցj                        % S SK Jr  S SKrS SKrS SKJr  S SKJrJr  SSK	J
r
  \(       a  S SKJrJr  \ " S S	5      5       r " S
 S\5      r0 S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S\R$                  5      _S\R"                  " S5      _S\R"                  " S5      _S\R"                  " S5      _S \R"                  " S!5      _S"\R"                  " S#\R$                  5      _S$\R"                  " \
R&                  \R$                  \R(                  -  5      _S%\R"                  " S&5      _S'\R"                  " S(5      _S)\R"                  " S*5      _S+\R"                  " S,5      _\R"                  " S-5      \R"                  " S.5      \R"                  " S/5      S0.ErS1\S2'    " S3 S45      rg)5    )annotationsN)	dataclass)TYPE_CHECKINGNoReturn   )	Specifier)	GeneratorMappingc                  8    \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
Token   )namepositiontextstrr   r   intr    N)__name__
__module____qualname____firstlineno__	__slots____annotations____static_attributes__r       N/mnt/workspace/venv-train/lib/python3.13/site-packages/packaging/_tokenizer.pyr   r      s    ,I
I
IMr   r   c                  J   ^  \ rS rSrSr        SU 4S jjrSS jrSrU =r$ )ParserSyntaxError   z7The provided source text could not be parsed correctly.c               F   > X0l         Xl        X l        [        TU ]  5         g )N)spanmessagesourcesuper__init__)selfr"   r#   r!   	__class__s       r   r%   ParserSyntaxError.__init__   s     	r   c                    SU R                   S   -  SU R                   S   U R                   S   -
  -  -   S-   nU R                   SU R                   SU 3$ )N r   ~r   ^z
    )r!   r"   r#   )r&   markers     r   __str__ParserSyntaxError.__str__'   sW    tyy|#cTYYq\DIIaL-H&IICO,,vdkk]&AAr   )r"   r#   r!   )r"   r   r#   r   r!   ztuple[int, int]returnNone)r0   r   )	r   r   r   r   __doc__r%   r.   r   __classcell__)r'   s   @r   r   r      s=    A 	
  
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                      \ rS rSrSrSr      SS jrSS jrSS.SS jjrSS	 jr	SS
 jr
SSS.       SS jjr\R                          SS j5       rSrg)	Tokenizer`   zxContext-sensitive token parsing.

Provides methods to examine the input stream to check whether the next token
matches.
)
next_tokenr   rulesr#   c               8    Xl         X l        S U l        SU l        g )Nr   )r#   rO   rN   r   )r&   r#   rO   s      r   r%   Tokenizer.__init__i   s     
(,r   c                R    U R                  U5      (       a  U R                  5         gg)z8Move beyond provided token name, if at current position.N)checkread)r&   r   s     r   consumeTokenizer.consumet   s    ::dIIK r   F)peekc               @   U R                   b   SU< SU R                   < 35       eXR                  ;   d   SU< 35       eU R                  U   nUR                  U R                  U R                  5      nUc  gU(       d  [        XS   U R                  5      U l         g)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)rN   rO   matchr#   r   r   )r&   r   rW   
expressionrY   s        r   rS   Tokenizer.checky   s     & 	
xt6IJ	
& zz!B%9$#BB!ZZ%
  dmm<=#D(DMMBDOr   c               v    U R                  U5      (       d  U R                  SU 35      eU R                  5       $ )zjExpect a certain token name next, failing with a syntax error otherwise.

The token is read and returned.
z	Expected )rS   raise_syntax_errorrT   )r&   r   expecteds      r   expectTokenizer.expect   s7    
 zz$))IhZ*@AAyy{r   c                    U R                   nUc   eU =R                  [        UR                  5      -  sl        SU l         U$ )z%Consume the next token and return it.N)rN   r   lenr   )r&   tokens     r   rT   Tokenizer.read   s9       UZZ(r   N)
span_startspan_endc               p    Uc  U R                   OUUc  U R                   OU4n[        UU R                  US9e)z.Raise ParserSyntaxError at the given position.)r#   r!   )r   r   r#   )r&   r"   re   rf   r!   s        r   r]   Tokenizer.raise_syntax_error   sC     (/DMMZ%-DMM8
  ;;
 	
r   c             #    #    U R                  U5      (       a  U R                  nU R                  5         OS nS v   Uc  g U R                  U5      (       d  U R                  SU SU SU 3US9  U R                  5         g 7f)NzExpected matching z for z, after )re   )rS   r   rT   r]   )r&   
open_tokenclose_tokenaroundopen_positions        r   enclosing_tokensTokenizer.enclosing_tokens   s      ::j!! MMMIIK M zz+&&##$[Mzl(6(S( $ 
 			s   A>B )r#   r   rO   zMapping[str, re.Pattern[str]]r0   r1   )r   r   r0   r1   )r   r   rW   boolr0   rp   )r   r   r^   r   r0   r   )r0   r   )r"   r   re   
int | Nonerf   rq   r0   r   )rj   r   rk   r   rl   r   r0   zGenerator[None, None, None])r   r   r   r   r2   r   r%   rU   rS   r_   rT   r]   
contextlibcontextmanagerrn   r   r   r   r   rL   rL   `   s     >I		 -		
 
	
 05 * "&#

 	

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

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

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

	 	

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


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