
    %^g                    0   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ  ed      Ze G d d	e
             Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)z2Classes for representing match statement patterns.    )annotations)TypeVar)trait)
ExpressionNameExprNodeRefExpr)PatternVisitorTc                      e Zd ZdZdZddZy)PatternzA pattern node. c                ,    t        dt        |             )NzNot implemented)RuntimeErrortypeselfvisitors     -lib/python3.12/site-packages/mypy/patterns.pyacceptzPattern.accept   s    ,d4j99    Nr   zPatternVisitor[T]returnr   )__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r      s    I:r   r   c                  B     e Zd ZU dZded<   ded<   d fdZd	dZ xZS )
	AsPatternzThe pattern <pattern> as <name>Pattern | NonepatternNameExpr | Nonenamec                >    t         |           || _        || _        y N)super__init__r"   r$   )r   r"   r$   	__class__s      r   r(   zAsPattern.__init__$   s    	r   c                $    |j                  |       S r&   )visit_as_patternr   s     r   r   zAsPattern.accept)       ''--r   )r"   r!   r$   r#   r   Noner   r   r   r   r   __annotations__r(   r   __classcell__r)   s   @r   r    r       s    ) 

.r   r    c                  8     e Zd ZU dZded<   d fdZddZ xZS )	OrPatternz'The pattern <pattern> | <pattern> | ...list[Pattern]patternsc                0    t         |           || _        y r&   r'   r(   r5   r   r5   r)   s     r   r(   zOrPattern.__init__2        r   c                $    |j                  |       S r&   )visit_or_patternr   s     r   r   zOrPattern.accept6   r,   r   r5   r4   r   r-   r   r.   r1   s   @r   r3   r3   -   s    1!.r   r3   c                  8     e Zd ZU dZded<   d fdZddZ xZS )ValuePatternzThe pattern x.y (or x.y.z, ...)r   exprc                0    t         |           || _        y r&   )r'   r(   r?   )r   r?   r)   s     r   r(   zValuePattern.__init__?   s    	r   c                $    |j                  |       S r&   )visit_value_patternr   s     r   r   zValuePattern.acceptC       **400r   )r?   r   r   r-   r   r.   r1   s   @r   r>   r>   :   s    )
1r   r>   c                  4     e Zd ZU ded<   d fdZddZ xZS )SingletonPatternbool | Nonevaluec                0    t         |           || _        y r&   )r'   r(   rG   )r   rG   r)   s     r   r(   zSingletonPattern.__init__K   s    
r   c                $    |j                  |       S r&   )visit_singleton_patternr   s     r   r   zSingletonPattern.acceptO   s    ..t44r   )rG   rF   r   r-   r   r   r   r   r/   r(   r   r0   r1   s   @r   rE   rE   G   s    5r   rE   c                  8     e Zd ZU dZded<   d fdZddZ xZS )SequencePatternzThe pattern [<pattern>, ...]r4   r5   c                0    t         |           || _        y r&   r7   r8   s     r   r(   zSequencePattern.__init__X   r9   r   c                $    |j                  |       S r&   )visit_sequence_patternr   s     r   r   zSequencePattern.accept\   s    --d33r   r<   r   r.   r1   s   @r   rM   rM   S   s    &!4r   rM   c                  4     e Zd ZU ded<   d fdZddZ xZS )StarredPatternr#   capturec                0    t         |           || _        y r&   )r'   r(   rS   )r   rS   r)   s     r   r(   zStarredPattern.__init__e   s    r   c                $    |j                  |       S r&   )visit_starred_patternr   s     r   r   zStarredPattern.accepti       ,,T22r   )rS   r#   r   r-   r   rK   r1   s   @r   rR   rR   `   s     3r   rR   c                  X     e Zd ZU ded<   ded<   ded<   	 	 	 	 	 	 	 	 d	 fdZd
dZ xZS )MappingPatternlist[Expression]keysr4   valuesr#   restc                ~    t         |           t        |      t        |      k(  sJ || _        || _        || _        y r&   )r'   r(   lenr[   r\   r]   )r   r[   r\   r]   r)   s       r   r(   zMappingPattern.__init__r   s;     	4yCK'''		r   c                $    |j                  |       S r&   )visit_mapping_patternr   s     r   r   zMappingPattern.accept{   rW   r   )r[   rZ   r\   r4   r]   r#   r   r-   r   rK   r1   s   @r   rY   rY   m   s?    

$.;CR	3r   rY   c                  j     e Zd ZU dZded<   ded<   ded<   ded<   	 	 	 	 	 	 	 	 	 	 d fd	Zdd
Z xZS )ClassPatternzThe pattern Cls(...)r	   	class_refr4   positionals	list[str]keyword_keyskeyword_valuesc                    t         |           t        |      t        |      k(  sJ || _        || _        || _        || _        y r&   )r'   r(   r_   rd   re   rg   rh   )r   rd   re   rg   rh   r)   s        r   r(   zClassPattern.__init__   sG     	< C$7777"&(,r   c                $    |j                  |       S r&   )visit_class_patternr   s     r   r   zClassPattern.accept   rC   r   )
rd   r	   re   r4   rg   rf   rh   r4   r   r-   r   r.   r1   s   @r   rc   rc      sX    !!-- #-  	-
 &- 
-1r   rc   N)r   
__future__r   typingr   mypy_extensionsr   
mypy.nodesr   r   r   r	   mypy.visitorr
   r   r   r    r3   r>   rE   rM   rR   rY   rc   r   r   r   <module>rq      s    8 "  ! : : 'CL :d : :. .(
. 
.
17 
1	5w 	5
4g 
4
3W 
33W 3$17 1r   