ML i/VUddlmZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZmZddlmZmZmZddlmZddlmZddlmZmZmZmZmZm 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjdd lkmlZldd lmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZudd lvmwZwmxZxdd lymzZzm{Z{dd l|m}Z}ddl~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZej"dZded<ddlZddlmZmZmZmZmZmZmZmZmZef d/dZej@ZejBZej"dk\rejDZejFZejHZejJZejLZejNZejPZejRZejTZeejVejXejZej\fZn;eZeZeZeZeZeZeZeZeZeejVejXej\fZej"dk\rej`ZneZej"dk\r4ejbZejfZejZejlZneZeZeZeZej"dk\rejpZejtZneZeZe deNZee!gdZded<ej|dZded< d0 d1dZd2d Z d3d!Z d4d"Zd5d#Zd6d$ZGd%d&ZGd'd(Zd7d)ZGd*d+e}ZGd,d-e}Zd8d.Zy)9) annotationsN)Sequence) AnyCallableFinalLiteralOptionalTypeVarUnioncastoverload)defaults errorcodesmessage_registry)Errors) ErrorMessage)P ARG_NAMED ARG_NAMED_OPTARG_OPTARG_POSARG_STAR ARG_STAR2MISSING_FALLBACKPARAM_SPEC_KIND TYPE_VAR_KINDTYPE_VAR_TUPLE_KINDArgKindArgument AssertStmtAssignmentExprAssignmentStmt AwaitExprBlock BreakStmt BytesExprCallExprClassDefComparisonExpr ComplexExprConditionalExpr ContinueStmt DecoratorDelStmtDictExprDictionaryComprehension EllipsisExpr ExpressionExpressionStmt FloatExprForStmtFuncDef GeneratorExpr GlobalDeclIfStmtImport ImportAll ImportBase ImportFrom IndexExprIntExpr LambdaExprListComprehensionListExpr MatchStmt MemberExprMypyFileNameExprNode NonlocalDeclOperatorAssignmentStmtOpExprOverloadedFuncDef OverloadPartPassStmt RaiseStmtRefExpr ReturnStmtSetComprehensionSetExpr SliceExprStarExpr StatementStrExpr SuperExprTempNodeTryStmt TupleExpr TypeAliasStmt TypeParam UnaryExprVar WhileStmtWithStmt YieldExpr YieldFromExprcheck_arg_names)Options) AsPattern ClassPatternMappingPattern OrPatternSequencePatternSingletonPatternStarredPattern ValuePattern)"infer_reachability_of_if_statementmark_block_unreachable)argument_elide_namespecial_function_elide_names)TraverserVisitor)AnyTypeCallableArgument CallableType EllipsisTypeInstance ProperTypeRawExpressionType TupleTypeType TypedDictTypeTypeList TypeOfAny UnboundType UnionType UnpackType)bytes_to_human_readable_reprunnamed_functionrPY_MINOR_VERSION) AST AttributeCall FunctionTypeNameStarredUAddUnaryOpUSubc6tj|||d|S)NT) type_commentsfeature_version)ast3parse)sourcefilenamemoders T/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/fastparse.py ast3_parsers$ :: '  ) )r r )rN)bound_dummy_fallbackz[^#]*#\s*type:\s*ignore\s*(.*)TYPE_IGNORE_PATTERNc v|duxr |jxs||jv}|xr|duxs |j }| t}|j ||||j d}|rGt jd}|jddk(rE|jd|kDr3|jd}n#|jddk\sJ|jd} tj5tjdtt||d | } dddt||||| j } tE| t,sJ| S#1swYzparse..sqwwqz'7'7'9rT)# ignore_errors ignored_files preserve_astsrcset_fileendswithrPYTHON3_VERSIONpython_versionwarningscatch_warningsfilterwarningsDeprecationWarningr ASTConvertervisitRecursionErrorr NodeVisitorreportcodesMISCrD SyntaxErrormsgsys version_infominor startswithlinenooffsetresubSYNTAX isinstance)rfnammodulerrrr is_stub_filerasttreeemessagepython_version_strs rrrsD(BW-B-B $$$*\w$/[gF[F[B[) OOD&'O2==(L"2215  ! !! $ )g.D.DQ.G/.Y%44Q7O%%a(A---!0032+  $ $ & T  # #H7I JVT6?SC T "7  %* \ dH %% % Kg T T        $ $S )G / MMB@%V[V`V`  BE2.D  /  +%% S--33 38J8JK[8\$+$:$:1$=#>a@V@VWX@Y?Z![  DEWDXXab bG ,AHH" HH FF97   Br*+s[E,+E'EEE J8(#F  G ;G G G  G J8CJ33J8c"|r2|jdk(s|jjdrgStjd|}|y|j dj dDcgc]}|jc}Scc}w)zParse optional "[code, ...]" tag after "# type: ignore". Return: * [] if no tag was found (ignore all errors) * list of ignored error codes if a tag was found * None if the tag was invalid. #z\s*\[([^]#]*)\]\s*(#.*)?$Nr,)striprrmatchrsplit)tagrrs rparse_type_ignore_tagr"sr #))+#syy{'='=c'B  -s3Ay%&WWQZ%5%5c%: ;TDJJL ;; ;s2B c t|dd}tj|}|rb|jd}t |}|F|<|j ||t jjtjntd}t|tjsJt|||dj!|j"}||fS#t$rr|n|j%dd d j'} t j(j+| } |j ||| jd | j, Yy wxYw)zkParse type portion of a type comment (+ optional type ignore). Return (ignore info, parsed type). zevalrN)rF)lineoverride_column is_evaluatedrrTrNN)rrrrrrrINVALID_TYPE_IGNOREvaluerrrrrr1 TypeConverterrbodyrrTYPE_COMMENT_SYNTAX_ERROR_VALUEformatr) type_commentrcolumnrtyp extra_ignorerignored converted stripped_typeerr_msgs rparse_type_commentr4s@"'7@+00> *003C(=c(BG%MMf&6&J&J&P&PW\WcWc"&%G#t///! vE %/  !!5   (..sA6q9??AM&FFMMm\G MM$ t',,M W s CA7E  E c td|d||d\}}t|ttfr|j||_||_|St ||||S#ttf$rt ||||cYSwxYw)zParses a type that was originally present inside of an explicit string. For example, suppose we have the type `Foo["blah"]`. We should parse the string expression "blah" using this function. ()N)rrr) rrr}r~original_str_exproriginal_str_fallbackrwr ValueError) expr_stringexpr_fallback_namerr_nodes rparse_type_stringrZs P$q Q%7d6Z^_4 d[)4 5$:P:P:X%0D ");D &K$[2DdFS S  $P!.@$OOPsAA AA87A8ct|tr|jdk(St|trDt|jtr*|jjdk(xr|j dk(Sy)N no_type_checktypingF)rridrrattr)exprs ris_no_type_check_decoratorr psW$ww/)) D) $ djj$ '::==H,Mo1M M rc|ytj|D]N}t|tjtjtj tj fsL|cSyN)rwalkrYield YieldFrom NamedExprAwait)r rs r.find_disallowed_expression_in_annotation_scoperysN | $ dTZZT UK rceZdZU ddZddZddZddZddZddZddZ ddZ dd Z d d d d  dd Z dd Z ejdej dej"dej$dej&dej(dej*dej,dej.dej0dej2dej4dej6di Zded<ddZej>dej@dejBd ejDd!ejFd"ejHd#ejJd$ejLd%ejNd&ejPd'i Z)ded(<dd)Z*dd*Z+dd+Z,d d d, dd-Z-dd.Z. d dd0Z/ dd1Z0dd2Z1dd3Z2dd4Z3dd5Z4dd6Z5dd7Z6 d dd8Z7dd9Z8 d dd:Z9 d dd;Z:dd<Z;dd=Z
Z=dd?Z>dd@Z?ddAZ@ddBZAddCZBddDZCddEZDddFZEddGZFddHZGddIZHddJZIddKZJddLZKddMZLddNZMddOZNddPZOddQZPddRZQddSZRddTZSddUZTddVZUddWZVddXZWddYZXddZZYdd[ZZdd\Z[dd]Z\dd^Z]dd_Z^dd`Z_ddaZ`ddbZaddcZbdddZcddeZdddfZeddgZfddhZgddiZhddjZiddkZjddlZkddmZlddnZmddoZnddpZoddqZpddrZqddsZrddtZsdduZtddvZuddwZvddxZwddyZxddzZydd{Zzdd|Z{dd}Z|dd~Z}ddZ~y/)rcg|_g|_||_||_||_||_||_i|_i|_yr ) class_and_function_stackimportsrrrrr type_ignores visitor_cache)selfrrrrrs r__init__zASTConverter.__init__sMLN%)+    %:" 24GIrc`|jj|||dtjyNnote)severityrrrrrrrrrs rrzASTConverter.notes# 4vELLQrc(|s|jjsz|jj|j|j |jj|jj |||j||jyy)Nr) rrrset_file_ignored_linesrrrrr)rrrrrs rfailzASTConverter.failsj $,,44 KK . . 4,,dll.H.H  KK  tVSYYchh  W 5rcr|jtj|j|jdy)NFrrr)r$rFAILED_TO_MERGE_OVERLOADSrrrrs rfail_merge_overloadz ASTConverter.fail_merge_overloads-  6 6;;  rc|yt|}|jj|}|4d|jjz}t ||}||j|<||S)Nvisit_)typerget __class____name__getattr)rrtypeobjvisitormethods rrzASTConverter.visitsh <t*$$((1 ? 7 77FdF+G*1D  w 't}rc|j|_|j|_t |dd|_t |dd|_|S)N end_linenoend_col_offset)rr col_offsetrr0end_line end_column)rrns rset_linezASTConverter.set_lines>HH ll <6 !!%5t< rc\g}|D]$}|j|}|j|&|Sr )rappend)rlresrexps rtranslate_opt_expr_listz$ASTConverter.translate_opt_expr_lists5') A**Q-C JJsO  rcNttt|j|Sr )r listr1rA)rr>s rtranslate_expr_listz ASTConverter.translate_expr_listsD$d&B&B1&EFFrct|tjtjtjfr%|j r|j dj S|j SNr)rrAsyncFunctionDefr' FunctionDefdecorator_listrr(s r get_linenozASTConverter.get_linenosM td33T]]DDTDTU V##&&q)00 0{{rF)ismodule can_strip is_coroutinec|rh|re|jrXt|j|j|dkr-|jt|j}|rVdj|}|j t j j|t|jdd|jj|jjt|jjtjjt|j!|j#|}|j%||t'||gS|j(}|r&|j*rt-|dk(r |ddk(r|sgSg} |D]$} |j/| } | j| &|r|j*r|ddddgk(r@t1| rd}n2t3} | D]#} | j5| | j6s!d}n|r<|d dk(r4|r2t9}| D]#} | j5||j6s!d}n|rgS| S) Nrz, Fr&rFCr)rminrJjoinr$r"TYPE_IGNORE_WITH_ERRCODE_ON_MODULErrused_ignored_linesfiler=rFILErr#fix_function_overloadstranslate_stmt_listset_block_linesrmrrlenris_possible_trivial_bodyFindAttributeAssignacceptfound FindYield)rstmtsrKrLrMignoresjoined_ignoresblockstackr?stmtrr2s yield_visitors rrYz ASTConverter.translate_stmt_lists8 !!D%%&q)BB''D,=,=(>?G!%7!3 $GGNN~^T../!  KK * *4;;+;+; >|^&z//zFinal[dict[type[AST], str]]op_mapctjjt|}| t dt t|z|S)NzUnknown operator )rrtr-r, RuntimeErrorstrropop_names r from_operatorzASTConverter.from_operator>s?%%))$r(3 ?2Sb]BC CNr>=z<=z!=iszis notinznot in comp_op_mapctjjt|}| t dt t|z|S)NzUnknown comparison operator )rrr-r,rvrwrxs rfrom_comp_operatorzASTConverter.from_comp_operatorRs?**..tBx8 ?=DH MN NNrcN|d|d}}|j|_|j|_t |dd|_t |dd|_|jsy|jd}t|ttfr#|j|_|j|_yy)Nrrr5r6) rrr7rr0r8r9rrr,rJ)rbrafirstlast new_firsts rrZzASTConverter.set_block_linesYsAhb t##T<6 t%5t< vv FF1I i)->!? @^^AF ''AH Arcd}|r;t|j|j|}|j|||Sr r#rXrYrZ)rrars ras_blockzASTConverter.as_blockhs?  d11$2J2J52QRSA  E *rrLrMc |sJt|j|j|||}|j|||S)Nrr)rrarLrMrs ras_required_blockzASTConverter.as_required_blockosP u   ' '(()R^(_   Q&rc D g}g}d}d}d}d}d}d} g} |D]} d} d} d}t| tr(|j| |} | |j| \} }|t| tt fr| j |k(r|| j||Bt|tr|j|jn|j|d\}}| r|j| d} |j| t| t s| j }|>t| tr-| |k(r'||k7r!| j| | ||j|M|Bt|tr|j|jn|j|d\}}t| jdtr]| jttt| jdd|j| jdj |jtttt f| jdF||j||}d\}}d} |r8||k(r3|j!}t|tsJ| j||r-| r+| D]$}|j#||j|&g} t%|dk(r|j|dn(t%|dkDr|jt|d}t| tr&t'| j s| g}| j }Nt| trr| pg}| }| }d}| b| jttt| jddtttt tf| jd}|} g}d}|j| |r+| r)| D]$}|j#||j|&t%|dk(r|j|d|St%|dkDr|jt||S||j||S||j||S)Nrrrr)rr8_check_ifstmt_for_overloads'_get_executable_if_block_with_overloadsr,r5namer=rJextenditemsr)rr rCr pop_strip_contents_from_if_stmtr[r)rraretcurrent_overloadcurrent_overload_namelast_unconditional_func_def last_if_stmtlast_if_overloadlast_if_stmt_overload_namelast_if_unknown_truth_valueskipped_if_stmtsrfif_overload_nameif_block_with_overloadif_unknown_truth_valuepoppedif_stmts rrXz#ASTConverter.fix_function_overloads{s!/1,026#&* KO15"59#)+x %D+/ 37 "48 "$'#'#C#CDJ_#` #/DDTJE+-C &1ti%9:II!66+$++L9#/""24EF(//0@0F0FG(//0@A5?2L"2.,,-HI26/ ''-dG,37))/%1tV,$(==/3HH !''-)1-9001GH#/""24EF(//0@0F0FG(//0@A5?2L"2499"=?PQ$++Df?U?Z?Z[^\^?_,`a$++,B,G,G,K,Q,QR$++U9g#568N8S8STU8VW +JJ|,1F.5?2L"226/#(=A[([!WWYF%ff555$++F3#(8$4,99'B 7+,(*$'(A-JJ/23)*Q.JJ01ABC/3+dI.7G 7R(,v$,0II)f-2B2N')$,<)#'L15.-9(// f/E/J/J3B/OP,0!)W6G"GH277;,(3I/')$,0)JJt$qx %t  0, $11': 7# $  A % JJ'* + ! "Q & JJ()9: ;   ) JJ' (  % JJ| $ rNcNt|jdjdk(r\t|jdjdttfs|*t|jdjdt s~t|jdjdkDrXt|jdjdtr.t fd|jdjddDsytttt tf|jdjdj}|j|St|jjdk(rt|jjdtt tfr(|jjdj|k(r|St|jjdtr.j|jjd||k(r|Sy)z{Check if IfStmt contains only overloads with the same name. Return overload_name if found, None otherwise. rrNrc3@K|]}j|ywr )_is_stripped_if_stmt).0rrs r z;ASTConverter._check_ifstmt_for_overloads.. s]7D--g6]s) r[rrr,rJr5allr r r else_bodyr8r)rrfr overload_names` rrz(ASTConverter._check_ifstmt_for_overloadss  ! !! "a '499Q<,,Q/)=N1OP(4tyy|003W=499Q<$$%)499Q<,,R02CD]diiPQlFWFWX[Y[F\]] )W&77 8$))A,:K:KB:O $  >> ! t~~"" #q (4>>..q1IwHY3Z[NN''*//=@$$4>>..q16:44T^^5H5H5KMbc !%$rcNt||j|j|jdjdury|j3|jdjdur|jjdurd|fS|jjdur|jddfS|jdjdur]t |jjdt r(|j|jjdS|jdfSd|fS)a Return block from IfStmt that will get executed. Return 0 -> A block if sure that alternative blocks are unreachable. 1 -> An IfStmt if the reachability of it can't be inferred, i.e. the truth value is unknown. NrTrF)rlrrris_unreachablerr8rrrfs rrz4ASTConverter._get_executable_if_block_with_overloads:s +4> >> !diil&A&AT&I NN "yy|**e3--6:  >> ( (D 099Q<% % 99Q< & &$ .$..--a0&9CCDNNDWDWXYDZ[[>>4' 'Tzrc~t|jdk(rg|jd_|jrt|jjdk(rbt|jjdtr)|j |jjdyg|j_yyy)zRemove contents from IfStmt. Needed to still be able to check the conditions after the contents have been merged with the surrounding function overloads. rrN)r[rrrr8rrs rrz)ASTConverter._strip_contents_from_if_stmtZs tyy>Q  "DIIaL  >>c$.."5"56!;$..--a0&911$..2E2Ea2HI&(# <>rcNt|tsyt|jdk(r%t|jdjdk(sy|jr"t|jjdk(ry|j |jjdS)ziCheck stmt to make sure it is a stripped IfStmt. See also: _strip_contents_from_if_stmt FrrT)rr8r[rrrrs rrz!ASTConverter._is_stripped_if_stmths $'DII!#DIIaL,=,=(>!(C~~T^^%8%8!9Q!>(()<)> 2W\ ]  ^**4+C+CCHHW[+C+\]tT\\5@Q@QRll 99 rc$|j|Sr  do_func_defrr:s rvisit_FunctionDefzASTConverter.visit_FunctionDefs""rc(|j|dS)NT)rMrrs rvisit_AsyncFunctionDefz#ASTConverter.visit_AsyncFunctionDefs55rc|jjdt|jxrt d|jD}|j }|j |j||}t|jr|D] }d|_ |Dcgc]}|j}}|Dcgc]&}|jrdn|jj(}}d} g} |rdgt|z} d} n|j! t|jdd} t!| t"sJt| j$dk(rt!| j$d t&r| j$d j(t*urx|j,r-|j/t0j2||j4d |D cgc]3} | j6 | j6nt9t:j<5} } n|j,st d |Dr-|j/t0j2||j4d t?|j@||j4 jC| j$}tEtFtHtJ|} t?|j@|jM| j,} |jddddgk(}|r@t| t|kr)| jOd t9t:jPnt`jbdk\r'|jdr|jg|jd} |D cgc]} | j6} } t?|j@|j,r|j,j n|jM|j,} ti|| D]!\}}|jk||jl#d}t | s| r/t| dk7r@t d| Dr.|j/t0jn||j4d nt| t|kDr.|j/t0jp||j4d nt| t|kr.|j/t0jr||j4d nWtu| D cgc]} | | nt9t:j<!c} ||| | nt9t:j<tv}ty|dd}ty|dd}|jj{|jjd|j}|j~d|}t|j|||| }t!|jttr|jj|_C|rd|_D|||_E|j||jrt|j}d |_H|j|d|_I|j||t||jC|j|}|jd }|j|j |j4|||}n|j|||}|jjrtj|d |_O|jj{|Scc}wcc}wcc} w#tR$r|jjUddd jW}t0jXj[|}|j/|||j4d |jr.|jd dvr|j]d||j4t9t:j^gt|z} t9t:j^} YdwxYwcc} wcc} w)zCHelper shared between visit_FunctionDef and visit_AsyncFunctionDef.Dc32K|]}t|ywr )r )rds rrz+ASTConverter.do_func_def..s$]q%?%B$]s)rTNz func_typerrFrc38K|]}|jduywr )type_annotation)ras rrz+ASTConverter.do_func_def..s'T!(9(9(E'Ts)rrrrPrQrr)rrz.Suggestion: wrap argument types in parenthesesrc3<K|]}t|tywr )rrt)rts rrz+ASTConverter.do_func_def..s*Z1:a+F*Zsr5r6rOrclean)Prr=boolrIanyrtransform_argsargsrorpos_onlykindvariabler[rrrrargtypesConstantrEllipsisreturnsr$rDUPLICATE_TYPE_SIGNATURESr7rrqr| unannotatedrrrDr rCr ryrinsert special_formrrrrrr from_errorrr type_paramstranslate_type_paramszipset_type_optional initializerELLIPSIS_WITH_OTHER_TYPEARGSTYPE_SIGNATURE_TOO_MANY_ARGSTYPE_SIGNATURE_TOO_FEW_ARGSrsrr0rrrr5r, copy_modifiedunanalyzed_typerM definitionr;r]is_ready is_decoratedr,rinclude_docstringsr get_docstring docstring)rr:rMrrrarg arg_kinds arg_namesexplicit_type_params arg_types return_type func_type_astrtranslated_argsin_method_scoperrarg_typerr8r9rfunc_defvardecorretvals rrzASTConverter.do_func_defs %%,,S1   ]$]AL\L\$]!] ""1666"O ' / $#  $*..#SXX. .LPQSS\\Ts||/@/@@Q Q7;') T*IK ^^ '6 < *1>>=+ V !->>> ../14"=#9#9!#)>!?@!I!yyC'Tt'T$T ,FF"LL$) " 3@ &!,,3))-*@*@A$!%T(4.%9? KI+DKKfEKKMLaLab #'"?"?"Dc "R"s9~D 'A$$Q 0F0F(GH7*q}}'+'A'A!--'P$489q**9I9' aii!))"2"2VeAII !y1 >MC  " "8S__ = > y>[9~"s*ZPY*Z'Z $AALL!  Y#i.0 $AALL!  Y#i.0 $@@LL! )U^_PQ!-QWY5J5J-KK_#.#:K H]H]@^#  1lD1Q 0$7  %%))+ %%,,S1%%aff<%X1664y:NO hmm\ 2'/}}'B'B'DH $ $(H !  #+I   v &  hmm$C CL LL $(H ! MM(A &Xt'?'?@P@P'QSVWD$$Q'E MM%,,(8(8(J O*.F MM(A &F << * *!%!3!3AU!CH  %%))+ a/Q4!8 < ! 4 4S! >annQ&7z&IIIH&RSR^R^%Y%9%9:;c$iG %i&:&:;  <:B`s? \79+\< B:]8]?D-]+`:3$`?]C-`76`7c|jjsyt|txr|jdk(}t|t r||_yy)NNone)rimplicit_optionalrrErr}optional)rr,rrs rrzASTConverter.set_type_optional?sD||-- k84S9I9IV9S dK ($DM )rc  g}g}t|dtttjg}||j z}|j }t|t|z } t|d| D]L\} } | t|k} |j|j| dt|| |j| Ntt|| d|D]R\} \} } | | zt|k} |j|j| | t|| |j| T|jL|j|j|jdt||j|jt|j |j"D]E\} }|j|j| ||t$nt&||j| G|j(L|j|j|j(dt*||j|j(t-|Dcgc]}|j.j0c}||j2|Scc}w)N posonlyargs)r0r rCrrrrr[ enumerater= make_argumentrrrvarargr kwonlyargs kw_defaultsrrkwargrrbrrfail_arg)rrrrnew_argsnamesr args_args args_defaultsnum_no_defaultsirrrkdrs rrzASTConverter.transform_argsGs  "dM4TXX3KL $))+  i.3}+==i(89: DAq3{++H OOD..q$PXY Z LLO  #3y1A'BM#RS IAv1&*S-==H OOD..q!WmXV W LLO  ;; " OOD..t{{D(MZ [ LL %$*:*:; EAr OO""r 9 }  LLO   :: ! OOD..tzz4MZ [ LL $h?s**? V@sJc d|rd}n|j}|j}|9|7|jtj|j |j dd}|1t|j|j j|}n|j||}t|jrd}t|j|} d| _t| ||j|||} | j!|j |j t#|ddt#|dd| S)NFrrTr5r6) annotationrr$rrrr7rrrrjrnrr] is_inferredrr;r0) rrdefaultrrrrrrrarguments rrzASTConverter.make_argumentss HJ++L%,*B $>>JJNN!  H%(3::FLLZX66sLI sww 'H#''8$C4::g+>hO JJ NN Ct , C)4 0  rch|jt||j|jdyNTr)r$rrr7)rrrs rr zASTConverter.fail_args# ,s#SZZ Nrc |jjd|jDcgc]6}|js|j|j |j f8}}d}t jdk\r'|jr|j|j}t|j|j|jd|j|jt!|j#d||}|j|j$|_|j)|||j*j,rt/j0|d|_|j4|_t9|dd|_t9|dd|_|jj?|Scc}w) NrQr metaclass)rkeywords type_argsFrr5r6) rr=rrrrrrrrr'rrrrDbasesdictr-rI decoratorsr;rrrrrr7rr0r8r9r)rr:kwrrcdefs rvisit_ClassDefzASTConverter.visit_ClassDefs\ %%,,S1=>ZZRr266RVVTZZ12RR8<   w &1==#'#=#=amm#L  FF  " "166 *   $ $QWW -8n((5* 2213C3CD dA << * *!//?DNll <6 !!%5t< %%))+ 5Ss F>)F>c<t|j}|yt|tjtj fr7|j tj|j|jdt|tjr7|j tj|j|jdt|tjr8|j tj|j|jdyyr)rrrrrrr$r"TYPE_VAR_YIELD_EXPRESSION_IN_BOUNDrr7r"TYPE_VAR_NAMED_EXPRESSION_IN_BOUNDr"TYPE_VAR_AWAIT_EXPRESSION_IN_BOUND)r type_paramincorrect_exprs rvalidate_type_paramz ASTConverter.validate_type_paramsG HXHXY  !  ntzz4>>&B C II CC!!%%   ndnn 5 II CC!!%%   ndjj 1 II CC!!%%   2rc jg}|D]%}d}g}d}tjdk\r:t|j|jj |j }t|tr-|jt|jtdg|t|tr-|jt|jtdg|t|jt j"rt%|jj&dkr8|j)t*j,|j|j.dnt|j|j}|jj&Dcgc]}|j |}}nW|jK|j1|t|j|jj |j}|jt|jt2|||(|Scc}w)N)r rrFr)rrrrrr default_valuer ast_ParamSpecr=r[rrast_TypeVarTuplerrrTupler[eltsr$r"TYPE_VAR_TOO_FEW_CONSTRAINED_TYPESr7r(r) rrrprvaluesrconvrs rrz"ASTConverter.translate_type_paramss! A!%E!#F#'G7*' !((CII!//Z!]+$++IaffotUWY`,abA/0$++aff&94WMaggtzz2177<<(1, ,OOHHLL$) " -T[[qxxH9:!FA$**Q-!F!FWW(,,Q/)$++AHHEKKAGGTE$++affmUFGL7 <$#"Gs H0cnt|j|j}|j||Sr )rOrrr;rr:rs r visit_ReturnzASTConverter.visit_Returns*$**QWW-.}}T1%%rc:t|jdkDrKt|j|j}|j |j t |}n't |j|jd}|j ||S)Nrr)r[targetsrYrDr;rr-r)rr:tuprs r visit_DeletezASTConverter.visit_Deletesp qyy>A D44QYY?@C LL "3 ahh@W }}T1%%rct|j|jg|j|jg|j |j }|j||Sr )r8rrSrrrrJr;r5s rvisit_IfzASTConverter.visit_IfIsX ZZ  4#9#9!&&#A"BDMMRSRZRZD[ }}T1%%rc |j||j}t|jDcgc]}|j |j c}|jDcgc]}|j |j c}|j|j|}|j||Scc}wcc}wr ) rjrr_rr context_expr optional_varsrrr;)rr:rLrrs r visit_WithzASTConverter.visit_WithPs11!Q^^D 12 9ATZZ ' 923'' :QTZZ ( :  " "166 *    }}T1%% : :s "B8""B= c |j||j}t|jDcgc]}|j |j c}|jDcgc]}|j |j c}|j|j|}d|_ |j||Scc}wcc}wrO) rjrr_rrrXrYrrrPr;)rr:rLrrgs rvisit_AsyncWithzASTConverter.visit_AsyncWith[s11!Q^^D 12 9ATZZ ' 923'' :QTZZ ( :  " "166 *     }}Q"" : :s "B?""C ct|j|j|j|j}|j ||Sr )rMrexccauser;r5s r visit_RaisezASTConverter.visit_Raisegs9AEE*DJJqww,?@}}T1%%rc V|jDcgc]5}|j%|jt|j|nd7}}|jDcgc]}|j |j }}|jDcgc]}|j |j}}t|j |j||||j|j|j|j}|j||Scc}wcc}wcc}wr ) handlersrr;rErr,rrrXrrJ finalbodyrr:hvstypesrbrs r visit_TryzASTConverter.visit_TrylsXYXbXb ST!&&2DDMM(166*A .$ N  ./ZZ8AFF#88<=JJGqD**1662GG  " "166 *    MM!(( # MM!++ &  }}T1%% 9Gs:D"D! "D&c d|jDcgc]5}|j%|jt|j|nd7}}|jDcgc]}|j |j }}|jDcgc]}|j |j}}t|j |j||||j|j|j|j}d|_ |j||Scc}wcc}wcc}wrO) rbrr;rErr,rrrXrrJrcis_starrds r visit_TryStarzASTConverter.visit_TryStar}sXYXbXb ST!&&2DDMM(166*A .$ N  ./ZZ8AFF#88<=JJGqD**1662GG  " "166 *    MM!(( # MM!++ &   }}T1%% 9Gs:D#"D( "D-ct|j|j|j|j}|j ||Sr )rrrSrr;r5s r visit_AssertzASTConverter.visit_Asserts9$**QVV,djj.?@}}T1%%rcFg}|jD]Y}|j|j}|j}|||jk7r |j}|j ||f[t |}|j j ||j||Sr )r rrasnamer=r9rr;)rr:r aliasrrors r visit_ImportzASTConverter.visit_Imports.0WW )E++EJJ7D\\F~$%**"4 LL$ ( ) 5M A}}Q""rc $|jJt|jdk(rM|jdjdk(r1|j |jnd}t ||j}nlt |j|j|jnd|j|jDcgc]}|j|jfc}}|jj||j||Scc}w)Nrrrmr) levelr[r rrr:r<rrorr=r;)rr:rrrs rvisit_ImportFromzASTConverter.visit_ImportFromsww""" qww<1 C!7hh2!((C%c1773A67hh6J((2PR-.WW5!&&!((#5A A}}Q""6s:D cPt|j}|j||Sr )r7r r;)rr:gs r visit_GlobalzASTConverter.visit_Globals! qww }}Q""rcPt|j}|j||Sr )rGr r;)rr:rs rvisit_NonlocalzASTConverter.visit_Nonlocals!  !}}Q""rcr|j|j}t|}|j||Sr )rrr2r;)rr:rrs r visit_ExprzASTConverter.visit_Exprs/ 177#e$}}T1%%rc:t}|j||Sr )rLr;rFs r visit_PasszASTConverter.visit_Passs J}}Q""rc:t}|j||Sr )r$r;rFs r visit_BreakzASTConverter.visit_Breaks K}}Q""rc:t}|j||Sr )r+r;rFs rvisit_ContinuezASTConverter.visit_Continues N}}Q""rct|j|j|j|j}|j ||Sr )r rrCrr;rFs rvisit_NamedExprzASTConverter.visit_NamedExprs9 4::ahh/AGG1D E}}Q""rcZt|jdk\sJ|j}t|tj rd}n=t|tj rd}n tdtt|z|j||j|j|S)Nrandorzunknown BoolOp ) r[r2ryrrAndOrrvrwr,rrD)rr:op_noderys r visit_BoolOpzASTConverter.visit_BoolOps188}!!!$$ gtxx (B  )B03tAw<?@ @zz"d66qxx@!DDrc t|dk(rt||d|d}n$t||d|j||dd|}|j||S)Nrrr)r[rIrr;)rryvalsr:rs rrzASTConverter.groupsY t9>r47DG,Ar47DJJr48Q$?@A}}Q""rc2|j|j}|*tdtt |jzt ||j |j|j |j}|j||S)Nzcannot translate BinOp ) r{ryrvrwr,rIrleftrightr;rr:ryrs r visit_BinOpzASTConverter.visit_BinOpsq    % :83tADDz?JK K 2tzz!&&)4::agg+> ?}}Q""rcd}t|jtjrd}ntt|jtjrd}nMt|jtj rd}n&t|jtj rd}|*tdtt|jzt||j|j}|j||S)N~notrkrlzcannot translate UnaryOp )rryrInvertNotrrrvrwr,r\roperandr;rs r visit_UnaryOpzASTConverter.visit_UnaryOps  addDKK (B dhh 'B dii (B dii (B ::Sadd_LM M b$**QYY/ 0}}Q""rctj|j}|jj|_|jj|_|j j dt|j|j|j|j|g}|j j|j|j|j|S)NL) rReturnrrr7rr=r?rrrrr;)rr:rrs r visit_LambdazASTConverter.visit_Lambda s{{166"ffmm &&++ %%,,S1 t**166188T>TVZU[>\ ] %%))+ 188Q\\*rct|j|j|j|j|j|j}|j ||Sr )r*rrSrrJr;rr:rs r visit_IfExpzASTConverter.visit_IfExpsH DJJqvv. 1660BDJJqxxDX Y}}Q""rc ttt|j|j|j |j }|j||Sr )r.rCrrAkeysrDr2r;rs r visit_DictzASTConverter.visit_DictsO  T11!&&94;S;STUT\T\;]^ _ }}Q""rcnt|j|j}|j||Sr )rQrDr/r;rs r visit_SetzASTConverter.visit_Set#s, D,,QVV4 5}}Q""rct|jttj|}|j ||Sr )r@visit_GeneratorExpr r GeneratorExpr;rs rvisit_ListCompzASTConverter.visit_ListComp(s5 d55d4;L;La6PQ R}}Q""rct|jttj|}|j ||Sr )rPrr rrr;rs r visit_SetCompzASTConverter.visit_SetComp-s5 T44T$:K:KQ5OP Q}}Q""rcV|jDcgc]}|j|j}}|jDcgc]}|j|j}}|jDcgc]}|j |j }}|jDcgc]}t |j}}t|j|j|j|j||||}|j||Scc}wcc}wcc}wcc}wr ) generatorsrrCrIrDifsrrPr/keyrr;rr:cr8itersifs_listrPrs rvisit_DictCompzASTConverter.visit_DictComp2s12>A4::ahh'>>-.\\:AFF#::=>\\JD,,QUU3JJ./ll;D$;; # JJquu tzz!''2GUHh }}Q""?:J;s"D"D3"D!%D&c"|jDcgc]}|j|j}}|jDcgc]}|j|j}}|jDcgc]}|j |j }}|jDcgc]}t |j}}t|j|j||||}|j||Scc}wcc}wcc}wcc}wr ) rrrCrIrDrrrPr6eltr;rs rrzASTConverter.visit_GeneratorExp=s12>A4::ahh'>>-.\\:AFF#::=>\\JD,,QUU3JJ./ll;D$;; $**QUU+WeXx P}}Q"" ?:J;s"C="D3"D%D cr|j|j}t|}|j||Sr )rrr"r;)rr:vrs r visit_AwaitzASTConverter.visit_AwaitFs. JJqww  aL}}Q""rcnt|j|j}|j||Sr )r`rrr;rs r visit_YieldzASTConverter.visit_YieldLs* djj) *}}Q""rcnt|j|j}|j||Sr )rarrr;rs rvisit_YieldFromzASTConverter.visit_YieldFromQs* $**QWW- .}}Q""rc|jDcgc]}|j|}}|j|jg|jz}t ||}|j ||Scc}wr )opsrrDr comparatorsr(r;)rr:o operatorsoperandsrs r visit_ComparezASTConverter.visit_CompareVsf9:?AT,,Q/? ?++QVVHq}},DE 9h /}}Q""@sA0c x|j}|j}|Dcgc]}|j}}|j|Dcgc] }t |t r |j n|"c}|Dcgc]}|j c}z}|Dcgc]}t|t urtnt!c}|Dcgc]}|tntc}z} t|j|j|| tddgt!|z|z} |j#| |Scc}wcc}wcc}wcc}wcc}w)Nzlist[Optional[str]])rrrrDrrrr,rrrrr&rfuncr r[r;) rr:rrk keyword_namesrrrrrs r visit_CallzASTConverter.visit_Call^svv::(0111 1,,?C D! 1g.QWWA 5 DYaGbTUGb b KOOQaG!3X@O?LS 8;I) 3S    JJqvv    &T(: ;m K   }}Q""2 DGbOS sD#%D(,D- $D26D7c8|j}d}| td}nt|tr t |}nt|t rt t|}nt|trtt|}nt|tr t|}nkt|tr t|}nOt|tr t|}n3|tur t!}n t#dtt%|z|j'||S)NrzConstant not implemented for )rrErrwrUbytesr%rrintr>floatr3complexr)rr0rvr,r;)rr:valrs rvisit_ConstantzASTConverter.visit_Constantqsgg ; A S ! A U #6s;T#YOP P}}Q""rcntd}|j|j|jt |j |j }|j|t|jdk(r|j|jd|St|jdkDr=|jd}t|tr|jdk(r|jdd=t|d}|j|t||gtgdg}|j||S)NrrrrrS)rUr;rr7rArDr2r[rrrrCr&r)rr: empty_string strs_to_joinr join_methodresult_expressions rvisit_JoinedStrzASTConverter.visit_JoinedStrsr{ ahh 5 8 8 BC l+ |!! "a '==!3!3A!6: : ## $q (%%b)D$(TZZ2-=!&&rs+ v6 \*$[<.7)dVT}}.22rc>|j|j}|j|j|j|j dkrdndt |j z}td|zdz}|j|j|jn td}|j|j|jt|d}|j|t|||gttgddg}|j||S)Nrr!{z:{}}r) rrr;rr7 conversionchrrU format_specrCr&r)rr:val_expconv_str format_stringformat_spec_exp format_methodrs rvisit_FormattedValuez!ASTConverter.visit_FormattedValues **QWW%1<<0)2sS5F/Fh 78 78}}7P$**Q]]3V]^`Vaqxx6"=(; }-$ G_57IDRV< }}.22rc|jtd|j|jdt t t j}|j||S)Nz.PEP 750 template strings are not yet supportedFr) r$rrr7rWrqr|rr;rs rvisit_TemplateStrzASTConverter.visit_TemplateStrsU I J HH LL  WY112 3}}Q""rcJd)N Unreachablers rvisit_Interpolationz ASTConverter.visit_Interpolations #m#urcX|j}t|j||j}|j}t |t rJt |jtr0|jjdk(rt|j|}n|}|j||S)Nsuper) rrCrr r rr&calleerErrVr;)rr:r member_exprobjrs rvisit_AttributezASTConverter.visit_Attributes E!2AFF;  sH %3::x0 7*(1+2B2BC(HAA}}Q""rct|j|j|j|j}|j ||Sr )r=rrslicer;rs rvisit_SubscriptzASTConverter.visit_Subscripts9 djj)4::agg+> ?}}Q""rcnt|j|j}|j||Sr )rSrrr;rs r visit_StarredzASTConverter.visit_Starreds* TZZ( )}}Q""rcPt|j}|j||Sr )rErr;rs r visit_NamezASTConverter.visit_Names QTTN}}Q""rc|jDcgc]}|j|}}t|jtj r t |}n t|}|j||Scc}wr ) r/rrctxrStorerYrAr;)rr:r expr_lists r visit_ListzASTConverter.visit_Lists^>?ff&Etzz!}&E &E aeeTZZ (&/ &:A#A}}Q"" 'FsA6cnt|j|j}|j||Sr )rYrDr/r;rs r visit_TuplezASTConverter.visit_Tuples, d..qvv6 7}}Q""rct|j|j|j|j|j|j}|j ||Sr )rRrlowerrstepr;rs r visit_SlicezASTConverter.visit_SlicesH djj)4::agg+> 166@R S}}Q""rc t|j|j|jDcgc]}|j|jc}|jDcgc]}|j|j c}|jDcgc]}|j |jc}}|j||Scc}wcc}wcc}wr ) rBrsubjectcasespatternguardrrr;)rr:rrs r visit_MatchzASTConverter.visit_Matchs JJqyy !,-GG 4qTZZ " 4*+'' 2QTZZ 256WW =T # #AFF + =   }}T1%% 5 2 =s"C "C "Ccnt|j|j}|j||Sr )rkrrr;r5s rvisit_MatchValuezASTConverter.visit_MatchValues*DJJqww/0}}T1%%rcPt|j}|j||Sr )rirr;r5s rvisit_MatchSingletonz!ASTConverter.visit_MatchSingletons!(}}T1%%rc|jDcgc]}|j|}}|Dcgc]}t|ts|}}t |dksJt |}|j ||Scc}wcc}w)Nr)patternsrrrjr[rhr;)rr:r1r starsrs rvisit_MatchSequencez ASTConverter.visit_MatchSequencesp+,::6aDJJqM66$Fq 1n(EFF5zA~~x(}}T1%% 7FsA6A;A;c|j td}n0|jt|j|}t|}|j||Sr )rrjr;rE)rr:rrs rvisit_MatchStarzASTConverter.visit_MatchStarsI 66>!$'D==!&&!115D!$'D}}T1%%rc<|jDcgc]}|j|}}|jDcgc]}|j|}}|jd}nt |j}t |||}|j ||Scc}wcc}wr )rrr restrErfr;)rr:rrrr2rrs rvisit_MatchMappingzASTConverter.visit_MatchMappings'(vv.! 1 ..)*4A$**Q-44 66>DAFF#DdFD1}}T1%%/4s BBch|j|j}t|tsJ|jDcgc]}|j|}}|j }|j Dcgc]}|j|}}t||||}|j||Scc}wcc}wr ) rclsrrNr  kwd_attrs kwd_patternsrer;)rr: class_refr1 positionals keyword_keyskeyword_valuesrs rvisit_MatchClasszASTConverter.visit_MatchClass#sJJquu% )W---./jj9tzz!}9 9{{ 12@A$**Q-@@I{L.Q}}T1%% :@s B*0B/c|jd}n't|j}|j||}t|j |j |}|j||Sr )rrEr;rdrr)rr:rrs r visit_MatchAszASTConverter.visit_MatchAs.sX 66>DAFF#D==q)DAII.5}}T1%%rct|jDcgc]}|j|c}}|j||Scc}wr )rgr rr;)rr:rrs r visit_MatchOrzASTConverter.visit_MatchOr8s;QZZH'$**W-HI}}T1%%IsAc<t|j}|yt|tjtj fr7|j tj|j|jdt|tjr7|j tj|j|jdt|tjr8|j tj|j|jdyyr)rrrrrrr$r TYPE_ALIAS_WITH_YIELD_EXPRESSIONrr7r TYPE_ALIAS_WITH_NAMED_EXPRESSIONr TYPE_ALIAS_WITH_AWAIT_EXPRESSION)rr:r's rvalidate_type_aliasz ASTConverter.validate_type_alias<sGP  !  ntzz4>>&B C II AA    ndnn 5 II AA    ndjj 1 II AA    2rc|j|j}|j||j|j}t |}|j ||jtt|g}|j ||jt|j|j||}|j ||S)N)r) rrr$rrrOr;r?r#rZrr)rr:rrr value_funcrs rvisit_TypeAliaszASTConverter.visit_TypeAliasWs00?    # 177# c177#UC5\2  j!''*T__QVV4k:N}}T1%%r) rrcrrrrrrrrwreturnrrrwrrrrr(r) rrrrrrrrr(r)rr8r(r)r AST | Noner(r)rrr:AstNoder(r)r>zSequence[AST | None]r(zlist[Expression | None])r>z Sequence[AST]r(list[Expression])rzast3.expr | ast3.stmtr(r) raSequence[ast3.stmt]rKrrLrrMrr(list[Statement])r:zast3.stmt | ast3.argr str | Noner(ProperType | None)ryz ast3.operatorr(rw)ryz ast3.cmpopr(rw)rr#rar-r(r)ralist[ast3.stmt]r(z Block | None)rar1rLrrMrr(r#)rar.r(r.r )rfr8rr/r(r/)rfr8r(z"tuple[Block | None, IfStmt | None])rfr8r(r)rfrTr(r)rrwr(rw)rz ast3.Moduler(rD)r:zast3.FunctionDefr(FuncDef | Decorator)r:zast3.AsyncFunctionDefr(r2)F)r:z(ast3.FunctionDef | ast3.AsyncFunctionDefrMrr(r2)r,z Type | NonerzExpression | Noner(r)rzast3.argumentsrrrrr(zlist[Argument]) rast3.argrast3.expr | Nonerrrrrrr(r)rrwrr3r(r)r:z ast3.ClassDefr(r')r& ast_TypeVarr(r)rz list[Any]r(zlist[TypeParam])r:z ast3.Returnr(rO)r:z ast3.Deleter(r-)r:z ast3.Assignr(r!)r:zast3.AnnAssignr(r!)r:zast3.AugAssignr(rH)r:zast3.Forr(r4)r:z ast3.AsyncForr(r4)r:z ast3.Whiler(r^)r:zast3.Ifr(r8)r:z ast3.Withr(r_)r:zast3.AsyncWithr(r_)r:z ast3.Raiser(rM)r:zast3.Tryr(rX)r:TryStarr(rX)r:z ast3.Assertr(r)r:z ast3.Importr(r9)r:zast3.ImportFromr(r;)r:z ast3.Globalr(r7)r:z ast3.Nonlocalr(rG)r:z ast3.Exprr(r2)r:z ast3.Passr(rL)r:z ast3.Breakr(r$)r:z ast3.Continuer(r+)r:rr(r )r:z ast3.BoolOpr(rI)ryrwrr,r: ast3.exprr(rI)r: ast3.BinOpr(rI)r:z ast3.UnaryOpr(r\)r:z ast3.Lambdar(r?)r:z ast3.IfExpr(r*)r: ast3.Dictr(r.)r:zast3.Setr(rQ)r:z ast3.ListCompr(r@)r:z ast3.SetCompr(rP)r:z ast3.DictCompr(r/)r:zast3.GeneratorExpr(r6)r:z ast3.Awaitr(r")r:z ast3.Yieldr(r`)r:zast3.YieldFromr(ra)r:z ast3.Comparer(r()r:rr(r&)r:rr(r)r:zast3.JoinedStrr(r1)r:zast3.FormattedValuer(r1)r:ast_TemplateStrr(r1)r:ast_Interpolationr(r1)r:rr(zMemberExpr | SuperExpr)r:ast3.Subscriptr(r=)r:rr(rS)r:rr(rE)r: ast3.Listr(zListExpr | TupleExpr)r: ast3.Tupler(rY)r: ast3.Slicer(rR)r:Matchr(rB)r: MatchValuer(rk)r:MatchSingletonr(ri)r: MatchSequencer(rh)r: MatchStarr(rj)r: MatchMappingr(rf)r: MatchClassr(re)r:MatchAsr(rd)r:MatchOrr(rg)r: ast_TypeAliasr(r)r:rIr(zTypeAliasStmt | AssignmentStmt)r/ __module__ __qualname__rrr$r)rr;rArDrJrYrjrAddSubMultMatMultDivModPowLShiftRShiftBitOrBitXorBitAndFloorDivrt__annotations__r{GtLtEqGtELtENotEqIsIsNotInNotInrrrZrrrXrrrrrrrrrrrrr r!r(rr6r:r@rDrGrMrQrTrVrZr\r`rhrkrmrqrtrwryr{r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrrrr$r'rrrrrsbIII I $ II I0RX  G" L"L L  L  L L\ % 5?    # # 3 c # # $ T T C S S t+F '     $ $ D  H  H 0K,  (B* *d % %"% %  %  % %NO<4 $F& &# ## & &&&& #& &"&&& # ## # & # # # # E###$ # ## # # ### # # ##&#03,3&#$ ## # # ### &&&&& &&&&6 &rrc eZdZ d ddZddZdd dZed!dZed"dZd"dZd#dZd$d Z d%d Z d&d Z d'd Z d(d Z d)dZd*dZd+dZd,dZd-dZd.dZd/dZd0dZd1dZd2dZd3dZd4dZd5dZd6dZy)7rcJ||_||_||_g|_||_yr )rrr node_stackr)rrrrrs rrzTypeConverter.__init__gs)  .%'(rc<|jdkr|S|jS)zApply column override if defined; otherwise return column. Column numbers are sometimes incorrect in the AST and the column override can be used to work around that. r)r)rrs rconvert_columnzTypeConverter.convert_columnts#   ! #M'' 'rNc Ltdd|jt|dd|S)aConstructs a type representing some expression that normally forms an invalid type. For example, if we see a type hint that says "3 + 4", we would transform that expression into a RawExpressionType. The semantic analysis layer will report an "Invalid type" error when it encounters this type, along with the given note if one is provided. See RawExpressionType's docstring for more details on how it's used. Nz typing.Anyr7r)rrr)rwrr0)rrrs r invalid_typezTypeConverter.invalid_types+! ,TYYwt\SU7V]a  rcyr rr(s rrzTypeConverter.visits47rcyr rr(s rrzTypeConverter.visitsB))CcRt|jdkry|jdS)z3Return the AST node above the one we are processingrNrP)r[rfrs rparentzTypeConverter.parents% t ! #r""rc|jr5|jj|||jd|jyy)NTr)rrrrr!s rr$zTypeConverter.fails3 ;; KK  tVSYY388  T rcz|jr/|jj|||dtjyyrr r!s rrzTypeConverter.notes/ ;; KK  tVS6  U rcJ|Dcgc]}|j|c}Scc}wr )rrr>rs rrDz!TypeConverter.translate_expr_lists'()! 1 )))s cP|j}t|}t|jtj s(d}|rdj |}|j||S|s5|jtj|j|jd}ttj}|}t!|j"D]n\}} |dk(r|j%| } | J| }#|dk(r|j'| }:|jtj(|j|jp|j*D]3} | j,} | j.dk(rX|D|jtj0j ||j|j|j'| }w| j.dk(r`||urD|jtj2j ||j|j|j%| } | J| }|jtj4j | j.| j| j6t7||||j|jS)Nz,Suggestion: use {0}[...] instead of {0}(...)rrrrr,)rstringify_namerrprListrrjr$rARG_CONSTRUCTOR_NAME_EXPECTEDrr7rqr|rrrr_extract_argument_nameARG_CONSTRUCTOR_TOO_MANY_ARGSrrrMULTIPLE_VALUES_FOR_NAME_KWARGMULTIPLE_VALUES_FOR_TYPE_KWARGARG_CONSTRUCTOR_UNEXPECTED_ARGrr) rrf constructorrr default_typerrrrrrs rrzTypeConverter.visit_Calls4 FF$Q' $++-3DELL[Y$$QT$2 2 II&DDahhPQP\P\ ]y556  ' bFAsAv JJsO  ,,,a2237 *HH!((TUT`T`a b AGGEuu#II(GGNN{[  2259&l*II(GGNN{[  !JJu-  ,,, $CCJJ155QLL$$+ 4 T;!,,OOrctt|Dcgc]}|j|c}|jScc}w)Nr)r{rrrts rtranslate_argument_listz%TypeConverter.translate_argument_lists)21A2CC2s5c`t|tr4t|jtr|jj St|tr |jy|j t jjt|j|jdyrF) rrrrwrr$r ARG_NAME_EXPECTED_STRING_LITERALrr,r/rrs rrzz$TypeConverter._extract_argument_namesw a "z!''3'?77==? " 8 $  = = D DT!WEUEU V II  rcxt|j|j|j|jS)Nrr)r}rrrhr7rs rrzTypeConverter.visit_Names(144dii8K8KALL8YZZrcVt|jtjs|j |S|j |j }|j |j}t||g|j|j|j|jdS)NT)rrruses_pep604_syntax) rryrrUrjrrrr~rrhr7r)rr:rrs rrzTypeConverter.visit_BinOps!$$ +$$Q' 'zz!&&! 177# 5M&&q||4**#   rc|j}|td|jSt|tr"t |d|j|j S|turt|jSt|trt|d|jSt|tttfr|j||St|tr.t!|}t|d|j|j Sy)Nrrz builtins.strz builtins.boolzbuiltins.bytes)r)rr}rrrwrr7rrtrrwrrr numeric_typerr)rr:rcontentss rrzTypeConverter.visit_Constant sgg ;vDII6 6 c3 $S.$))Q\\R R (?TYY/ / c4 $S/ J J cC0 1$$S!, , c5 !3C8H$X/?STS_S_` ` "rcJ|j|j}t|trht |j t urMt|jtr|xj dzc_|St|jtr|S|j|S)Nr) rrrrwr, literal_valuerryrrrj)rr:rs rrzTypeConverter.visit_UnaryOp s|jj# s- .S&&'3.!$$%!!R'! !$$%   ##rc t|tr|}d}nd}dt|j}t |||j t |ddS)Nz builtins.intz builtins.r7rr)rrr,r/rwrr0)rrr: numeric_value type_names rrzTypeConverter.numeric_type0sZ eS !(-M&I !M#DK$8$8#9:I 9499WQ VX=Y  rc||jtt|j}t |t sJ|Sr )rr rrrry)rr:rs r visit_IndexzTypeConverter.visit_IndexBs1 4Q<--.%&&& rc(|j|dS)Nz(did you mean to use ',' instead of ':' ?rv)rjrs rrzTypeConverter.visit_SliceHs  )S TTrcRd}t|jtjrJ|j |jj }t |jj dk(rd}n|j|jg}|j|j}t|tr`|jsTt|j||j|j|}t|dd|_t|dd|_|S|j#|S)NFrT)rrempty_tuple_indexr6r5)rrrr.rDr/r[rrr}rrrrr0r9r8rj)rr:rparamsrresults rrzTypeConverter.visit_SubscriptLs! aggtzz *--aggll;F177<< A%$(!jj)*F 177# e[ )%**  YY||"3 F!(+;T BF %at((++%)ZZ%6E)// "  7uceSUOQXXq||\"2 rc|j|j}t|trG|js;t|j d|j |j|jS|j|S)Nrr) rrrr}rrr rr7rj)rr: before_dots rrzTypeConverter.visit_Attribute~scZZ( j+ .z*//!2!AFF8<499UVUaUab b$$Q' 'rcNt|j|jdS)NT)from_star_syntax)rrrrs rrzTypeConverter.visit_Starreds$**QWW-EErct|jtjsJ|j |j }|Sr )rrrLoadrr/)rr:rs rrzTypeConverter.visit_Lists3!%%+++--aff5 r)rrT) r Errors | Nonerrrrrrr(r)rrr(rr )rrrr/r(rw)rr7r(rv)rr*r(r0)r(r*)rrrrrrr(rr))r>Sequence[ast3.expr]r(z list[Type])rrr(ry)r>rr(r{)r:r7r(r/)r:rr(ry)r:r8r(ry)r:rr(ry)r:rr(ry)robjectr:rr(ry)r:z ast3.Indexr(ry)r:r?r(ry)r:r<r(ry)r:r>r(ry)r:r9r(ry)r:rr(ry)r:z ast3.Starredr(ry)r:r=r(ry)r/rJrKrrhrjr rrpr$rrDrrrzrrrrrrrrrrrrrrrrrrfs!! ) ) ) )  )  ) (  77 ??""# UV*3PjD [  a,$  $ U(0 "(Frrct|tr |jSt|tr(t |j }||d|j Sy)Nr)rrrrrwrr )r:svs rrwrwsJ!Ttt Ay ! AGG $ >T166(# # rcPeZdZdZd dZd dZd dZddZddZddZ ddZ dd Z y )r]zACheck if an AST contains attribute assignments (e.g. self.x = 0).c d|_d|_yNF)lvaluer_ros rrzFindAttributeAssign.__init__s  rcdd|_|jD]}|j|d|_yNTF)rr>r^rrglvs rvisit_assignment_stmtz)FindAttributeAssign.visit_assignment_stmts. )) B IIdO  rcd|_|jD]}||j|d|_|jj|yr)rrCr^rrs rvisit_with_stmtz#FindAttributeAssign.visit_with_stmtsE (( B~ $    drcd|_|jj|d|_|jj||jr|jj|yyr)rindexr^rrrrgs rvisit_for_stmtz"FindAttributeAssign.visit_for_stmtsN  t   d ;; KK  t $ rcyr rrs rvisit_expression_stmtz)FindAttributeAssign.visit_expression_stmt rcyr rrrs rvisit_call_exprz#FindAttributeAssign.visit_call_exprrrcyr rrs rvisit_index_exprz$FindAttributeAssign.visit_index_exprrrcb|jr#t|jtrd|_yyyrO)rrr rEr_rs rvisit_member_exprz%FindAttributeAssign.visit_member_exprs$ ;;:affh7DJ8;rNr(r)rgr!r(r)rgr_r(r)rgr4r(r)rgr2r(r)rr&r(r)rr=r(r)rrCr(r) r/rJrK__doc__rrrrrrrrrrrr]r]s-K %   rr]c(eZdZdZddZddZddZy) r`z/Check if an AST contains yields or yield froms.cd|_yrr_ros rrzFindYield.__init__s  rcd|_yrOrrs rvisit_yield_exprzFindYield.visit_yield_expr  rcd|_yrOrrs rvisit_yield_from_exprzFindYield.visit_yield_from_exprrrNr)rr`r(r)rrar(r)r/rJrKrrrrrrrr`r`s9rr`cBt|}|dk(ryd}t|dtr"t|djtr|dz }||k(ry||dzkDry||}t|t t fxs,t|txrt|jtS)zCould the statements form a "trivial" function body, such as 'pass'? This mimics mypy.semanal.is_trivial_body, but this runs before semantic analysis so some checks must be conservative. rFrT)r[rr2r rUrLrMr0)rgr>rrfs rr\r\s AAAv A!A$'Jqtyy',J QAv1q5y Q4D dXy1 2 4(PZ <-Pr) r str | bytesrrwrrwrrr(rr ) rrrrwrr/rrrzOptions | Noner(rD)rr/r(zlist[str] | None) rrwrrrrrrr(z*tuple[list[str] | None, ProperType | None]) rrwrrwrrrrr(rv)r r7r(r)r r4r(r4)r:rr(r/)rgr.r(r) __future__rrrrcollections.abcrrrrrrr r r r r mypyrrrr mypy.errorsrmypy.message_registryr mypy.nodesrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarb mypy.optionsrc mypy.patternsrdrerfrgrhrirjrkmypy.reachabilityrlrmmypy.sharedparsernromypy.traverserrp mypy.typesrqrrrsrtrurvrwrxryrzr{r|r}r~r mypy.utilrrrrrYrrrrrrrrrrrrrrr@rArBrCrDrErFrGrHr rfr ExceptHandlerr+r6 TypeAliasrI ParamSpecr,r5 TypeVarTupler- TemplateStrr: Interpolationr;rrcompilerrrrrr rrrrwr]r`r\rrrrs" $ZZZ@@.QQQQQQQQQQQQQQQQQQQQQd!   YN+"E**1-%-VVVK[   #& .1 DG   NN ==w JJEJ((N&&MI$$LJllGllGDIItyy$,,8J8JJKG EJNMILJGGDIItyy$*<*<<=GwllGGwNNMNNM,,K((MMKw&&O**O Ct""2B;;'RZZ(IJUJ# R R R R  R  R  Rj<$#"#" #"*-#"7D#"/#"LPP*-P58PBEPP,a&a&H/hhV +*+\  r