grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026§ º•·Õ¥5`ãóЗdZddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZddlZgd¢Zd„ZGd„d¦«Ze¦«ZGd„d ¦«ZGd „d e¦«ZGd „d e¦«ZGd„d¦«ZedkrÝddlZddlZeejd¦«5Ze  ¦«Z!ddd¦«n #1swxYwYee!ej" #ejd¦«dd¦«Z$e$ %¦«D]JZ&e$ 'e&¦«Z(e)e(e( *¦«e( +¦«¦«ŒIdSdS)z2Interface to the compiler's internal symbol tableséN)ÚUSEÚ DEF_GLOBALÚ DEF_NONLOCALÚ DEF_LOCALÚ DEF_PARAMÚ DEF_IMPORTÚ DEF_BOUNDÚ DEF_ANNOTÚ SCOPE_OFFÚ SCOPE_MASKÚFREEÚLOCALÚGLOBAL_IMPLICITÚGLOBAL_EXPLICITÚCELL)ÚsymtableÚ SymbolTableÚClassÚFunctionÚSymbolcóN—tj|||¦«}t||¦«S)z« Return the toplevel *SymbolTable* for the source code. *filename* is the name of the file with the code and *compile_type* is the *compile()* mode argument. )Ú _symtablerÚ_newSymbolTable)ÚcodeÚfilenameÚ compile_typeÚtops ú//opt/alt/python311/lib64/python3.11/symtable.pyrr s(€õ Ô ˜T 8¨\Ñ :Ô :€CÝ ˜3 Ñ )Ô )Ð)ócó —eZdZd„Zd„Zd„ZdS)ÚSymbolTableFactorycó6—tj¦«|_dS©N)ÚweakrefÚWeakValueDictionaryÚ_SymbolTableFactory__memo©Úselfs rÚ__init__zSymbolTableFactory.__init__s€ÝÔ1Ñ3Ô3ˆŒ ˆ ˆ rcó¶—|jtjkrt||¦«S|jtjkrt ||¦«St ||¦«Sr#)ÚtyperÚ TYPE_FUNCTIONrÚ TYPE_CLASSrr)r(Útablers rÚnewzSymbolTableFactory.newsR€Ø Œ:�Ô0Ò 0Ð 0ݘE 8Ñ,Ô,Ð ,Ø Œ:�Ô-Ò -Ð -ݘ Ñ)Ô)Ð )ݘ5 (Ñ+Ô+Ð+rcóˆ—||f}|j |d¦«}|€ | ||¦«x}|j|<|Sr#)r&Úgetr/)r(r.rÚkeyÚobjs rÚ__call__zSymbolTableFactory.__call__ sI€Ø�XˆoˆØŒk�oŠo˜c 4Ñ(Ô(ˆØ ˆ;Ø%)§X¢X¨e°XÑ%>Ô%>Ð >ˆC�$”+˜cÑ"؈ rN)Ú__name__Ú __module__Ú __qualname__r)r/r4©rrr!r!sA€€€€€ð4ð4ð4ð,ð,ð,ðððððrr!cób—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„ZdS)rcó0—||_||_i|_dSr#)Ú_tableÚ _filenameÚ_symbols)r(Ú raw_tablers rr)zSymbolTable.__init__,s€ØˆŒ Ø!ˆŒØˆŒ ˆ ˆ rcóè—|jtkrd}nd|jjz}|jjdkrd ||j¦«Sd ||jj|j¦«S)NÚz%s rz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)Ú __class__rr5r;ÚnameÚformatr<)r(Úkinds rÚ__repr__zSymbolTable.__repr__1sw€Ø Œ>�[Ò (Ð (؈DˆDà˜4œ>Ô2Ñ2ˆDà Œ;Ô ˜uÒ $Ð $Ø4×;Ò;¸DÀ$Ä.ÑQÔQÐ Qà4×;Ò;¸DØ<@¼KÔsT€ð Œ;Ô �yÔ4Ò 4Ð 4Ø�8Ø Œ;Ô �yÔ6Ò 6Ð 6Ø�:Ø Œ;Ô �yÔ3Ò 3Ð 3Ø�7ð 4Ð 3rcó—|jjS)z,Return an identifier for the table. )r;Úidr's rÚget_idzSymbolTable.get_idMs€ðŒ{Œ~Ðrcó—|jjS)zµReturn the table's name. This corresponds to the name of the class, function or 'top' if the table is for a class, function or global respectively. )r;rBr's rÚget_namezSymbolTable.get_nameRs€ðŒ{ÔÐrcó—|jjS)zPReturn the number of the first line in the block for the table. )r;Úlinenor's rÚ get_linenozSymbolTable.get_lineno[s€ðŒ{Ô!Ð!rcóP—t|jjtjk¦«S)zJReturn *True* if the locals in the table are optimizable. )Úboolr;r+rr,r's rÚ is_optimizedzSymbolTable.is_optimizedas€õ�D”KÔ$­ Ô(?Ò?Ñ@Ô@Ð@rcó4—t|jj¦«S)zAReturn *True* if the block is a nested class or function.)rUr;Únestedr's rÚ is_nestedzSymbolTable.is_nestedgs€õ�D”KÔ&Ñ'Ô'Ð'rcó4—t|jj¦«S)z:Return *True* if the block has nested namespaces. )rUr;Úchildrenr's rÚ has_childrenzSymbolTable.has_childrenls€õ�D”KÔ(Ñ)Ô)Ð)rcó>—|jj ¦«S)zKReturn a view object containing the names of symbols in the table. )r;ÚsymbolsÚkeysr's rÚget_identifierszSymbolTable.get_identifiersqs€ðŒ{Ô"×'Ò'Ñ)Ô)Ð)rcóæ—|j |¦«}|€T|jj|}| |¦«}|jjdk}t ||||¬¦«x}|j|<|S)zLLookup a *name* in the table. Returns a *Symbol* instance. Nr©Ú module_scope)r=r1r;r^Ú_SymbolTable__check_childrenrBr)r(rBÚsymÚflagsÚ namespacesrcs rÚlookupzSymbolTable.lookupvsƒ€ð Œm×Ò Ñ%Ô%ˆØ ˆ;Ø”KÔ'¨Ô-ˆEØ×.Ò.¨tÑ4Ô4ˆJØ œKÔ,°Ò5ˆLÝ(.¨t°U¸JØz+SymbolTable.get_symbols..ˆs%ø€ÐGÐGÐG u�— ’ ˜EÑ"Ô"ÐGÐGÐGr)r`r's`rÚ get_symbolszSymbolTable.get_symbols„s,ø€ðHÐGÐGÐG°×0DÒ0DÑ0FÔ0FÐGÑGÔGÐGrcó8‡‡—ˆˆfd„‰jjD¦«S)NcóP•—g|]"}|j‰k¯ t|‰j¦«‘Œ#Sr8)rBrr<)rkÚstrBr(s €€rrmz0SymbolTable.__check_children..‹s8ø€ð$ð$ð$ØØ”7˜d’?�?õ   D¤NÑ3Ô3à"�?�?r©r;r[)r(rBs``rÚ__check_childrenzSymbolTable.__check_childrenŠs9øø€ð$ð$ð$ð$ð$Øœ+Ô.ð$ñ$ô$ð $rcó4‡—ˆfd„‰jjD¦«S)z3Return a list of the nested symbol tables. có:•—g|]}t|‰j¦«‘ŒSr8)rr<)rkrqr(s €rrmz,SymbolTable.get_children..’s5ø€ð0ð0ð0Øõ   D¤NÑ3Ô3ð0ð0ð0rrrr's`rÚ get_childrenzSymbolTable.get_children�s3ø€ð0ð0ð0ð0Øœ+Ô.ð0ñ0ô0ð 0rN)r5r6r7r)rErKrNrPrSrVrYr\r`rhrnrdrvr8rrrr*s€€€ðððð Lð Lð Lð ?ð ?ð ?ðððð  ð ð ð"ð"ð"ð AðAðAð (ð(ð(ð *ð*ð*ð *ð*ð*ð ð ð ðHðHðHð $ð$ð$ð 0ð0ð0ð0ð0rrcóF—eZdZdZdZdZdZdZd„Zd„Z d„Z d„Z d„Z d„Z dS)rNcób‡‡—tˆˆfd„‰ ¦«D¦«¦«S)Nc3óR•K—|]!}‰‰jj|¦«¯|V—Œ"dSr#)r;r^)rkrlr(Ú test_funcs €€rú z-Function.__idents_matching.. sOøèè€ð?ð?˜uØ!˜  $¤+Ô"5°eÔ"<Ñ=Ô=ð?�Uð?ð?ð?ð?ð?ð?r)Útupler`)r(rzs``rÚ__idents_matchingzFunction.__idents_matchingŸsLøø€Ýð?ð?ð?ð?ð?¨×(<Ò(<Ñ(>Ô(>ð?ñ?ô?ñ?ô?ð ?rcóT—|j€| d„¦«|_|jS)z6Return a tuple of parameters to the function. Ncó—|tzSr#)r©Úxs rúz)Function.get_parameters..§s €¸AÅ ¹M€r)Ú_Function__paramsÚ_Function__idents_matchingr's rÚget_parameterszFunction.get_parameters£s-€ð Œ=Ð Ø ×2Ò2Ð3IÐ3IÑJÔJˆDŒMØŒ}Ðrcóz‡—|j€-ttfŠˆfd„}| |¦«|_|jS)z2Return a tuple of locals in the function. Ncó,•—|tz tz‰vSr#©r r )r�Úlocss €rr‚z%Function.get_locals..¯sø€˜q¥I™~µÑ;ÀÐD€r)Ú_Function__localsrrr„)r(Útestr‰s @rÚ get_localszFunction.get_localsªsAø€ð Œ=Ð Ý�4�=ˆDØDÐDÐDÐDˆDØ ×2Ò2°4Ñ8Ô8ˆDŒMØŒ}Ðrcóz‡—|j€-ttfŠˆfd„}| |¦«|_|jS)z3Return a tuple of globals in the function. Ncó,•—|tz tz‰vSr#rˆ)r�Úglobs €rr‚z&Function.get_globals..¸sø€˜a¥9™nµ Ñ:¸tÐC€r)Ú_Function__globalsrrr„)r(r‹r�s @rÚ get_globalszFunction.get_globals³sBø€ð Œ>Ð !Ý#¥_Ð5ˆDØCÐCÐCÐCˆDØ!×3Ò3°DÑ9Ô9ˆDŒNØŒ~ÐrcóT—|j€| d„¦«|_|jS)z5Return a tuple of nonlocals in the function. Ncó—|tzSr#)rr€s rr‚z(Function.get_nonlocals..Às €¸qÅ<Ñ?O€r)Ú_Function__nonlocalsr„r's rÚ get_nonlocalszFunction.get_nonlocals¼s0€ð Ô Ð #Ø#×5Ò5Ð6OÐ6OÑPÔPˆDÔ ØÔÐrcóX—|j€d„}| |¦«|_|jS)z:Return a tuple of free variables in the function. Ncó8—|tz tztkSr#)r r r r€s rr‚z$Function.get_frees..Çs€ ¥i¡µ:Ñ =Å$ÒF€r)Ú_Function__freesr„)r(Úis_frees rÚ get_freeszFunction.get_freesÃs1€ð Œ<Ð ØFÐFˆGØ×1Ò1°'Ñ:Ô:ˆDŒLØŒ|Ðr)r5r6r7rƒrŠr˜r�r”r„r…rŒr‘r•ršr8rrrr–s‰€€€€€ð€HØ€HØ€GØ€IØ€Kð?ð?ð?ðððððððððð ð ð ðððððrrcó—eZdZdZd„ZdS)rNcó|—|j€/i}|jjD] }d||j<Œ t |¦«|_|jS)z9Return a tuple of methods declared in the class. Né)Ú_Class__methodsr;r[rBr|)r(Údrqs rÚ get_methodszClass.get_methodsÐsG€ð Œ>Ð !؈AØ”kÔ*ð ð �Ø��"”'‘ � Ý" 1™XœXˆDŒNØŒ~Ðr)r5r6r7ržr r8rrrrÌs(€€€€€à€Iðððððrrcóv—eZdZdddœd„Zd„Zd„Zd„Zd„Zd „Zd „Z d „Z d „Z d „Z d„Z d„Zd„Zd„Zd„Zd„ZdS)rNFrbcóp—||_||_|tz tz|_|pd|_||_dS)Nr8)Ú _Symbol__nameÚ_Symbol__flagsr r Ú_Symbol__scopeÚ_Symbol__namespacesÚ_Symbol__module_scope)r(rBrfrgrcs rr)zSymbol.__init__Ýs<€ØˆŒ ؈Œ Ø¥Ñ*­jÑ8ˆŒ Ø&Ð,¨"ˆÔØ*ˆÔÐÐrcó6—d |j¦«S)Nz)rCr£r's rrEzSymbol.__repr__äs€Ø×&Ò& t¤{Ñ3Ô3Ð3rcó—|jS)z#Return a name of a symbol. )r£r's rrPzSymbol.get_nameçs €ðŒ{ÐrcóD—t|jtjz¦«S)zBReturn *True* if the symbol is used in its block. )rUr¤rrr's rÚ is_referencedzSymbol.is_referencedìs€õ�D”L¥9¤=Ñ0Ñ1Ô1Ð1rcó:—t|jtz¦«S)z4Return *True* if the symbol is a parameter. )rUr¤rr's rÚ is_parameterzSymbol.is_parameteròó€õ�D”L¥9Ñ,Ñ-Ô-Ð-rcór—t|jttfvp|jo|jt z¦«S)z/Return *True* if the symbol is global. )rUr¥rrr§r¤r r's rÚ is_globalzSymbol.is_global÷s?€õ�D”L¥_µoÐ$FÐFðJØÔ+ÐH°´ ½yÑ0HñKôKð Krcó:—t|jtz¦«S)z(Return *True* if the symbol is nonlocal.)rUr¤rr's rÚ is_nonlocalzSymbol.is_nonlocalýs€å�D”L¥<Ñ/Ñ0Ô0Ð0rcó<—t|jtk¦«S)zOReturn *True* if the symbol is declared global with a global statement.)rUr¥rr's rÚis_declared_globalzSymbol.is_declared_globals€õ�D”L¥OÒ3Ñ4Ô4Ð4rcór—t|jttfvp|jo|jt z¦«S)z.Return *True* if the symbol is local. )rUr¥rrr§r¤r r's rÚis_localzSymbol.is_locals>€õ�D”L¥U­D MÐ1ðJØÔ+ÐH°´ ½yÑ0HñKôKð Krcó:—t|jtz¦«S)z2Return *True* if the symbol is annotated. )rUr¤r r's rÚ is_annotatedzSymbol.is_annotated r®rcó<—t|jtk¦«S)zIReturn *True* if a referenced symbol is not assigned to. )rUr¥r r's rr™zSymbol.is_frees€õ�D”L¥DÒ(Ñ)Ô)Ð)rcó:—t|jtz¦«S)zQReturn *True* if the symbol is created from an import statement. )rUr¤rr's rÚ is_importedzSymbol.is_importeds€õ�D”L¥:Ñ-Ñ.Ô.Ð.rcó:—t|jtz¦«S)z)Return *True* if a symbol is assigned to.)rUr¤rr's rÚ is_assignedzSymbol.is_assigneds€å�D”L¥9Ñ,Ñ-Ô-Ð-rcó*—t|j¦«S)a‹Returns *True* if name binding introduces new namespace. If the name is used as the target of a function or class statement, this will be true. Note that a single name can be bound to multiple objects. If is_namespace() is true, the name may also be bound to other objects, like an int or list, that does not introduce a new namespace. )rUr¦r's rÚ is_namespacezSymbol.is_namespace!s€õ�DÔ%Ñ&Ô&Ð&rcó—|jS)z.Return a list of namespaces bound to this name)r¦r's rÚget_namespaceszSymbol.get_namespaces.s €àÔ Ð rcó¸—t|j¦«dkrtd¦«‚t|j¦«dkrtd¦«‚|jdS)z˜Return the single namespace bound to this name. Raises ValueError if the name is bound to multiple namespaces or no namespace. rz#name is not bound to any namespacesr�z$name is bound to multiple namespaces)Úlenr¦Ú ValueErrorr's rÚ get_namespacezSymbol.get_namespace2s\€õ ˆtÔ Ñ !Ô ! QÒ &Ð &ÝÐBÑCÔCÐ CÝ �Ô"Ñ #Ô # aÒ 'Ð 'ÝÐCÑDÔDÐ DàÔ$ QÔ'Ð 'rr#)r5r6r7r)rErPr«r­r°r²r´r¶r¸r™r»r½r¿rÁrÅr8rrrrÛs€€€€€ð+ÀUð+ð+ð+ð+ð+ð4ð4ð4ðððð 2ð2ð2ð .ð.ð.ð KðKðKð 1ð1ð1ð5ð5ð5ð KðKðKð .ð.ð.ð *ð*ð*ð /ð/ð/ð .ð.ð.ð 'ð 'ð 'ð!ð!ð!ð (ð (ð (ð (ð (rrÚ__main__r�Úexec),Ú__doc__rrrrrrrr r r r r rrrrr$Ú__all__rr!rrrrrr5ÚosÚsysÚopenÚargvÚfÚreadÚsrcÚpathÚsplitÚmodr`rlrhÚinfoÚprintr¶r¿r8rrúrÖsýðØ8Ð8àÐÐÐð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð4ð€€€à DÐ DÐ D€ð*ð*ð*ðððððñôðð$%Ð$Ñ&Ô&€ði0ði0ði0ði0ði0ñi0ôi0ði0ðX3ð3ð3ð3ð3ˆ{ñ3ô3ð3ðl ð ð ð ð ˆKñ ô ð ðb(ðb(ðb(ðb(ðb(ñb(ôb(ðb(ðH ˆzÒÐØ€N€N€N€N€N€N€NØ ˆˆcŒh�qŒkÑ Ô ð˜aØ�fŠf‰hŒhˆðððñôððððððøøøððððà ˆ(�3˜œŸ š  c¤h¨q¤kÑ2Ô2°1Ô5°vÑ >Ô >€CØ×$Ò$Ñ&Ô&ð:ð:ˆØ�zŠz˜%Ñ Ô ˆØ ˆˆd�D—M’M‘O”O T×%6Ò%6Ñ%8Ô%8Ñ9Ô9Ð9Ð9ðÐð :ð:sÂ%CÃC à C