
    mi                        d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ  G d dee          ZdS )	    )annotations)AssertTypeExprAssignmentStmtCastExprClassDefForStmtFuncItemNamedTupleExprNewTypeExprPromoteExpr	TypeAliasTypeAliasExprTypeAliasStmtTypeApplicationTypedDictExprTypeFormExprTypeVarExprVarWithStmt)TraverserVisitor)Type)TypeTraverserVisitorc                       e Zd ZdZd.dZd/dZd0 fd
Zd1 fdZd2 fdZd3 fdZ	d4 fdZ
d5 fdZd6 fdZd7 fdZd8 fdZd9 fdZd: fdZd; fd Zd< fd"Zd= fd$Zd> fd&Zd? fd(Zd@ fd*ZdAd-Z xZS )BMixedTraverserVisitorz2Recursive traversal of both Node and Type objects.returnNonec                    d| _         d S )NF)in_type_alias_expr)selfs    k/var/www/html/bestrading.cuttalo.com/scripts/kaggle-env/lib/python3.11/site-packages/mypy/mixedtraverser.py__init__zMixedTraverserVisitor.__init__   s    "'    varr   c               :    |                      |j                   d S N)visit_optional_typetype)r   r#   s     r    	visit_varzMixedTraverserVisitor.visit_var$   s      *****r"   or	   c               ~    t                                          |           |                     |j                   d S r%   )super
visit_funcr&   r'   r   r)   	__class__s     r    r,   z MixedTraverserVisitor.visit_func'   s7    1  (((((r"   r   c                   t                                          |           |j        }|rB|j        D ]}|                    |            |j        r|j                            |            d S d S d S r%   )r+   visit_class_definfobasesacceptspecial_alias)r   r)   r1   baser.   s       r    r0   z%MixedTraverserVisitor.visit_class_def+   s     	"""v 	0
 " "D!!!!! 0"))$/////		0 	00 0r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_type_alias_exprnoder3   r-   s     r    r7   z+MixedTraverserVisitor.visit_type_alias_expr6   s5    %%a(((	dr"   r   c                   t                                          |           |j                            |            |j        D ]}|                    |            d S r%   )r+   visit_type_var_exprupper_boundr3   values)r   r)   valuer.   s      r    r:   z)MixedTraverserVisitor.visit_type_var_expr:   sa    ##A&&&	T"""X 	 	ELL	 	r"   r   c                   t                                          |           |                     |j        j                   d S r%   )r+   visit_typeddict_exprr&   r1   typeddict_typer-   s     r    r?   z*MixedTraverserVisitor.visit_typeddict_expr@   s:    $$Q'''  !677777r"   r
   c                   t                                          |           |j        j        sJ |j        j                            |            d S r%   )r+   visit_namedtuple_exprr1   
tuple_typer3   r-   s     r    rB   z+MixedTraverserVisitor.visit_namedtuple_exprD   sK    %%a(((v    	  &&&&&r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit__promote_exprr'   r3   r-   s     r    rE   z)MixedTraverserVisitor.visit__promote_exprI   s5    ##A&&&	dr"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_newtype_exprr&   old_typer-   s     r    rG   z(MixedTraverserVisitor.visit_newtype_exprM   s7    ""1%%%  ,,,,,r"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_assignment_stmtr&   r'   r-   s     r    rJ   z+MixedTraverserVisitor.visit_assignment_stmtS   s7    %%a(((  (((((r"   r   c                   t                                          |           |j        |j                            |            d S d S r%   )r+   visit_type_alias_stmt
alias_noder3   r-   s     r    rL   z+MixedTraverserVisitor.visit_type_alias_stmtW   sG    %%a(((<#L%%%%% $#r"   r   c                   t                                          |           d| _        |j                            |            d| _        d S )NTF)r+   visit_type_aliasr   targetr3   r-   s     r    rO   z&MixedTraverserVisitor.visit_type_alias\   sE      ###"&	"'r"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_for_stmtr&   
index_typer-   s     r    rR   z$MixedTraverserVisitor.visit_for_stmtb   s7    q!!!  .....r"   r   c                   t                                          |           |j        D ]}|                    |            d S r%   )r+   visit_with_stmtanalyzed_typesr3   )r   r)   typr.   s      r    rU   z%MixedTraverserVisitor.visit_with_stmtf   sL    """# 	 	CJJt	 	r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_cast_exprr'   r3   r-   s     r    rY   z%MixedTraverserVisitor.visit_cast_exprm   s5    """	dr"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_type_form_exprr'   r3   r-   s     r    r[   z*MixedTraverserVisitor.visit_type_form_exprq   s5    $$Q'''	dr"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_assert_type_exprr'   r3   r-   s     r    r]   z,MixedTraverserVisitor.visit_assert_type_expru   s5    &&q)))	dr"   r   c                   t                                          |           |j        D ]}|                    |            d S r%   )r+   visit_type_applicationtypesr3   )r   r)   tr.   s      r    r_   z,MixedTraverserVisitor.visit_type_applicationy   sG    &&q))) 	 	AHHTNNNN	 	r"   ra   Type | Nonec               8    |r|                     |            d S d S r%   )r3   )r   ra   s     r    r&   z)MixedTraverserVisitor.visit_optional_type   s'     	HHTNNNNN	 	r"   )r   r   )r#   r   r   r   )r)   r	   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r
   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )ra   rb   r   r   )__name__
__module____qualname____doc__r!   r(   r,   r0   r7   r:   r?   rB   rE   rG   rJ   rL   rO   rR   rU   rY   r[   r]   r_   r&   __classcell__)r.   s   @r    r   r      s_       <<( ( ( (
+ + + +) ) ) ) ) )	0 	0 	0 	0 	0 	0          8 8 8 8 8 8' ' ' ' ' '
     - - - - - -) ) ) ) ) )& & & & & &
( ( ( ( ( (/ / / / / /                                r"   r   N)
__future__r   
mypy.nodesr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   mypy.traverserr   
mypy.typesr   mypy.typetraverserr   r    r"   r    <module>ro      sY   " " " " " "                                       ( , + + + + +       3 3 3 3 3 3f f f f f,.B f f f f fr"   