o
    DD©iW  ã                   @   sˆ   U d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ e
ƒ r,endZeeegejf  ed< G dd	„ d	eƒZdS )
é    )ÚAnyÚCallableÚOptionalN)Úparse_statement)ÚCSTNodeTest)Ú	is_native)Údata_providerÚparserc                   @   sÚ  e Zd Zeeje d¡eje e d¡¡e 	e 
¡ f¡deje e d¡¡e 	e 
¡ f¡dgddedœejejddejejejejd	e ¡ ge ¡ gd
dejdde d¡e d¡de 	e 
¡ g¡dgddedœeje d¡ejejg e ¡ e ¡ de 	e 
¡ f¡dejeje e e d¡¡¡ge ¡ e ¡ de 	e 
¡ f¡dejeje e e d¡¡e ¡ ¡ge ¡ e ¡ de 	e 
¡ f¡dgddedœeje d¡eje g ¡e 	e 
¡ f¡deje e e e d¡¡e ¡ ¡e e e d¡¡¡g¡e 	e 
¡ f¡deje e e e d¡¡e ¡ ¡g¡e 	e 
¡ f¡deje e e e d¡¡e ¡ ¡eje ¡ de e e d¡¡¡g¡e 	e 
¡ f¡dgddedœeje d¡eje g ¡e 	e 
¡ f¡deje eje d¡e e d¡¡e ¡ deje d¡e e d¡¡dg¡e 	e 
¡ f¡deje eje d¡e e d¡¡e ¡ dg¡e 	e 
¡ f¡dejeje d¡de 	e 
¡ f¡dgddedœeje d¡ejeje e d¡e d¡¡de 	e 
¡ f¡dejeje e d¡e d¡¡e e e d¡¡¡gde 	e 
¡ f¡dejeje e d¡e d¡¡eje e d¡¡e ¡ dgde 	e 
¡ f¡dejeje e d¡e d¡¡eje d¡e e d¡¡dgde 	e 
¡ f¡dejeje e d¡e d¡¡eje d¡e e d¡¡e ¡ dgde 	e 
¡ f¡dejeje e d¡e d¡¡e e e d¡¡e ¡ ¡e e e d¡¡e ¡ ¡geje d¡e e d¡¡e ¡ deje d ¡e e d¡¡e ¡ dgd!e 	e 
¡ f¡dgdd"edœeje d¡eje ¡ e 	e 
¡ f¡dejeje d¡d#e 	e 
¡ f¡dejeje e d¡¡e d ¡e d¡e d¡de 	e 
¡ f¡dgdd$edœeje d¡eje e  e e d¡¡e !¡ ¡e  e e d%¡¡e !¡ ¡e  e e d&¡¡¡g¡e 	e 
¡ f¡dgdd'edœeje d¡ejeje ¡ e ¡ gd(d(de 	e 
¡ f¡deje e e e d¡¡¡g¡e 	e 
¡ f¡dejeje e e e d¡¡¡g¡e d ¡d)e 	e 
¡ f¡deje e  e e d¡¡¡e  e e d%¡¡¡e  e e d&¡¡¡g¡e 	e 
¡ f¡dgdd*d(dœejejde ¡ ge ¡ gd+eje ejde ¡ ge ¡ gd+¡e 	e 
¡ f¡ejd,dd-gejd,dd.d/edœf
ƒd0e"d1d(fd2d3„ƒZ#d(S )4Ú	MatchTestÚxÚNone)ÚpatternÚbodyz"foo")ÚsubjectÚcasesz2match x:
    case None: pass
    case "foo": pass
)ÚnodeÚcoder	   )ÚvalueÚ1)r   ÚlparÚrparÚzú )r   ÚnameÚwhitespace_before_asÚwhitespace_after_asz!match x:
    case (1) as z: pass
)ÚlbracketÚrbracketzHmatch x:
    case []: pass
    case [None]: pass
    case [None,]: pass
)Úcommazkmatch x:
    case (): pass
    case (None,None): pass
    case (None,): pass
    case (None,*_,None): pass
z"a")Úkeyr   r   z"b")r   r   Úrest)r    ztmatch x:
    case {}: pass
    case {"a": None,"b": None}: pass
    case {"a": None,}: pass
    case {**rest}: pass
ÚaÚb)Úcls)r#   ÚpatternsÚfoo)r#   ÚkwdsÚbar)r#   r$   r&   z½match x:
    case a.b(): pass
    case a.b(None): pass
    case a.b(None,): pass
    case a.b(foo=None): pass
    case a.b(foo=None,): pass
    case a.b(None,None,foo=None,bar=None,): pass
)r   zHmatch x:
    case _: pass
    case foo: pass
    case None as bar: pass
ÚFalseÚTruez,match x:
    case None | False | True: pass
N)r   r   zwmatch x:
    case *_, *_: pass
    case (None,): pass
    case (None,) as bar: pass
    case None | False | True: pass
)r   r   Ú )r   r   Úwhitespace_after_case)r   r   Úwhitespace_after_matchzmatch(x):
    case(None): pass
ÚkwargsÚreturnc                 K   s   | j di |¤Ž d S )N© )Úvalidate_node)Úselfr-   r/   r/   úW/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_match.pyÚ
test_valid   s      [zMatchTest.test_valid)$Ú__name__Ú
__module__Ú__qualname__r   ÚcstÚMatchÚNameÚ	MatchCaseÚMatchSingletonÚSimpleStatementSuiteÚPassÚ
MatchValueÚSimpleStringr	   ÚMatchAsÚIntegerÚ	LeftParenÚ
RightParenÚSimpleWhitespaceÚ	MatchListÚLeftSquareBracketÚRightSquareBracketÚMatchSequenceElementÚCommaÚ
MatchTupleÚ	MatchStarÚMatchMappingÚMatchMappingElementÚ
MatchClassÚ	AttributeÚMatchKeywordElementÚMatchOrÚMatchOrElementÚBitOrr   r3   r/   r/   r/   r2   r
      s   þþûþïÿÿÿûÿÿðíÿüâ"ýúÿÿù	öþÿø
õëþ'Ó1ÿüþÿûÿôþÿÿ÷þÿÿøÿñàþ6ÃAÿüýþúÿòýÿÿ	öÿüÝþ.Ë9ÿüÿÿþ÷þÿþ	öþÿþ	öýÿþ
õþþûýýúôæÉþXŸeþþüù÷þåþþÿ÷ÿðÿþçýúÿÿÿø
ÿÿÿø
õÿÿÿùÿòàþ4Æ>ÿýÿÿ÷ÿÿíç   Äÿ   Zr
   )Útypingr   r   r   Úlibcstr7   r   Úlibcst._nodes.tests.baser   Úlibcst._parser.entrypointsr   Úlibcst.testing.utilsr   r	   ÚstrÚCSTNodeÚ__annotations__r
   r/   r/   r/   r2   Ú<module>   s   ÿ