ML iddlmZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZddlmZddlmZddlmZGddeeZy) ) annotations)AssertTypeExprAssignmentStmtCastExprClassDefForStmtFuncItemNamedTupleExpr NewTypeExpr PromoteExpr TypeAlias TypeAliasExpr TypeAliasStmtTypeApplication TypedDictExpr TypeVarExprVarWithStmt)TraverserVisitor)Type)TypeTraverserVisitorceZdZdZddZddZdfd Zdfd Zdfd Zdfd Z dfd Z dfd Z dfd Z dfd Z dfd Zd fd Zd!fd Zd"fd Zd#fd Zd$fd Zd%fd Zd&fd Zd'dZxZS)(MixedTraverserVisitorz2Recursive traversal of both Node and Type objects.cd|_y)NF)in_type_alias_expr)selfs Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/mixedtraverser.py__init__zMixedTraverserVisitor.__init__s "'c:|j|jyN)visit_optional_typetype)rvars r visit_varzMixedTraverserVisitor.visit_var#s   *rcZt|||j|jyr!)super visit_funcr"r#ro __class__s rr(z MixedTraverserVisitor.visit_func&s" 1   (rct|||j}|r#|jD]}|j |yyr!)r'visit_class_definfobasesaccept)rr*r.baser+s rr-z%MixedTraverserVisitor.visit_class_def*sB "vv   " D! " rcZt|||jj|yr!)r'visit_type_alias_exprnoder0r)s rr3z+MixedTraverserVisitor.visit_type_alias_expr3s  %a(  drct|||jj||jD]}|j|yr!)r'visit_type_var_expr upper_boundr0values)rr*valuer+s rr6z)MixedTraverserVisitor.visit_type_var_expr7sA #A& T"XX E LL  rcnt|||j|jjyr!)r'visit_typeddict_exprr"r.typeddict_typer)s rr;z*MixedTraverserVisitor.visit_typeddict_expr=s( $Q'   !6!67rct|||jjsJ|jjj |yr!)r'visit_namedtuple_exprr. tuple_typer0r)s rr>z+MixedTraverserVisitor.visit_namedtuple_exprAs; %a(vv       &rcZt|||jj|yr!)r'visit__promote_exprr#r0r)s rrAz)MixedTraverserVisitor.visit__promote_exprFs  #A&  drcZt|||j|jyr!)r'visit_newtype_exprr"old_typer)s rrCz(MixedTraverserVisitor.visit_newtype_exprJs" "1%   ,rcZt|||j|jyr!)r'visit_assignment_stmtr"r#r)s rrFz+MixedTraverserVisitor.visit_assignment_stmtPs" %a(   (rctt|||j|jj|yyr!)r'visit_type_alias_stmt alias_noder0r)s rrHz+MixedTraverserVisitor.visit_type_alias_stmtTs1 %a( << # LL   % $rcvt||d|_|jj |d|_y)NTF)r'visit_type_aliasrtargetr0r)s rrKz&MixedTraverserVisitor.visit_type_aliasYs0  #"& "'rcZt|||j|jyr!)r'visit_for_stmtr" index_typer)s rrNz$MixedTraverserVisitor.visit_for_stmt_s" q!   .rcht|||jD]}|j|yr!)r'visit_with_stmtanalyzed_typesr0)rr*typr+s rrQz%MixedTraverserVisitor.visit_with_stmtcs1 "## C JJt  rcZt|||jj|yr!)r'visit_cast_exprr#r0r)s rrUz%MixedTraverserVisitor.visit_cast_exprjs  "  drcZt|||jj|yr!)r'visit_assert_type_exprr#r0r)s rrWz,MixedTraverserVisitor.visit_assert_type_exprns  &q)  drcht|||jD]}|j|yr!)r'visit_type_applicationtypesr0)rr*tr+s rrYz,MixedTraverserVisitor.visit_type_applicationrs. &q) A HHTN rc,|r|j|yyr!)r0)rr[s rr"z)MixedTraverserVisitor.visit_optional_typeys HHTN r)returnNone)r$rr]r^)r*r r]r^)r*rr]r^)r*rr]r^)r*rr]r^)r*rr]r^)r*r r]r^)r*r r]r^)r*r r]r^)r*rr]r^)r*rr]r^)r*r r]r^)r*rr]r^)r*rr]r^)r*rr]r^)r*rr]r^)r*rr]r^)r[z Type | Noner]r^)__name__ __module__ __qualname____doc__rr%r(r-r3r6r;r>rArCrFrHrKrNrQrUrWrYr" __classcell__)r+s@rrrse<( +)" 8' - )& ( /rrN) __future__r mypy.nodesrrrrrr r r r r rrrrrrrmypy.traverserr mypy.typesrmypy.typetraverserrrrrrjs>"&,3`,.B`r