NL iwdZddlmZddlZddlmZddlmZddl Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*ddl+m,Z,ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCdd lDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLdd lMmNZNmOZOdd lPmQZQmRZRmSZSdd lTmUZUdd lVmWZWddlXmYZYmZZZm[Z[ddl\m]Z]ddl^m_Z_m`Z`maZambZbmcZcddldmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnddlompZpmqZqmrZrddlsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|ddl}m~Z~egdfZegeCfZd?dZd@dZdAdZdBdZdCdZdDdZdEdZdFdZdGdZdHdZdId ZdJd!ZdKd"ZdLd#ZdMd$ZdNd%Z dOd&ZdPd'Z dQd(Z dRd)Z dSd*Z dTd+Z dU dVd,Z dU dVd-ZGd.d/e j2j4ZdPd0ZdWd1Z dXd2ZdYd3ZdZd4Zd[d5Zd\d6Zd]d7Z d^d8Zd]d9Zd_d:Zd`d;Zdad<Zdbd=Zdcd>Zy)daTransform mypy statement ASTs to mypyc IR (Intermediate Representation). The top-level AST transformation logic is implemented in mypyc.irbuild.visitor and mypyc.irbuild.builder. A few statements are transformed in mypyc.irbuild.function (yield, for example). ) annotationsN)Sequence)Callable) ARG_NAMEDARG_POS AssertStmtAssignmentStmt AwaitExprBlock BreakStmt ContinueStmtDelStmt ExpressionExpressionStmtForStmtIfStmtImport ImportAll ImportFromListExprLvalue MatchStmtOperatorAssignmentStmt RaiseStmt ReturnStmtStarExprStrExprTempNodeTryStmt TupleExpr TypeAliasStmt WhileStmtWithStmt YieldExpr YieldFromExpr)TEMP_ATTR_NAME) ERR_NEVERNAMESPACE_MODULENO_TRACEBACK_LINE_NOAssign BasicBlockBranchCall InitStaticInteger LoadAddressLoadErrorValue LoadLiteral LoadStatic MethodCallPrimitiveDescriptionRaiseStandardErrorRegisterReturnTupleGetUnborrow UnreachableValue) RInstanceRTuplec_pyssize_t_rprimitive exc_rtuple is_taggednone_rprimitiveobject_pointer_rprimitiveobject_rprimitive)is_borrow_friendly_exprprocess_conditional) IRBuildercreate_type_paramsint_borrow_friendly_op)for_loop_helper)-add_raise_exception_blocks_to_generator_class)ExceptNonlocalControlFinallyNonlocalControlTryFinallyNonlocalControl)GENERATOR_HELPER_NAME)AssignmentTargetAssignmentTargetAttrAssignmentTargetIndexAssignmentTargetRegisterAssignmentTargetTuple) error_catch_opexc_matches_opget_exc_info_opget_exc_value_opkeep_propagating_opno_err_occurred_oppropagate_if_error_opraise_exception_opreraise_exception_oprestore_exc_info_op)iter_op next_raw_op py_delattr_op) check_stop_opcoro_opimport_from_many_opimport_many_op import_opsend_op"set_type_alias_compute_function_optype_opyield_from_except_op) MatchVisitorc|jsi|jjd|jD]$}|j ||jdr$n|jj y|jrN|j ttjd|j|j tyy)NTz#Reached allegedly unreachable code!) is_unreachableblock_reachable_stackappendbodyacceptpopaddr6 RUNTIME_ERRORliner;)builderblockstmts ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/irbuild/statement.pytransform_blockr|s   %%,,T2JJ D NN4 004   %%))+  "002WY^YcYc   KM" ct|jtry|jj|j|j yN) isinstanceexprrrsvisitorflush_keep_alives)rxrzs r{transform_expression_stmtrs7$))W% IIW__% r}c0|jr|j|j}n|jj}|j ||j d|j }|jdj|||j yNrn) rrsrxnonecoerce ret_typesrwnonlocal_control gen_return)rxrzretvals r{transform_return_stmtrso yy *%%' ^^FG$5$5b$9499 EF R ++GVTYYGr}c |j}|sJ|j||j|d}|jr7t |j t r|j||jyt |ttfrNt |j ttfr-t|jt|j jk(rtd|jDrt|dk(rg}|j jD]V}|j|}t|j}|j|||j|j!|Xt#|j|D]3\}}|j|} |j| ||j5|j%y|j j} |j|j }|j'r|j(r|j+||t |ttfrst |jt,rXt|jj.t|jk(r"t|dk(rtd|jDrt1d|jj.Drt|j} t3| D cgc]} |j5t7|| d!} } |j8j;|gdt#|j| D]A\}}|j5t=|}|j|j||| C|j%y|D]6}|j|}|j||| |j%8ycc} w) Nrc32K|]}t|ywris_simple_lvalue.0items r{ z,transform_assignment_stmt..F4 &Frkc32K|]}t|ywrrrs r{rz,transform_assignment_stmt..rrc34K|]}|jywr) is_refcounted)rts r{rz,transform_assignment_stmt..s?A?sT)borrow)steal)lvaluesdisallow_class_assignmentsrwtyperrvaluerget_assignment_targetr rlenitemsallrsr7assignrqziprnon_function_scope is_final_definit_final_staticr>typesanyrangerur9rx keep_aliver:)rxrzr first_lvaluetempsright rvalue_regtempleftassignment_targetrwniborrows lvalue_item rvalue_itemlvaluetargets r{transform_assignment_stmtrs*llG N7 &&w :1:L yyZ X6 %%lDII> <)X!67 t{{Y$9 :  "" #s4;;+<+<'= = F<3E3EF F LA [[&& E .JJOO,D NN4TYY 7 LL    l00%8 ?JD$ ' = =d C  NN,dDII > ? !!# ;;  D ,J!!#(9(9!!, ; <)X!67 z /  %% &#l.@.@*A A LA  F<3E3EF F ?)>)>? ?  "" #NSTUhW7;;x AdCDWW""J,>(H Z $K!++h{&;>$++*> =D 3B   L$DII >C NN63) r}cJ|r|}|}||fS|jddx}}||fS)aCompute names for updating the globals dict with the appropriate module. * For 'import foo.bar as baz' we add 'foo.bar' with the name 'baz' * For 'import foo.bar' we add 'foo' with the name 'foo' Typically we then ignore these entries and access things directly via the module static, but we will use the globals version for modules that mypy couldn't find, since it doesn't analyze module references from those properly..r)split) module_idas_name globals_id globals_names r{import_globals_id_and_namersC   | ##%.OOC$8$;; \ | ##r}c |jry|js|j}|jD]{\}}|j ||j t ||\}}|j|d|j||j||j gd|j }y||jvryg}g}g} |j|D]} | jD]\}}d|j|<|j|gt ||tt|t} |j|j!t#t$| | jt'| j t(|j*j-t$|} |j*j-t(| } |j/t0|j!t3t5|t| |j|j|j6|j|j8j:| gt<y)N __setitem__ result_typerw namespace) is_mypy_only is_top_levelload_globals_dictids gen_importrwrgen_method_callload_str get_modulemodule_import_groupsimportsrqr3rDr(rur0rCr/r?rx setup_rarraycall_crer2tuple module_pathfn_infonamer))rxnodeglobalsmod_idrrrmodules static_ptrs mod_lines import_node mod_staticstatic_array_ptrimport_line_ptrs r{transform_importrs! &   ++-#xx OFG   vtyy 1'A&''R $J  # #!!,/1C1CJPTPYPY1Z[ YY $    7///GKI33D9P * POFG&*GOOF # NNFQ%?%PQ R#$5vIYZJ   w{{;7PR\+]^ _   W[%5%57MN O  PP334M{[oo223I9UO NN KK E'N4EF G   % % '   W00 1   W__11 2     r}c|jry|j|j}|jj dr |j}n*|j |j r|j d}nd}t jjd|jz|jz|}d|j|<|jDcgc]\}}| }}}|jDcgc] \}}|xs| } }}|jtt|t } | |k(r| } n(|jtt| t } |j#t$|j'|| | |j)g|j*} |jt-| |t.ycc}}wcc}}w)Nz __init__.pyrrr)rgraph module_namerendswith ancestors importlibutil resolve_namerelativeidrnamesrur2rrDrrdrrrwr.r() rxr module_statemodule_packagerr_rras_names names_literalas_names_literalmodules r{transform_import_fromrasz ==!4!45L##M2 ,,    + 0F0F%//2  $ $S4==%8477%BN SBGOOB!% ,gdAT ,E ,59ZZ@MD'4@H@KK E%L:K LMM5(";;{5?DU'VW^^   " }.>@Y@Y@[\ F  KK 621ABC! -@s  F>/Gcj|jry|j|j|jyr)rrrrwrxrs r{transform_import_allr s&  tww *r}ctt}}|jr tn|}t|jdk(sJt ||jd|||j ||j |jd|j||jr=|j ||j |j|j||j |y)Nrkr) r+ else_bodyrrrFactivate_blockrsrrgoto)rxrzif_bodynextr s r{transform_if_stmtrsL*,TG $ DI tyy>Q  1w B 7# NN499Q<  LL ~~y)t~~& T 4 r}c>ttttf\}}}}|j|n|}|j|||j|t ||j |||j ||j|j|j||j|j=|j ||j|j|j||j |yr) r+r push_loop_stackgoto_and_activaterFrr rsrrr pop_loop_stack)rxsrrrtop else_blocknormal_loop_exits r{transform_while_stmtrs",, jlJL"XD$Z%&[[%.bodyqvvr}cXjJjjyr)r rsrsr{rz&transform_for_stmt..else_blocks#{{&&&q{{#r}returnNone)rJindexrr is_asyncrw)rxrrrrs`` r{transform_for_stmtr%sA$!&&$akk tQZZYZY_Y_r}cV|jdj||jyr)r gen_breakrwrs r{transform_break_stmtr(s! R **7DII>r}cV|jdj||jyr)r gen_continuerwrs r{transform_continue_stmtr+s! R --gtyyAr}c2|j5|jtgt|j t y|j |j}|jt|g|j|j t yr) rrr]r)rur;rsr\rw)rxrexcs r{transform_raise_stmtr.sevv~+R1EF KM" .. C NN%uaff5 KK r}c |sJdttt}}}t}|r tn|} |jj||jt||j | |jj |jj||j ||j|jtg|} |jjt|jd| |D]\} } } d}| rr| \}}tt}}|jt|g|}|jt|||tj |j || rM|j#| }|j%||jt&g| j(| j(| |j ||s|j |r4|jt*gt,|jt/|jj1|jj |j ||jt2|j5| g||j ||j ||jt2|j5| g||jt6gt,|jt/|r)|j | ||j ||j |y)zGeneralized try/except/else handling that takes functions to gen the bodies. The point of this is to also be able to support with.ztry needs exceptrnN)r+rxpush_error_handlerrr pop_error_handlerr  maybe_spillrrUrrqrLrVrur,BOOLrrrXrwr]r)r;rtr^rrY)rxrrhandlersr rw except_entry exit_block cleanup_blockdouble_except_blockrold_excrvar handler_body next_blocktype_f type_line body_blockmatchesrs r{transform_try_exceptrAs '''8.8lJL*,m*L$,!* J OO&&|4 jl+F LL OO%%' OO&&':; <(!!'..T"JKG ##$9':R:RSU:VX_$`a$,/c<  $ FI%/\:< Jnn^fhZKG KKw J L M  " ": . 2237F NN67>>2BB#QSVS[S[ \ ]#   " ": ./"+R1EF KM"   " OO%%'  =) NN&g)>(?F LL  ./ NN&g)>(?F NN&,@A KK z*  Z  :&r}c <dfd }dfd }dfd }tjjjDcgc]\}}}|r||nd|||f}}}}jrfdnd}t ||j ycc}}}w)Nc<jjyrrrxrsr{rrz'transform_try_except_stmt..body*rr}cfdS)Nc&jSrrsrrrxsr{zAtransform_try_except_stmt..make_handler../sw~~d+r}rHs`r{ make_handlerz/transform_try_except_stmt..make_handler.s ++r}c*fdjfS)Nc&jSrrG)rxrsr{rIz?transform_try_except_stmt..make_entry..2st,r})rw)rrxs`r{ make_entryz-transform_try_except_stmt..make_entry1s,dii88r}c:jjSr)rsr rDsr{rIz+transform_try_except_stmt..8s 4r}r )rrr r!GenFunc)rrr!ztuple[ValueGenFunc, int])rrvarsr4r rArw) rxrrrrKrNrr:r4r s `` r{transform_try_except_stmtrR)s,9 #177AFFAJJ? D#t"D tS,t2DEH:;4$I$)QVVD s Bcft|}|jj||jj ||j t ||j||jj|jj|jSr) rNrxr0rrqrr+r rtr1ret_reg)rx err_handler return_entry main_entrytry_bodycontrols r{try_finally_tryrZ<s( 5G OO&&{3 ##G, jl+ J LL   " OO%%' ??r}c tt}|j||r8|j||j t |j dd|j||j||j t||j t t|j||j||r8|j||j t |j dd|j t||jtgd|j||Sr) r7r@r rrur1rr r*rrU)rxrUrVrW finally_blockrTr9s r{try_finally_entry_blocksr]Qsz"G :&w N7;L;LR;P,Q RTVW LL <( KKw N:,F GHI LL ;'w N7;L;LR;P,Q RTVW KKw~r2 FGH LL Nr}c t}|jj|t|jd|}|jj ||j |||jj||fSr)r+rxr0rMrrqr rt)rxr\ finally_bodyr9r7finally_controls r{try_finally_bodyraosxLM OO&&}5,W-E-Eb-I7SO ##O4 =)N   " / ))r}ctt}}|jt|||tj|j ||j t gt|jt|jj|r|j |tt}}t|trG|jjtr(|j!|j"|jd}n|j%|}|jt|||tj|j ||j&dj)||d|j |t} |j+| |j ||j-|d|j t.gt|jt| S)zResolve the control flow out of a finally block. This means returning if there was a return, propagating exceptions, break/continue (soon), or just continuing on. rn)r+rur,IS_ERRORr rr]r)r;rxr1rrQattr startswithr&read_nullable_attrobjrrrr  gen_cleanuprY) rxr7r`r9rTreraiserest return_blockret_val out_blocks r{try_finally_resolve_controlrn~sL*,TG KKwgv?@ 7# NN'-AB KK  OO%%'t$'\:2t, LL =)N^^$6DAN\N\N KK~~~v{{ST >* NN&,@A KK  >*&0lJLm  F7<<0-v_`|,  $//g9NPRS}-~~or48H{{8Ha67H""$H(HdCG * jl:M KKw z6;;GH =) NN'-AB KK  :&r}c,eZdZdfd Zdfd ZxZS) AwaitDetectorc0t|d|_y)NF)super__init__ has_await)self __class__s r{rzAwaitDetector.__init__;s r}c2d|_t| |y)NT)rrvisit_await_expr)rors r{rzAwaitDetector.visit_await_expr?s  #r}r )rzmypy.nodes.AwaitExprr!r")__name__ __module__ __qualname__rr __classcell__)rs@r{rr:s$$r}rcjrjdjd}jrIjj r3t }jj||jrd}jrOdfd }j|rt|fdjyt|fdjyty)Nz3Exception groups and except* cannot be compiled yetFTcnjr tyjjyr)r4rRrsrrrDsr{transform_try_bodyz.transform_try_stmt..transform_try_bodyYs$zz)'15qvv&r}c&jSrrGrHsr{rIz$transform_try_stmt..cW^^D5Ir}c&jSrrGrHsr{rIz$transform_try_stmt..grr}r ) is_starerrorrwr_r is_coroutinerrsrr}rprR)rxruse_async_versiondetectorrrrs`` @r{transform_try_stmtrDs  yy KQVVT~~'//66 ? h'    $ ~~ ' ~~  ,+-I166  '+-I166  "'1-r}c |jtgd}tdDcgc]}|jt ||d c}Scc}w)Nrn)rrWrrur9)rxrxrs r{get_sys_exc_informs>~~or26H.maybe_natively_call_exits #G,D&&(D$%D ejj)4 @ejj @4.. S!RD+ /H$ $$w||E':W\\#=N.try_bodys&  NN788@% N r}cPjjtt}}jd||j |j t gtjtj |y)NTrx) rfalser+add_bool_branchr rr]r)rur;)rmr|rxr-rwrs r{ except_bodyz#transform_with..except_bodys{sGMMOT2#-<=  8$ GTab}-+R1EF KM"y)r}ctt}}jtj||tjj |dj |y)NFr)r+rur,rr3r r)rmr6rxr-rs r{r_z$transform_with..finally_bodysX * jl:  F7<<,j)V[[QRz* %0!!),r}c*tddfgdSr)rA)rxrrwrXsr{rIz transform_with..s!$Wh$k9R8SUY[_`r})rxboolr!r<r )rsrrr=rur4 primitive_oprir2 py_get_attrrmaybe_spill_assignabletruerrp)rxrrrrr$rwtypr_rr-rrrrrrrXrs` ```` @@@@@@@@@@r{transform_withrrs3bB NN4 E5::y1I Ju2$g.>RdST""7UGT:##G$7$7r"V_d$ST 3 3C2bT9I4 PSXRY[_`   e $C  ( ( 8C7E402 **-` r}c*dfd dy)Nctjk\rjjyt jj fdj jy)NcdzS)NrkrJ)generatersr{rIz7transform_with_stmt..generate..s!a%r})rrrsrrrrr$rw)rrxrrs`r{rz%transform_with_stmt..generatesT AFF  NN166 " AHHQK1H!**VWV\V\ r}r)rintr!r"rJ)rxrrs``@r{transform_with_stmtrs QKr}cb|jjry|j|j}t t }}|j ||||j ||j5|jttjd|jnt|jtrI|jttj|jj|jnw|j|j}|jd|j}|j!||g|j}|j#t$|g|j|jt'|j |y)Nzbuiltins.AssertionError)options strip_assertsrsrr+rr msgrur6ASSERTION_ERRORrwrrrload_module_attr_by_fullnamerrr\r;)rxrcondok_block error_blockmessageryr-s r{transform_assert_stmtrs1$$ >>!&& !D&L*,kH D(K8 ;'uu} &'9'I'I4QRQWQWXY AEE7 # &'9'I'I155;;XYX^X^_`..'778QSTSYSYZooh 166:)C5!&&9 KK  8$r}cdt||j|j|jyr)transform_del_itemrrrwrxrs r{transform_del_stmtrs!w = =aff EqvvNr}c &t|tr,|j|jd|jgd|yt|t rt|j trc|j j}|j|js2|jd|jd||jd||j|j}|jt|j |g|yt|t"rJ|j%t'|j(|j%t+|j,dyt|t.r|j0D]}t3|||yy)N __delitem__r"z" cannot be deletedzMUsing "__deletable__ = ['']" in the class body enables "del obj."T undefines)rrRrbaser#rQobj_typer=class_ir is_deletablerdrnoterrrargrSrur*registerr1rrTrr)rxrrwclkey subtargets r{rrs>&/0 KKDt   F0 1 fooy 1))B??6;;/ &++.ABDI Q v{{+]VZZ,=tD F4 5  6??GKKv{{VZ0[$\ ]  F1 2 9I w 4 8 9 3r}c|j||jd|}|jj}t }t |j }|j j||j|jt|||jt|||j|t|||jJ|jS)Nrn) yield_target)rrrgenerator_classr+rcontinuation_blocksrqrnext_label_targetr/rur8r rK send_arg_reg)rxvalrwrclsr< next_labels r{ emit_yieldrs ^^C!2!22!6 =F // ) )CJS,,-J"":. NN3(('**=tD KKvJ78 :&1'4@    '' '   r}c dttttttt}t|tt frBt|j tr(|j jj|r|}nG|rtnt}t|trj||g}nj||g}j|t!t!t!} }}tj trىj jj|rd} j#} j%} tt} j't)td}j+| |j't-t.| }t | || | | | |g}t0|_j'|}n)d} jt4j#g}j't7|||t6j8j;|| r,jt< gj+| n(j+jt>gj't)j }j+|jA| j;|j+|t!}jC|dfd }dfd }dfd }jE|| tG|dd|fg|jIjC| j#S)NTrFc `jtjyr)rrr)rxrw received_reg to_yield_regsr{rXz*emit_yield_from_or_await..try_bodyqs'|Zl9SUY%Z\`ar}c<tt}jtt|}j t j|g}tt}}jt|||tjj|j |jdjj|j|jdjyr)r7rDrur0rCrrjrr+r,r3r rrr*r') r val_addressto_stopokstoprxiter_regrwresultrs r{rz-emit_yield_from_or_await..except_bodyts()kk+.G"MN ..!5 X8NP[7\^bc<D F7D"fkk:; r"|S$/  $11'4@ t$vsD)  $..w=r}c(jtjjg}tt}}j t |||t j j|j|jdjj|jjtgjdjyr) rrgrr+rur,rcr rrr*rbr') _yrrrxrrwrrrs r{r z+emit_yield_from_or_await..else_bodys^^Ggll8&X%Y[_ `<D F2tR9: r"|R.  $11'4@ t$vw~~mRFM  $..w=r}r )%r7rDrOrr-r4rr=r has_methodrcr_r5rrrr+rrrrur1rr0rCr' error_kindr`r,rcr r[rbr rrrAr)rxrrwis_await helper_methoditer_valget_op stop_block main_block done_block fast_pathrgnn stop_iter_valerrptrm_y_init loop_blockrXrr rrrrs` ` @@@@r{emit_yield_from_or_awaitr$s ' (F-.L-.L)M3z*+ sxx + HH   ( ( 7$' f2 3++FSE4@H~~fseT:H--h7H)3z|Z\J J(--+ 0F0F0Q0QR_0`  ll8$  " !23 kk.):dKL}c40kk+&?OP sMBBC+@$ G  ++a. ..w||H/E.FM KKw JHI :&2]OTJv}d3 vw~~mRFM ++nX]]3 4C NN8S$' LL :& NN<$/J j)bb>>*>>$ J 3(dD+-F,GTXY  j) << r}c t|||dSNTr)r)rxrrws r{rrs #GS$ FFr}c|jjr|jd|j|jr|j |j}n|j j}t|||jS)Nz"async generators are unimplemented) rrrrwrrsrxrr)rxrrs r{transform_yield_exprr s`## :DIIF yy *%%' gvtyy 11r}cft||j|j|jdS)NFr rrsrrwrs r{transform_yield_from_exprrs% #GW^^AFF-CQVVV[ \\r}cft||j|j|jdSr rrs r{transform_await_exprrs% #GW^^AFF-CQVVVZ [[r}c:|jt||yr)rsrl)rxrs r{transform_match_stmtrsHH\'1 %&r}c|j}|jt|jdg|}t |||j |j}|j |d|}|j|jj|jg}ddg}ttg}|j rG|j|j|||jd|jt|j|||||} |jj|j } |j"j%t&| | g||j)|j} |j+| | |y)N_typing TypeAliasType type_params) arg_names arg_kinds)rwrrfrrH type_argsrrrrrq new_tuplerrrrsrrxrrhrr) rxrrwmodrtype_alias_typerrralias compute_fnrs r{transform_type_alias_stmtr!s= 66D ..W%5%5i%@$A4 HC$Wc1;;GK))#EO   QVV[[ )7<<> :D#',I'"I{{ G%%k489'# OOOT49XaO bE 0J OO  !CeZEXZ^_  * *166 2F NN65$'r})rxrGryr r!r")rxrGrzrr!r")rxrGrzrr!r")rxrGrzr r!r")rrr!r)rxrGrzrr!r")rstrrz str | Noner!ztuple[str, str])rxrGrrr!r")rxrGrrr!r")rxrGrrr!r")rxrGrzrr!r")rxrGrr"r!r")rxrGrrr!r")rxrGrr r!r")rxrGrr r!r")rxrGrrr!r") rxrGrrrPr4zLSequence[tuple[tuple[ValueGenFunc, int] | None, Expression | None, GenFunc]]r zGenFunc | Nonerwrr!r")rxrGrrr!r") rxrGrUr+rVr+rWr+rXrPr!"Register | AssignmentTarget | None)rxrGrUr+rVr+rWr+r\r+rTr#r!r<) rxrGr\r+r_rPr9r<r!z)tuple[BasicBlock, FinallyNonlocalControl]) rxrGr7r+r`rMr9r<rTr#r!r+)rn) rxrGrXrPr_rPrwrr!r")rxrGr!z list[Value])rxrGrrrz Lvalue | NonerrrPr$rrwrr!r")rxrGrr#r!r")rxrGrrr!r")rxrGrrr!r")rxrGrrPrwrr!r")rxrGrr<rwrr!r<) rxrGrr<rwrrrr!r<)rxrGrr$r!r<)rxrGrr%r!r<)rxrGrr r!r<)rxrGrrr!r")rxrGrr!r!r")__doc__ __future__rimportlib.utilrcollections.abcrtypingr mypy.nodesmypyrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r% mypyc.commonr& mypyc.ir.opsr'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<mypyc.ir.rtypesr=r>r?r@rArBrCrDmypyc.irbuild.ast_helpersrErFmypyc.irbuild.builderrGrHrImypyc.irbuild.for_helpersrJmypyc.irbuild.generatorrKmypyc.irbuild.nonlocalcontrolrLrMrNmypyc.irbuild.preparerOmypyc.irbuild.targetsrPrQrRrSrTmypyc.primitives.exc_opsrUrVrWrXrYrZr[r\r]r^mypyc.primitives.generic_opsr_r`ramypyc.primitives.misc_opsrbrcrdrerfrgrhrirjmatchrlrP ValueGenFuncr|rrrrrrrrr rrr%r(r+r.rArRrZr]rarnrpr} traverserTraverserVisitorrrrrrrrrrrrr rrrr!rJr}r{r<s#$!!!!!!!!!D(0   SWW5Q 8   ML    2t8 E " #* H;$|A 2$&CLDD+ !$!2 ?BR' R' R'[R' R'  R'  R'jE&     ( *     0  < *  *'1 *AH *SX *. *. ..,. . 0 .  .dOQ"& "&")"&9@"&HK"& "&LOQb' b'")b'9@b'HKb' b'L$DNN33$&.RF R R R R  R  R  R Rj %.O9B(| | "| *-| <@|  | ~G2]\'(r}