K i,dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZee dZeeZe j&j(ZdZej.ej0fZdZdZdZd Zd Ze j>d Z e j>d Z!e j>d Z"e j>dZ#e j>dZ$e%dZ&dZ'dZ(Gdde)Z*de*fdZ+dZ,dZ-GddZ.Gdde.Z/Gdde/Z0GddZ1Gd d!Z2Gd"d#e/Z3Gd$d%e3Z4Gd&d'e3Z5Gd(d)e3Z6Gd*d+e5Z7Gd,d-e.Z8Gd.d/e.Z9Gd0d1e9Z:Gd2d3e.Z;Gd4d5e/Z<Gd6d7e/Z=Gd8d9e.Z>Gd:d;e)Z?Gd<d=e?Z@Gd>d?e?ZAGd@dAe?ZBGdBdCe?ZCGdDdEe?ZDGdFdGeDZEGdHdIZFgdJZGdKZHe%dLZIdMZJdNZKdOZLdPZMGdQdRZNdSZOdTZPGdUdVZQy)Wz] Main module. Implement the central Checker class. Also, it models the Bindings and Scopes. N)messagespypy_version_infoct|tjr |jgSt|tjr6|j|j zg|j Dcgc]}|gc}zStjdk\r?t|tjr$|jDcgc]}|jc}Syycc}wcc}w)N) ) isinstanceastIfbodyTryorelsehandlerssys version_infoMatchcases)nhdlmcs V/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyflakes/checker.pygetAlternativesrs!SVVx Asww !"qzz%Bse%BBB  W $Asyy)A"#''*B***B $&C*s ) C 3Cct|tjxr3t|jtt t t dfSN)rr ConstantvaluebooltypeEllipsisnodes r _is_singletonr!)s84& C4::d8nd4jABcrt|tjxrtd|jDS)Nc32K|]}t|ywr) _is_constant.0elts r z%_is_tuple_constant..3s 3#L  3)rr Tuplealleltsrs r_is_tuple_constantr.0s,4# 4 3 33r"cPt|tjxs t|Sr)rr rr.rs rr%r%7s dCLL ) E-?-EEr"c4t|xr t| Sr)r%r!rs r_is_const_non_singletonr1;s   9mD&9"99r"ct|tjxr|j|k(xs+t|tjxr|j |k(Sr)rr Nameid Attributeattr)r names r_is_name_or_attrr8?sD D#(( # 74 @ D#-- ( >TYY$->r"z \(([^()]*)\)z[#0+ -]*z (?:\*|\d*)z(?:\.(?:\*|\d*))?z[hlL]?zdiouxXeEfFgGcrsa%c2|j||}|J|Sr)match)regexstringposr:s r _must_matchr>Os# KK $E    Lr"c.fd}t|S)zParses the string component of a `'...' % ...` format call Copied from https://github.com/asottile/pyupgrade at v1.20.1 c3HKd}d}d}d}|tkrI|s jd|}|}|dz }d}ntj |}|r"|j d}|j }nd}tt|}|j xsd}|j }tt|}|j xsd} |j }tt|} | j xsd} | j }tt|j } |} |dz }||| | | f} ||| fd}|}|tkrI|r tdy#t$r |ddfYywxYw#t$r tdwxYww)NrF%Tz"end-of-string while parsing format) lenindex ValueErrorMAPPING_KEY_REr:groupendr>CONVERSION_FLAG_REWIDTH_RE PRECISION_RE LENGTH_RE IndexError) string_start string_endin_fmti key_matchkeyconversion_flag_matchconversion_flag width_matchwidthprecision_match precision conversionfmtss r _parse_innerz*parse_percent_format.._parse_inner[s   #a&j"QA "#JFA!F*00A6 #//!,C! AC(34F1(M%"7"="="?"G4)--/)(Aq9 #))+3tOO%"-lAq"A+113;t #'') 1a0446K!"1JQOUIzJ Z0#55 Y#a&j\ AB B U"LM*D00@"K$%IJJKsFF"E2DF"6F ;'F"$F"2FF"FF" FF")tuple)r\r]s` rparse_percent_formatr_Us 5Cn   r"ceZdZdZdZdZy) _FieldsOrderzFix order of AST node fields.c|j}d|vr dj}nd|vr dj}n dj}tt||dS)Niter generatorsrT)rSreverse)_fieldsfindr^sorted)self node_classfields key_firsts r _get_fieldsz_FieldsOrder._get_fieldssN## V  I V #$))I IVF 4@AAr"c2|j|x||<}|Sr)rm)rirjrks r __missing__z_FieldsOrder.__missing__s!$($4$4Z$@@Z6 r"N)__name__ __module__ __qualname____doc__rmror"rraras' Br"rac#K||jD]l}|r||vr t||d}t|tjr|6t|t sG|D]!}t|tjs|#nyw)a Yield all direct child nodes of *node*, that is, all fields that are nodes and all items of fields that are lists of nodes. :param node: AST node to be iterated upon :param omit: String or tuple of strings denoting the attributes of the node to be omitted from further parsing :param _fields_order: Order of AST node fields N) __class__getattrrr ASTlist)r omit _fields_orderr7fielditems riter_child_nodesr~sydnn-  DDL dD) eSWW %K t $ dCGG,J  sABB9 Bct|tjr |jSt|tjrt d|j DSt|tjr t|StS)Nc32K|]}t|ywr)convert_to_value)r'rQs rr)z#convert_to_value..s)formatrvrpr7rlinenor4rs r__repr__zBinding.__repr__s=:AA NN # # II KK   tH   r"cXt|txr|j|jk(Sr)r Definitionr7riothers r redefineszBinding.redefiness!%,Hejj1HHr"N)rprqrrrsrrrrrtr"rrrs   Ir"rc"eZdZdZfdZxZS)rz7 A binding that defines a function or a class. c|t||xs+t|txr|j|jk(Sr)superrr Assignmentr7rirrvs rrzDefinition.redefiness7 G e $ H z * FtyyEJJ/F r")rprqrrrsr __classcell__rvs@rrrs  r"rc(eZdZdZfdZdZxZS)Builtinz-A definition created for all Python builtins.c&t||dyr)rr)rir7rvs rrzBuiltin.__init__s t$r"cvdj|jj|jt |S)Nz<{} object {!r} at 0x{:x}>)rrvrpr7r4rs rrzBuiltin.__repr__s0+22 NN # # II tH  r")rprqrrrsrrrrs@rrrs7% r"rceZdZdZy)rzS A dictionary key of a type that we cannot or do not check for duplicates. Nrprqrrrsrtr"rrrr"rc"eZdZdZdZdZdZy)rzY A dictionary key which is a variable. @ivar item: The variable AST object. c&|j|_yr)r4r7)rir}s rrzVariableKey.__init__s GG r"cj|j|jk(xr|j|jk(Sr)rvr7)ricompares r__eq__zVariableKey.__eq__s.    / & LLDII % r"c,t|jSr)hashr7rs r__hash__zVariableKey.__hash__sDIIr"N)rprqrrrsrrrrtr"rrr s  r"rcFeZdZdZdfd ZdZdZedZdZ xZ S) Importationz A binding created by an import statement. @ivar fullName: The complete name given to the import statement, possibly including multiple dotted components. @type fullName: C{str} cJ|xs||_g|_t| ||yr)fullName redefinedrr)rir7r full_namervs rrzImportation.__init__)s%!)T  v&r"ct|tr|j|jk(St|txr|j|jk(Sr)rSubmoduleImportationrrr7rs rrzImportation.redefines.s? e1 2==ENN2 2%,Hejj1HHr"cZ|jjdd|jk( S)z.Return whether importation needs an as clause..)rsplitr7rs r _has_aliaszImportation._has_alias4s(==&&s+B/499<<>TYY &==6)DII5 5== r"c|j|jk7r)d|jd|jd|jSd|jd|jS)Nfrom z import r)rr7rrs rrz ImportationFrom.source_statementsS >>TYY &4;;-x/?tDII;O O4;;-x {; ;r"r)rprqrrrrrrrrs@rrrms! 2!<._add_to_namessG! 2dCLL1jS6QJJ%%djj1 2r") rr AugAssignryrrListr+BinOprightleftrr) rir7rrr currentValuerrrvs ` rrzExportBinding.__init__s$  *VS]]"CeI.445DJDJ 2 fllSXXsyy$9 : &,, '  cii 0!<)rvrpr4dictr)ri scope_clss rrzScope.__repr__ s<NN++ 9+VBtHQ__debuggerskip____tracebackhide____traceback_info____traceback_supplement__cnt||jj|_i|_yr)rr alwaysUsedcopyglobalsrrs rrzFunctionScope.__init__!s* ++- $&!r"c#K|jD]K\}}|jr|dk7s||jvs(|jr5t |t sF||fMyw)zR Return a generator for the assignments which have not been used. _N)itemsrr usesLocalsrrrir7bindings runused_assignmentsz FunctionScope.unused_assignments(sV"ZZ\ $MD'LLCK ,w 3Gm#  $s #A"A"A" A"A" A"c#K|jD])\}}|jrt|ts$||f+yw)zR Return a generator for the annotations which have not been used. N)rrrrr s runused_annotationsz FunctionScope.unused_annotations4s;"ZZ\ $MD'<._bare_name_is_attrosdk* Eu}uT{O<<$K&&.8<$U4[%:%:; r"ctD]2}||vst||txr||jtvcSyr)r=rrrr>)r7rr@s r_module_scope_is_typingz2_is_typing_helper.._module_scope_is_typingzsMk* Eu}uT{K8;$K((N: r")rr r3r4r5rr6)r r?r@rArCs `` r_is_typing_helperrDes  tSXX & ( tww '  tS]] + ( tzz388 , ( #DJJMM 2 ( TYY ' r"c$t|fd|S)z Determine whether `node` represents the member of a typing module specified by `typing_attr`. This is used as part of working out whether we are within a type annotation context. c|k(Srrt)r typing_attrs rz_is_typing..s Q+-=r"rD)r rGr@s ` r _is_typingrJs T#={ KKr"ct|d|S)z Determine whether `node` represents any member of a typing module. This is used as part of working out whether we are within a type annotation context. cyNTrt)rs rrHz'_is_any_typing_member..sr"rI)r r@s r_is_any_typing_memberrNs T>; ??r"ct|jtjtjfxr(t fd|jj DS)Nc38K|]}t|dyw)overloadN)rJ)r'decr@s rr)z%is_typing_overload..s"  sJ 4 s)rrr FunctionDefAsyncFunctionDefanydecorator_list)rr@s `ris_typing_overloadrWsI5<<#//33G3G!HI   ||22  r"ceZdZdZdZdZy)AnnotationStaterrBN)rprqrrNONESTRINGBARErtr"rrYrYs D F Dr"rYcBtjfd}|S)Nch|j5|g|i|cdddS#1swYyxYwr)_enter_annotationriargskwargsfuncs rin_annotation_funcz)in_annotation..in_annotation_funcs6  # # % /.t.v. / / /s (1 functoolswrapsrdres` r in_annotationrj&__T// r"cBtjfd}|S)Nc|jtj5|g|i|cdddS#1swYyxYwr)r`rYr\ras rrez0in_string_annotation..in_annotation_funcs>  # #O$:$: ; /.t.v. / / /s 7Arfris` rin_string_annotationrnrkr"ceZdZdZej eejeeje eje eje ejeejeej eej"ei ZdZdZej,Zeej5eZej<j?dZ e r ejCe jEd[ dddej<vdfd Z#d Z$d Z%d Z&e'd Z(e(jRdZ(e'dZ*e*jRdZ*e'dZ+e,jZdZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;d Ze'd"Z?dQd#Z@d$ZAd%ZBd&ZCd'ZDeEjjZHd(ZIeJd)ZKd*ZLeMd+ZNd,ZOe@xZPxZQxZRxZSxZTxZUxZVxZWZXeOZYe@xZZxZ[xZ\xZ]xZ^xZ_Z`d-Zad.Zbd/Zcd0Zdd1Zed2Zfe@xZgxZhZieOxZjxZkxZlxZmxZnZoeOxZpxZqxZrxZsxZtxZuxZvxZwxZxxZyxZzxZ{xZ|xZ}xZ~xZxZxZxZxZxZxZxZxZxZxZxZxZZd3Ze@xZxZZd4Zd5Zd6Ze@Zd7Zd8ZeZd9Zd:ZeZd;ZexZxZZd<Zd=ZeZd>Zd?ZexZZd@ZeZdAZdBZdCZdDZdEZdFZeZdGZdHZdIZeZdJZdKZdLZe@xZxZxZxZZe@xZZdMZexZxZZe,jZdNZdOZe;xZZdPZy)RCheckerz2I check the cleanliness and sanity of Python code.rNPYFLAKES_BUILTINS,z(none)PYFLAKES_DOCTESTrtci|_tj|_g|_g|_||_|r |jj||_||_ dg|_ ||_ g|_ tjt|}|j%|5|jD]}|j'dt)||j+||j-ddd|j/|rt1j2ddyy#t $rt#d|zwxYw#1swYOxYw)Nrtz$No scope implemented for the node %rz1`file_tokens` will be removed in a future versionrZ) stacklevel) _nodeHandlers collectionsdeque _deferred deadScopesrfilenamebuiltInsunion withDoctestexceptHandlersroot scopeStackrp_ast_node_scoperKeyError RuntimeErrorin_scope addBindingrhandleChildren _run_deferredcheckDeadScopeswarningswarn)ritreer{builtinsr~ file_tokensscope_tpbuiltins rrzChecker.__init__s1$**,    MM//9DM&!d  N..tDz:H]]8 $ !== 8gg&67 8    %     !   MMC   NELM M N ! !s6D$#AD?$D<?Ecn|jj||jdd|jfy)a{ Schedule a function handler to be called just before completion. This is used for handling function bodies, which must be deferred because code later in the file might modify the global scope. When `callable` is called, the scope at the time this is called will be restored, however it will contain any new bindings added to it. N)ryrroffset)ricallables r deferFunctionzChecker.deferFunctions* x);T[[IJr"c|j|jf}|jrA|jj\}}}||c|_|_||jrA|\|_|_yr)rrrypopleft)riorighandlerrrs rrzChecker._run_deferred sb-nn%)^^%;%;%= "GUF+0& (DOT[ Inn (,$r"cpt|jdk\xrt|jdtS)NrZrB)rCrrr.rs r _in_doctestzChecker._in_doctests0DOO$)=4??1-|< >r"chtd|jDsy|jjS)Nc3<K|]}t|tywr)rr*r'rs rr)z)Checker.futuresAllowed..s1e[11sF)r,rrr+rs rfuturesAllowedzChecker.futuresAlloweds.1 $11zz***r"ch|dusJt|jtrd|j_yyr)rrr*r+rirs rrzChecker.futuresAllowed!s-~~ djj+ .*/DJJ ' /r"cZ|jd}t|tsy|jS)NrF)rrr*r,)rirs rannotationsFutureEnabledz Checker.annotationsFutureEnabled's)"%-000r"cj|dusJt|jtsJd|j_yrM)rrr*r,rs rrz Checker.annotationsFutureEnabled.s.}}$**k22215 .r"c |jdS)Nr)rrs rrz Checker.scope4sr""r"c#,K|jj| d|jj|jjy#|jj|jjwxYwwr)rrrzpop)riclss rrzChecker.in_scope8s` su% :  OO " "4??#6#6#8 9DOO " "4??#6#6#8 9s!BA4B5BBc |jD]m}t|ttfrC|jj D]&\}}|j tj||(t|trnt|tr|jD]0\}}|j tj|j|2|jD]0\}}|j tj|j|2|jd}|rt|tsd}|r3t!|j"}|j"Dcgc]}||vr| }}ngx}}|r|j$sat&j(j+|j,dk7r5|D]0}|j tj.|dj|2|j$rg}|j1D]5}t|t2s||_|j7|j87dj;t=|}|D]1}|j tj>|dj||3|j1D]} t| t@s| j4xs| jB|v} | s6tjD} |j | | jtG| | jHD]m}t|jK|tLrtjN} n| r6tjP} |j | || jB| jopycc}w)z Look at scopes which have been fully examined and report names in them which were imported but unused. rN __init__.py, ))rzrrrrrreportrUnusedIndirectAssignmentr"UnusedVariablerr$UnusedAnnotationgetrsetrr ospathbasenamer{UndefinedExportvaluesrrrrjoinrhImportStarUsagerr7 UnusedImportrr getParent FOR_TYPESImportShadowedByLoopVarRedefinedWhileUnused) rirr7r r! all_binding all_names undefined from_listrrmessgs rrzChecker.checkDeadScopes@s __? KE%*m!<="'"<"<"B"B"DOJD$KK A A4NO%,%/%*%=%=%?OMD'KK 7 7NO%*%=%=%?QMD'KK 9 97>>4PQ ))I.K:k=#I"  1 12 %0%6%6!5(  )+* I**77##DMM2mC )C H$<$<$))$4$;$;TCC && "I#(<<>?%g?+6GL%,,W-=-=>? !% &*; L  ! !E$9$9 9))%*@*@%N N  ! !E$9$9 9))%1G1GN N%%  " "  " "   r"c<|D]}|j|||syy)NTF)r)rir ancestorsras r descendantOfzChecker.descendantOfs+ A%%dAt4 r"cf|} ||jury|j|}t||r|S/r)rrr)rir ancestor_typeparents r _getAncestorzChecker._getAncestors;"^^F+F&-0 r"cp|j|ttjj Sr)rr^rprkeysrs r getScopeNodezChecker.getScopeNodes)  uW-D-D-I-I-K'LMMr"c|j|||j}t|}|r0|D]+}|j||||j|||z s+yy)zATrue, if lnode and rnode are located on different forks of IF/TRYTF)rrrr)rirrancestorpartsrs rdifferentForkszChecker.differentForkssg))% B)  $$UE8<$$UE8<= r"c |jdddD]}|j|vsnj|j}|rt|ts|j ||j s|j|j }t|trHt|tr8|jtj||j|j n||jur|js||j|rk|jdk7st|trLt!||js6|jtj"||j|j t|t$t&frc|j(j+|jdn.s"%e^<s)rr7rrrrrrrrrrrrrrrWrrrrrrrrrnextr= setdefault)rir rrexisting parent_stmts rrzChecker.addBindings2__TrT* EzzU" 99UZZ( Z':''hoo>..6K(K0Z Y5W H<< %**hoo?$**$%]]ux/Hs*j;.O.xIKK = = $ejj(//Cej-%@A..225::tDHk2ux7P""))$/ :: #EJJ/44EJ ::TZZ 'z%/L%!45!)$//!: ::&:eEJJ6G+T(-E%**%$$UZZ7). 5::&0Mr"ctjjdrtdt ||j |y)NPYFLAKES_ERROR_UNKNOWNzUnexpected type: )renvironrNotImplementedErrorrrrs r_unknown_handlerzChecker._unknown_handlers: ::>>2 3%(9$t*&FG G    %r"c |j|S#t$r|jj}YnwxYwt |||j x|j|<}|Sr)rvrrpupperrwr)rirjnodeTypers rgetNodeHandlerzChecker.getNodeHandlersk 3%%j1 1 3!**002H 33: (D114  :&s #77ct|}|syd}d}|jdddD]6}t|tr |dk(ry|dur |j |d}t|t r#|j s|j|f||_e|dk(rnt|tr^t|tjrDt|jtjr |jtj | |j|f||_||}t|t"r3|j%r# |j|f||j&_yy|rg} |jdddD]V}|j1D]A}t|t2s|j|f|_| j5|j&CXdj7t9| } |jtj:||| y|dk(r-t<j>jA|jBdk(ry|tDjFvrt|jtryd|jHdvr"|jtjJ||yy#t($rYywxYw#t($rYnwxYw|xs |j*}|dust|t,t.f}) NrrvFprintr__path__r NameError)&rrrrrr_in_postponed_annotationrrrr ropRShiftrrInvalidPrintSyntaxrrrrr r&r(rrrrrhrrrrr{r0rr UndefinedName) rir rr7can_access_class_varsr rr!rrs rhandleNodeLoadzChecker.handleNodeLoads4  !% __RVV,* E%,;&*e3iid+G':.t7T7T$(JJ#5d  w:gw#?vsyy1"699cjj9KK ; ;TB $(JJ#5d  $Ka-!,,.26**d1Cajj). G* X IR0 ;$||~;G!'?;(, D'9 !(()9)9: ; ; &"34I KK00$i H  : "''"2"24=="A]"R  )// /Jtzz:4V  d11"5 5 KK..d ; 6K$    *@U-@-@M$E1(2I~6)%s0>;J.: J J+'J.*J++J.. J:9J:ct|}|syt|jtr||jvr|jddD]}t|tt fs||vxr||j }|s2|d|jusD||jjvs]|jtj||j d|||jn|j|}t|tjr|jt!||}nt|t"tj$fs ||j&k7r|j)|s t+||}n|dk(rt|jt ret|j&tj,tj.tjfr"t1||j&|j}n3t|tj2r t5||}n t7||}|j9||y)NrrrBr)rrrrrr*rrrrUndefinedLocalrrr AnnAssignrrr comprehensionrisLiteralTupleUnpackingrAssignrr NamedExprrrr)rir r7rrrr!s rhandleNodeStorezChecker.handleNodeStorels4   djj- 0T5K"- !%-)EFu}9t)9)9DGtzz1d$**BTBT6TKK 7 7 %d 0 0 3T5;;M;MO nnT* k3== 1k6G6G6O t,G  i1B1B%C Dt44400=dD)G !4::{3))ZZ > $D$*?*?LG  S]] 3)$5G t,G g&r"cfd}t}|sy|ryt|jttfr&|jj j |dt|jtr>||jjvr&|jjj|y |j|=y#t$r$|jtj|YywxYw)Nctdd}|rJt|tjtjtj fryt|dd}|rJy)zN Return `True` if node is part of a conditional body. rNTF)rwrr r WhileIfExp)currentr s ron_conditional_branchz7Checker.handleNodeDelete..on_conditional_branchsPd$6=Gg 399'EF!'+=tDr") rrrrrrrrremoverrrr)rir rr7s ` rhandleNodeDeletezChecker.handleNodeDeletes 4   "  djj:}"= > JJ + + / /d ; djj- 0TTZZ=O=O5O JJ   % %d + @JJt$ @ H22D$? @s< C *C76C7c#dK|j|c}|_ d||_y#||_wxYwwr)_in_annotation)riann_typers rr`zChecker._enter_annotations3$($7$7!d! ' "&D $D s0$0 -0c|jtjk(xs@|jtjk(xr!|jxst j dk\SN)r)r rYr\r]rrrrs rrz Checker._in_postponed_annotationsU   ?#9#9 9 ##';';;O..M#2B2Bg2M  r"cLt||D]}|j||y)Nrz)r~ handleNode)rirrzr s rrzChecker.handleChildrens&$T5 (D OOD$ ' (r"ct|tjr.|j|jgzD]}t |dryyy)Nr-FT)rr rtargetsrr8)rir childs rrzChecker.isLiteralTupleUnpackingsE dCJJ ' 4 !uf-  ! (r"ct|tjxrJt|jtjxr$t|jjt S)z} Determine if the given node is a docstring, as long as it is at the correct place in the node tree. )rr Exprrrrrs r isDocstringzChecker.isDocstringsG tSXX & . tzz3<< 0 . tzz'' - r"ct|tjrmt|jtjrIt|jjt r%|jj|j dz fSy)NrB)NN)rr rrrrrrs r getDocstringzChecker.getDocstringsV4*4::s||44::++S1::##T[[1_4 4r"c^|y|jrQt|ddD|xj|jdz c_|xj|jdz c_|jrA|j dk(r2t |tjs|j|sd|_|xj dz c_|j |_ ||_ |j|j}|||xj dzc_y#|xj dzc_wxYw)NrrrBF)rrwr col_offsetr nodeDepthrr ImportFromrrrrrv)rir rrs rrzChecker.handleNodes <  ;;7448D KK4;;q> )K OOt{{1~ -O##!#tS^^4$$T*"'D  !#~~ & ))$..9G DM NNa NDNNa Ns #DD,c |j|jd\}}|xr|j|}|sy|j }|j dg|_|j xsd}|jt5d|j dvr|jdtd|D]j} tj|jd}|d|z|jz|d|jzdzf|_|j!|||_l ddd||_y#ttf$rYywxYw#t"$rg} ||jz| jz|jdz| j xsdzf} |j%t&j(|| Yd} ~ d} ~ wwxYw#1swY||_yxYw)Nr)rrrz rB)rr _getDoctestExamplesrErMrrrr.rrr parserrindentr SyntaxErrorrrDoctestSyntaxError) rir docstring node_linenoexamples saved_stack node_offsetexamplerepositions rhandleDoctestszChecker.handleDoctestss '+'8'81'F $Y  HT%=%=i%HH  oo ??1-.kk+V ]]< ( .$//!,,gcl3# . .99W^^[AD $/q>K#?'..#P#.q>GNN#BQ#F#HDK''-"-DK . .&5J'   "#M +gnn DGSXX!> KKT1 %  IIaL..((#45 7J 6 66 J$:$::$. !(6 %  7 )40%  KKT1 %  sCC32C3clttjjfdy)NcSrrt) annotationfnrrisrrHz;Checker.handle_annotation_always_deferred..;s2dJ#?r")rjrprr)rir8rr9s```@r!handle_annotation_always_deferredz)Checker.handle_annotation_always_deferred9s" 7-- . ?@r"c t|tjrzt|jtr`|j t j|j|j||j|jtjy|jstjdk\r|j!||y|j#||yr )rr rrrrrgpartialr5rrrForwardAnnotationSyntaxErrorrrrr:r)rir8r s rhandleAnnotationzChecker.handleAnnotation=s:s||4:++S1   y00++  !!%%55    * *c.>.>'.I  2 2:t D OOJ -r"cyrrtrs rignorezChecker.ignoreQs r"ct|jdr:|jtj5|j |dddyt|jdrz|j |j|t|jtjr |j}nkt|jtjrEt|jjtjr|jj}nd}|t|jdkr|j |j|nn|j |jd||jtj5|jddD]}|j || ddd|j |j|yt|j|j r+|j5|j |dddy|j |y#1swYyxYw#1swYxYw#1swYyxYw)NLiteral AnnotatedrZrrB)r8rr`rYr[rrrslicer r+IndexrCr-rrNr)rir slice_tupleargs r SUBSCRIPTzChecker.SUBSCRIPT^s DJJ 2''(<(<= *##D) * * djj+ 6 OODJJ -$**cii0"jj tzz3995tzz//;"jj.. " "c+*:*:&;a&? D1 0 0 3T:++O,@,@A3*//33T233 OODHHd +$TZZA++-.''-..##D)E * *033..s#H?'I I?I II c 0 ttjjj}ddttfd}|D]j\}}}}||ry| tt|}|D]<\}} } }| (d| vr$j t jdy|| s;yltdjDstdjDrytttj} jD chc]} | j} } | z }| z }z| | zz }|r@j t jdj!t#d|D|r9j t j$dj!t#||rAj t j&dj!t#d |Dyy#t$r+}j t j|Yd}~yd}~wwxYw#t$r,}j t j|Yd}~yd}~wwxYwcc} w) Nrc|y|jd\}}}|jd\}}} t|}dur!jtjyd |dk(r.dur!jtjyd}dz t |trj|yj|y#t $rYrwxYw)z9Returns True if there is an error which should early-exitFr[TrB) partitionintrrStringDotFormatMixingAutomaticrEradd)fmtkeyrauto next_autor placeholder_namedplaceholder_positionalris r_add_keyz3Checker._handle_string_dot_format.._add_keys~"++C0LFAq!++C0LFAq !V4<KK G GN D|5=KK G GND"Q &#&&**62"%%f-1  s C CC{zMax string recursion exceededc3PK|]}t|tj ywrrr Starred)r'rGs rr)z4Checker._handle_string_dot_format..sFSJsCKK0F$&c38K|]}|jduywr)rG)r'kwds rr)z4Checker._handle_string_dot_format..s=CGGtO=src32K|]}t|ywrrr'rs rr)z4Checker._handle_string_dot_format..s BAQ Br*c32K|]}t|ywrr_r`s rr)z4Checker._handle_string_dot_format..s CAQ Cr*)r^parse_format_stringrdrrErrStringDotFormatInvalidFormatrrUrbkeywordsrangerCrG'StringDotFormatExtraPositionalArgumentsrrh"StringDotFormatExtraNamedArgumentsStringDotFormatMissingArgument)rir placeholdersr*rVrrQspecspec_placeholders spec_fmtkey spec_specsubstitution_positionalr]substitution_namedextra_positional extra_namedmissing_argumentsrRrSrTrUs`` @@@@r_handle_string_dot_formatz!Checker._handle_string_dot_formatsn  !4TYY__5J5J!KLL  !$E% % N#/  AvtQ(-.A$.G(H% 5F 0A{Iq , 1A $AA ;  ,  6FDIIFF=t}}== "%eC N&;"<15?#cgg??25KK(+<< $&7 7 $'9 9 ;   KK@@ & B1A BBC   KK;; &-.   KK77 & C1B CCD  S  KK==tQ G  r"KK E EtQO4@s52H$4I9J$ I-!II J$!J  JcF t|jtjrt|jjtj rXt|jjjt r*|jjdk(r|j|g}g}g}t|jd|jrRt|jdk\r:|j5|j|jd|dddn}t|jd|jr|dgz }||jddDcgc]}|c}z }|dgz }||jDcgc]}|j dk(s|j c}z }||jDcgc]}||j dk(rd gndfc}z }nt|jd |jrt|jdkDr~t|jdtj"rW|dgz }||jdj$z }|t'|jDcgc]\}}||dk(rd gndfc}}z }|dgz }||jDcgc]}|jc}z }||jDcgc]}|d gf c}z }nt|jd |jrt|jdkDr8t|jdtj(tj*frt-d |jdj.Dr|dgz }||jdj.Dcgc]}|j.dc}z }||jdj.Dcgc]}|j.ddfc}z }|t'|jDcgc]\}}||dk(rdgndfc}}z }||jdj.Dcgc]}|dfc}z }|dgz }||jDcgc]}|jc}z }||jDcgc]}|d gf c}z }|r|jt0j25|D]\} } |j5| | |j5||ddd|j5|D]} |j| | dddy|j5|y#1swYxYwcc}wcc}wcc}wcc}}wcc}wcc}wcc}wcc}wcc}}wcc}wcc}wcc}w#1swYxYw#1swYyxYw)NrcastrBrTypeVarrbrdboundr TypedDictr NamedTuplec3K|]H}t|tjtjfxrt |j dk(Jyw)rZN)rr r+rrCr-r`s rr)zChecker.CALL..-sHA)*q399chh"78%K1$%AsAAr-r)rrdr r5rrrr6rsrJrrCrbr`rrdrGDictr enumerater+rr,r-rYr[r) rir rz annotated not_annotatedrGkrQr(na_nodena_omitannotated_nodes rCALLz Checker.CALLs499cmm4499??CLL9499??00#6 (*  * *4 0   tyy&$// :  Na '') 4 ! d3 4 4 9doo > VH D 127##7 7I ZL D 4==MaAEEW?A.2iil.?.?AA TYYq\5F5FGcchhqkGG 1ARAR!S#388A;"5!SS "+DII"6"3a1f6($7" 499Q<;L;L!MC3-!MM  ZL D 4==9a!''9 9I dmmDq7)nD DM ''(<(<= 5(5?$GW''g'>?##Dt#4 5 '') :&/:NOOND9: : :    %A 4 48N":DH!S""N:D 5 5  : :sr: U U UU7U6U'U" U'U,U1 U6 U<)V V1V  VU  VV c x t|jj}t}d}d}|D]\}}| |\}}} } } | dk(r| tvr!|j t j|| || r|du}| | fD]2} | d| vs |s!|j t j|.|dz }4|r$|"|j t j|y|s$|"|j t j|y|r|dz }|j|t|jtj tj"frt%d|jj&Dskt)|jj&} |r(|| k7r#|j t j*||| n"|s |j t j,|t|jtj.rt1d|jj2Dr|r&|dkDr!|j t j4|y|jj2Dchc]}|j}}||z }||z }|s;|r9|j t j6|dj9t;||s=|r:|j t j<|dj9t;|yyyyy#t$r$|j t j |dYywxYwcc}w) Nzincomplete formatrrArrBc3PK|]}t|tj ywrrYr&s rr)z1Checker._handle_percent_format..s#sCKK0r[c3K|]:}t|tjxrt|jt<ywr)rr rrr)r'rs rr)z1Checker._handle_percent_format..s6q#,,/LJqww4LLsAAr)r_rrrErrPercentFormatInvalidFormatrVALID_CONVERSIONS'PercentFormatUnsupportedFormatCharacter!PercentFormatStarRequiresSequence$PercentFormatMixedPositionalAndNamedrPrrr rr+rUr-rC$PercentFormatPositionalCountMismatchPercentFormatExpectedMappingr{r,rPercentFormatExpectedSequence PercentFormatExtraNamedArgumentsrrhPercentFormatMissingArgument)rir rinamedpositional_count positionalr placeholderr7rWrYrZpartsubstitution_countrsubstitution_keys extra_keys missing_keyss r_handle_percent_formatzChecker._handle_percent_formatJs  / @L *, NA{"4? 1D!UIzS !22 DD !j!T\  * .#t % $FF  )A-( .d. AADL AA A%  $Y, ^4::#))'<=#zz "%TZZ__!5 .2DD AA$&    HAA4H4::sxx0!ZZ__ .2 HBBDI26**// BQ B  B*U2J #44L* ==IIfZ01 , 99IIf\23#/:%1[  KK33#    n!CsL)L7*L43L4c t|jtjrYt|jtj r5t|jj tr|j||j|yr) rrr Modrrrrrrrs rBINOPz Checker.BINOPsT477CGG,499cll3499??C0  ' ' - D!r"ct|jtro|jrbt j |j |j||j|jtj}|j|yyyr) rrrr rgr<r5rrrr=r)rir r9s rCONSTANTzChecker.CONSTANTsj djj# &4+>+>""++  55 B   r ",? &r"c8|j||j}t|tjr7t |j r!|jtj|yyt |r!|jtj|yyr) rexcrr CallrrdrrRaiseNotImplemented)rir rGs rRAISEz Checker.RAISEso D!hh c388 $*3884 H88$?5) - KK44d ;.r"Fc|js.sOa 1c&8&89Or[T) _in_fstringrUrrrFStringMissingPlaceholdersrrir rs r JOINEDSTRzChecker.JOINEDSTRsl$$O4;;OO KK;;T B!%t'7'7$ $    %#D tD s A77 Bctd|jDs |jtj|d|j c|_} |j |||_y#||_wxYw)Nc3PK|]}t|tj ywr)rr Interpolationr`s rr)z&Checker.TEMPLATESTR..sI:a!2!23Ir[T)rUrrrTStringMissingPlaceholdersrrrs r TEMPLATESTRzChecker.TEMPLATESTRscIT[[II KK;;T B"&t'7'7$ $    %#D tD s A++ A4cjDcgc] }t|}}tj|}|j Dcgc] \}}|dkDr|}}}|D]}t |Dcgc] \}}||k(s |} }}tjfd| D} t d| j Dse| D]n} j| } t|tr,|jtj| |jN|jtj| |p|jycc}wcc}}wcc}}w)NrBc3NK|]}tj|ywr)rr)r'rDr s rr)zChecker.DICT..s')!U!34)s"%c3,K|] \}}|dk(yw)rBNrt)r'rcounts rr)zChecker.DICT..sA,%5A:As)rrrwCounterrr|rUrrrrMultiValueRepeatedKeyVariabler7MultiValueRepeatedKeyLiteralr) rir rSr key_countsrduplicate_keysrQi_key key_indicesr key_indexkey_nodes ` rDICTz Checker.DICTsS .2YY &) S !  !((. ","2"2"4 Cqy   " C-6t_ME 1MKM (()()FA&,,.AA!, I#yy3H!#{3 H$J$J$,$'HH. $AA$  ( D!=  NsE E3 EEct|jtjr9|jjgk7r |j t j||j|yr) rtestr r+r-rrIfTuplerrs rIFz Checker.IF(sE dii + "0D KK(($ / D!r"ct|jtjr9|jjgk7r |j t j||j|yr) rrr r+r-rr AssertTuplerrs rASSERTzChecker.ASSERT/sE dii + "0D KK,,d 3 D!r"c|jrdnd}|j|}|j|ur|jD]}t ||}|j Dcgc]0}t |t jr|jd|k7r|2c}|_|j||||f|_ |j|dzdD]}|||< ||jj|<yycc}w)z5 Keep track of globals declarations. rBrN) rrrrrrrr message_argsrrr)rir global_scope_index global_scope node_name node_valuemrs rGLOBALzChecker.GLOBAL4s#'"2"2"4Q!'9:  ::\ )"ZZ B ' 48 $}}!4q("8"89NN1%2!4 '' :>$0"6 !__-?!-C-DE2E'1E)$2>B // :' B *!4s5C,cz|jt5|j|dddy#1swYyxYwr)rr(rrs r GENERATOREXPzChecker.GENERATOREXPVs1 ]]> * &    % & & &s1:cXt|jtjr|j ||j ||j dk(rRt|jtr7t|jtjrd|j_ yyyyt|jtjr|j|yt|jtjr|j|yt!d|j)zV Handle occurrence of Name (which can be a load/store/delete access.) localsTz#Got impossible expression context: N)rrr Loadrrr4rrrrrStorerDelrrrs rNAMEz Checker.NAME\s dhh )   dnnT&: ;8# 4::}(Mt44chh?(, %@)N##)) ,   & #'' *  ! !$ '!DTXXLQR Rr"c|}t|dr|j|}}t|tjtj tj fr||jvryt|tjtjfrn t|drt|tjr!|jtj|y|jtj|yr)r8rrr rForAsyncForr rSClassDefContinuerrContinueOutsideLoopBreakOutsideLoop)rir rn_childs rCONTINUEzChecker.CONTINUEos a+,++QwA!cii#,,?@!((*!coos||<=a+, dCLL ) KK44d ; KK114 8r"ct|jttfr!|j t j |y|j|j|yr) rrrr*rrReturnOutsideFunctionrrrs rRETURNzChecker.RETURNs> djj:{"; < KK66 =   D)r"ct|jttfr!|j t j |y|j|j|yr) rrrr*rrYieldOutsideFunctionrrrs rYIELDz Checker.YIELDs> djj:{"; < KK55t <   D)r"cjD]}j|j5jdddj t j jrBjs1tjtsjfdyyyy#1swY~xYw)Nc&jSrr,r risrrHz%Checker.FUNCTIONDEF..st':':4'@r") rVr_type_param_scopeLAMBDArrr7r~rrrrr)rir decos`` r FUNCTIONDEFzChecker.FUNCTIONDEFs'' (D OOD$ ' ( # #D )  KK   0DAB   $$&tzz=9   @ A:'    s CCcHg}g}jjD]8}|j|j|j|j:jjjj zD]8}|j|j|j|j:jj jjz}ttj }dD]T}tj|}|s|j|j|s:|j|jV|r|jjtt|t|kr.runFunctions=}- ##E$   s4=)rb posonlyargsrrGr8 kwonlyargsdefaults kw_defaultsrr LambdarwrrCrr|rrDuplicateArgumentr>rr) rir rb annotationsrGrhas_annotationsarg_namewildcardidxr8defaultrs `` rrzChecker.LAMBDAs 99(( /C KK   s~~ . /99>>DII$8$88 /C KK   s~~ . /99%% (=(==(szz::+ 8Htyy(3H KK %""8#6#67  8    t|| , s4y>CI %'o G c$t*$KK : :D#F G& 4J  ! !*d 3 4  +G OOGT * +  ;'r"c*|j|dy)N)rrr)rrs r ARGUMENTSzChecker.ARGUMENTSs D'BCr"c n|j|t|j|j|yr)rrrGrrs rARGz Checker.ARGs& htxx1B1B41HIJr"cjD]}j|j5jD]}j|jD]}j|j t 5jr?js/tjtsjfdjD]}j| ddddddjtj y#1swY8xYw#1swY.st/B/B4/Hr"N)rVrrbasesrdrrr~rrrrrr rrr7)rir rbaseNode keywordNodestmts`` rCLASSDEFzChecker.CLASSDEFs  '' (D OOD$ ' ( # #D ) 0 JJ 0$/ 0#}} 3  T2 3z* 0$$ ,,.&tzz=A&&'HI II0DOOD$/0 0 0 odii>? 0 0 0 0s%AEA/D:E:E ?EEc|j|j||j|j||j|j|yr)rtargetrrrs r AUGASSIGNzChecker.AUGASSIGNs: DKK.  D)  T*r"ct|jtjrd}d}t |j D]H\}}t|tj s!|r"|jtj|nd}|}J|dk\st|j |z dz dk\r |jtj||j|y)NFrTrBi) rrr rr|r-rZrrTwoStarredExpressionsrC%TooManyExpressionsInStarredAssignmentr)rir has_starredstar_locrQrs rTUPLEz Checker.TUPLEs dhh * KH!$)), !1a-" H$B$BDI"&K H !6!S^h%>%Bg%M HJJDQ D!r"c|jD]v}d|jvr#|jst|j|}n1|jxs |j}t |||j}|j ||xyr)rr7asnamerrr)rir alias importationr7s rIMPORTzChecker.IMPORTsiZZ /Eejj 25::tD ||1uzz)$ejjA OOD+ .  /r"c|jdk(r-|js(|jtj|nd|_d|j z|jxsdz}|j D]U}|jxs |j}|jdk(rut|||j}|jtjvr+|jtj||j|jdk(rd|_n|jdk(r{t|jt s"|jtj"||d|j_|jtj&||t)||}nt+||||j}|j-||Xy)NrFrrLrTr)rrrrLateFutureImportlevelrrr7rrrall_feature_namesFutureFeatureNotDefinedrrr*ImportStarNotPermittedr ImportStarUsedrrr)rir rrr7rs r IMPORTFROMzChecker.IMPORTFROMs_ ;;, &&& H55t<"'D  "t{{'8b9ZZ /E<<-5::D{{l*/dDJJG ::Z%A%AAKK @ @ $ejj2::.48D1s"!$**k:KK ? ? $f.+/ ( H33T6B-fd; -dD.4ejjB OOD+ .+ /r"cg}t|jD]\}}t|jtj r6|jj D]}|jt|n0|jr$|jt|j|j|t|jdz ks|jtj||jj||jD]}|j|||jj!|j#|dy)NrBr r)r|rrrr r+r-rrrCrrDefaultExceptNotLastrr rrr)rir handler_namesrQrexc_typers rTRYz Checker.TRY8s #DMM2 DJAw',, 2 ' 1 1@H!((X)>?@$$[%>?||#C ,>,B(B H997C D ""=1YY )E OOE4 ( ) ! Dv.r"cV|j|j|y|j|jvr|j| |jj |j}|j||j| |jj |j}|j s,|jtj||j |r||j|j<yy#t $rd}YwxYw#t $rY9wxYwr) r7rrrrrrrrr)rir prev_definitionr!s r EXCEPTHANDLERzChecker.EXCEPTHANDLERNs 99     %  99 "   & #"jjnnTYY7O T" D! FjjnnTYY/G<< H33T499E $3DJJtyy ! 1 #"O #"   s$ %D %D DD D('D(c@|j|j||jrZt|jd|jr|j|j|n|j |j||j |j |y)N TypeAlias)r>r8rrJrrr rs r ANNASSIGNzChecker.ANNASSIGN{si doot4 ::$//;H%%djj$7 D1  T*r"cR|j}t|j|jD]g\}}t |t j t jfr6t|s t|r |jtj||}i|j|yr) rzipops comparatorsrr IsIsNotr1rr IsLiteralr)rir rrrs rCOMPAREzChecker.COMPAREsyyTXXt'7'78 IBrCFFCII#67/5/6 H..5D  D!r"cH|j||j|yr)rrrs r _match_targetzChecker._match_targets T" D!r"c#Ktj5}tjdk\rG|j |j t |jD]}|j||ddddy#1swYyxYww)N)r ) contextlib ExitStackrr enter_contextrr&rr)rir rparams rrzChecker._type_param_scopess  ! ! # s7*!!$-- ":;!--1EOOE401     sB AA?6 B ?BB c^|j||j|j|yr)rr:rwrs rTYPEVARzChecker.TYPEVARs$ T" ..tzz4@r"c|j|j||j|5|j|j|dddy#1swYyxYwr)rr7rr:rrs r TYPEALIASzChecker.TYPEALIASsO  4(  # #D ) E  2 24::t D E E Es AAr)rprqrrrsr Moduler*rrrSrrTrListCompr(SetComp GeneratorExpDictComprrrrYr[r r builtin_varsr}_MAGIC_GLOBALSr|rrr_customBuiltInsupdaterrrrrrrsetterrrr9contextmanagerrrrrrrrrrrrrrrrr]r`rrrrrrdoctest DocTestParser get_examplesrr,rnr5r:rjr>r@DELETEFORASYNCFORWHILEWITHWITHITEM ASYNCWITHEXPRASSIGNPASSBOOLOPUNARYOPSET ATTRIBUTESTARRED NAMECONSTANT NAMEDEXPRrHrsrrrrSLICEEXTSLICEINDEXLOADSTOREDELAUGLOADAUGSTOREPARAMANDORADDSUBMULTDIVMODPOWLSHIFTRSHIFTBITORBITXORBITANDFLOORDIVINVERTNOTUADDUSUBEQNOTEQLTLTEGTGTEISISNOTINNOTINMATMULTr COMPREHENSIONKEYWORDFORMATTEDVALUErrr INTERPOLATIONrrIFEXPrrNONLOCALrLISTCOMPDICTCOMPSETCOMPrrBREAKrrAWAIT YIELDFROMrASYNCFUNCTIONDEFrrrr r rLISTrr!r&TRYSTARr)r,r4MATCH MATCH_CASE MATCHCLASSMATCHOR MATCHSEQUENCEMATCHSINGLETON MATCHVALUEr6MATCHAS MATCHMAPPING MATCHSTARrr> PARAMSPEC TYPEVARTUPLEr@rtr"rrprpsj< K j  m M n ^ . n OI F$))N< &&~6Hjjnn%89O--c23&./2::=2B K,>++00 11 $$6%6 ##::DKLK , N 9/v& R>&@11.A..& ''F'S'8'e'd'X' ' v D##F#W#s#Y##<$*LqfQ&fhT" # .-E-Hu7==M=GnK $ $#M""H" E" B@H&%10H0x'S&9$ E**EI B#+(ZDK@4+ ". D//@/(G+4Z + "AONENJNNg "00NZ"*76G6lYA /.I Er"rp)Rrsrrr rwr9rLrgrrer<rrpyflakesrr8PYPYr1rF Formatterr rbrrrrr!r.r%r1r8compilerFrIrJrKrL frozensetrr>r_r rar~rrrrrrrrrrrrrrrrrrrrrrr&r(r*r.r0rGrr>rDrJrNrWrYrjrnrprtr"rrs   s'(8} &f&&(..+WWcll # F:O,RZZ + 2::m $rzz./ BJJx 12 =!@4&!%LN."PII@    j   &%!*%!P");")J