§ |<ˆjæãóŠ—dZddlmZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z ddlmZerdd l mZejd krdd lmZndd lmZGd „de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„deee¦«ZGd„de¦«ZGd„de¦«ZdS)zThis module contains some base nodes that can be inherited for the different nodes. Previously these were called Mixin nodes. é)Ú annotationsN)ÚIterator)Ú TYPE_CHECKINGÚClassVar)Ú decorators)ÚAttributeInferenceError)ÚNodeNG)Únodes)éé)Úcached_property)Úcachedpropertycó$—eZdZdZdZ d„Zd„ZdS)Ú StatementzpStatement node adding a few attributes. NOTE: This class is part of the public API of 'astroid.nodes'. Tcóš—|j |¦«}| |¦«} ||dzS#t$rYdSwxYw)z|The next sibling statement node. :returns: The next sibling statement node. :rtype: NodeNG or None éN)ÚparentÚchild_sequenceÚindexÚ IndexError©ÚselfÚstmtsrs úk/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/astroid/nodes/_base_nodes.pyÚ next_siblingzStatement.next_sibling's`€ð ” ×*Ò*¨4Ñ0Ô0ˆØ— ’ ˜DÑ!Ô!ˆð ؘ ™Ô#Ð #øÝð ð ð Ø�4�4ð øøøs± <¼ A Á A có†—|j |¦«}| |¦«}|dkr ||dz SdS)zThe previous sibling statement. :returns: The previous sibling statement node. :rtype: NodeNG or None rN)rrrrs rÚprevious_siblingzStatement.previous_sibling4sG€ð ” ×*Ò*¨4Ñ0Ô0ˆØ— ’ ˜DÑ!Ô!ˆØ �AŠ:ˆ:ؘ ™Ô#Ð #؈tóN)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú is_statementrr©rrrrsF€€€€€ððð €LØ2ð ð ð ð ð ð ð ð rrcó—eZdZdZdd„ZdS)ÚNoChildrenNodez1Base nodes for nodes with no children, e.g. Pass.ÚreturnúIterator[NodeNG]c#óK—dEd{V—†dS)Nr$r$©rs rÚ get_childrenzNoChildrenNode.get_childrenDsèè€Øˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ rN)r'r()rr r!r"r+r$rrr&r&As.€€€€€Ø;Ð;ððððððrr&có —eZdZdZdd„Zd„ZdS)ÚFilterStmtsBaseNodez6Base node for statement filtering and assignment type.ÚmystmtúStatement | NonecóD—| d¬¦«|ur|gdfS|dfS)zAMethod used in _filter_stmts to get statements and trigger break.T©ÚfutureF©Ú statement)rÚ_ÚnodeÚ_stmtsr.s rÚ_get_filtered_stmtsz'FilterStmtsBaseNode._get_filtered_stmtsKs3€à �>Š> ˆ>Ñ &Ô &¨&Ð 0Ð 0ð�6˜4�<Ð Ø�uˆ}Ðrcó—|S©Nr$r*s rÚ assign_typezFilterStmtsBaseNode.assign_typeSó€Øˆ rN©r.r/)rr r!r"r8r;r$rrr-r-Hs=€€€€€Ø@Ð@ðððððððððrr-có —eZdZdZd„Zdd„ZdS)ÚAssignTypeNodez8Base node for nodes that can 'assign' such as AnnAssign.có—|Sr:r$r*s rr;zAssignTypeNode.assign_typeZr<rr.r/cóT—||ur|dfS| d¬¦«|ur|gdfS|dfS)zMethod used in filter_stmts.Tr1Fr3)rÚ lookup_noder6r7r.s rr8z"AssignTypeNode._get_filtered_stmts]sF€à �6ˆ>ˆ>ؘ4�<Ð Ø �>Š> ˆ>Ñ &Ô &¨&Ð 0Ð 0ð�6˜4�<Ð Ø�uˆ}ÐrNr=)rr r!r"r;r8r$rrr?r?Ws=€€€€€ØBÐBðððððððððrr?có—eZdZdZd„ZdS)ÚParentAssignNodezGBase node for nodes whose assign_type is determined by the parent node.có4—|j ¦«Sr:)rr;r*s rr;zParentAssignNode.assign_typeks€ØŒ{×&Ò&Ñ(Ô(Ð(rN)rr r!r"r;r$rrrDrDhs)€€€€€ØQÐQð)ð)ð)ð)ð)rrDcóD—eZdZUdZded< ded< d„Zddd „Zdd „ZdS)Ú ImportNodez$Base node for From and Import Nodes.ú str | NoneÚmodnamezlist[tuple[str, str | None]]Únamescó—|Sr:r$)rÚframeÚnames rÚ _infer_namezImportNode._infer_namer<rNr'ú nodes.Modulecóþ—| ¦«}t|dd¦«}|€|j}| ||¦«|jkrd}nd}| ||t |o|dk¦«|¬¦«S)zGReturn the ast for a module whose name is imported by .ÚlevelNFTr)rQÚ relative_onlyÚ use_cache)ÚrootÚgetattrrIÚrelative_to_absolute_namerMÚ import_moduleÚbool)rrIÚmymodulerQrSs rÚdo_import_modulezImportNode.do_import_module‚s“€à—9’9‘;”;ˆÝ# D¨'°4Ñ8Ô8ˆØ ˆ?Ø”lˆGð × -Ò -¨g°uÑ =Ô =ÀÄÒ NÐ N؈IˆIàˆIð×%Ò%Ø ØÝ˜uÐ3¨°!ªÑ4Ô4Øð &ñ ô ð rÚasnameÚstrcó¨—|jD]9\}}|dkr|cS|s| dd¦«d}|}||kr|cSŒ:td||¬¦«‚)zGet name from 'as' name.Ú*ú.rrz:Could not find original name for {attribute} in {target!r})ÚtargetÚ attribute)rJÚsplitr)rr[rMÚ_asnames rÚ real_namezImportNode.real_name™s‡€à!œZð ð ‰MˆD�'Ø�sŠ{ˆ{Ø� � � Øð Ø—z’z # qÑ)Ô)¨!Ô,�Ø�Ø˜Ò Ð Ø� � � ð!å%Ø HØØð ñ ô ð rr:)rIrHr'rO)r[r\r'r\)rr r!r"Ú__annotations__rNrZrdr$rrrGrGos|€€€€€€Ø.Ð.àÐÐÑðð (Ð'Ð'Ñ'ðð ððð ð ð ð ð ð. ð ð ð ð ð rrGcód—eZdZUdZdZded<ed„¦«Zd„Zd„Z e j d„¦«Z d S) ÚMultiLineBlockNodea(Base node for multi-line blocks, e.g. For and FunctionDef. Note that this does not apply to every node with a `body` field. For instance, an If node has a multi-line body, but the body of an IfExpr is not multi-line, and hence cannot contain Return nodes, Assign nodes, etc. r$zClassVar[tuple[str, ...]]Ú_multi_line_block_fieldscóD‡—tˆfd„‰jD¦«¦«S)Nc3ó8•K—|]}t‰|¦«V—ŒdSr:)rU)Ú.0Úfieldrs €rú z8MultiLineBlockNode._multi_line_blocks..·s-øèè€ÐUÐU¨e•W˜T 5Ñ)Ô)ÐUÐUÐUÐUÐUÐUr)Útuplerhr*s`rÚ_multi_line_blocksz%MultiLineBlockNode._multi_line_blocksµs)ø€åÐUÐUÐUÐU°tÔ7TÐUÑUÔUÑUÔUÐUrc#ólK—|jD])}|D]$}|jrŒ | ¦«Ed{V—†Œ%Œ*dSr:)roÚ is_functionÚ _get_return_nodes_skip_functions©rÚblockÚ child_nodes rrrz3MultiLineBlockNode._get_return_nodes_skip_functions¹srèè€ØÔ,ð Ið IˆEØ#ð Ið I� ØÔ)ðØØ%×FÒFÑHÔHÐHÐHÐHÐHÐHÐHÐHÐHð Ið Ið Irc#ólK—|jD])}|D]$}|jrŒ | ¦«Ed{V—†Œ%Œ*dSr:)roÚ is_lambdaÚ_get_yield_nodes_skip_lambdasrss rrxz0MultiLineBlockNode._get_yield_nodes_skip_lambdasÀsrèè€ØÔ,ð Fð FˆEØ#ð Fð F� ØÔ'ðØØ%×CÒCÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEð Fð Fð Frcó|—d„|jD¦«}ttj |¦«¦«S)Nc3óHK—|]}|D]}| ¦«V—ŒŒdSr:)Ú_get_assign_nodes)rkrtrus rrmz7MultiLineBlockNode._get_assign_nodes..ÉsYèè€ð! ð! àØ#ð! ð! ðð × (Ò (Ñ *Ô *ð! ð! ð! ð! ð! ð! ð! r)roÚlistÚ itertoolsÚchainÚ from_iterable)rÚchildren_assign_nodess rr{z$MultiLineBlockNode._get_assign_nodesÇsE€ð! ð! àÔ0ð! ñ! ô! Ðõ •I”O×1Ò1Ð2GÑHÔHÑIÔIÐIrN) rr r!r"rhrer rorrrxrÚcachedr{r$rrrgrgªs˜€€€€€€ððð;=ÐÐ<Ð<Ð<Ñ<àðVðVñ„_ðVðIðIðIðFðFðFðÔðJðJñÔðJðJðJrrgcó0—eZdZdZed„¦«Zdd„ZdS)ÚMultiLineWithElseBlockNodez>Base node for multi-line blocks that can have else statements.có—|jSr:)Úlinenor*s rÚblockstart_tolinenoz.MultiLineWithElseBlockNode.blockstart_tolinenoÔs €àŒ{ÐrNcóž—||jkr||fS|r2||djkr||djfS||djdz fS||p|jfS)z_Handle block line numbers range for try/finally, for, if and while statements. réÿÿÿÿr)Ú fromlinenoÚtolineno)rr…ÚorelseÚlasts rÚ_elsed_block_rangez-MultiLineWithElseBlockNode._elsed_block_rangeØsp€ð �T”_Ò $Ð $ؘ6�>Ð !Ø ð 4ؘ œÔ-Ò-Ð-ؘv bœzÔ2Ð2Ð2ؘ6 !œ9Ô/°!Ñ3Ð3Ð 3Ø�tÐ,˜tœ}Ð,Ð,rr:)rr r!r"r r†r�r$rrrƒrƒÑsG€€€€€ØHÐHàððñ„_ðð -ð -ð -ð -ð -ð -rrƒ)r"Ú __future__rr}ÚsysÚcollections.abcrÚtypingrrÚastroidrÚastroid.exceptionsrÚastroid.nodes.node_ngr r Ú version_infoÚ functoolsr Úastroid.decoratorsrrr&r-r?rDrGrgrƒr$rrúr˜sRðð ðð #Ð"Ð"Ð"Ð"Ð"àÐÐÐØ € € € Ø$Ð$Ð$Ð$Ð$Ð$Ø*Ð*Ð*Ð*Ð*Ð*Ð*Ð*àÐÐÐÐÐØ6Ð6Ð6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(Ð(àðØÐÐÐÐÐàÔ�vÒÐØ)Ð)Ð)Ð)Ð)Ð)Ð)àDÐDÐDÐDÐDÐDð ð ð ð ð �ñ ô ð ðFðððð�Vñôðð ð ð ð ð ˜&ñ ô ð ððððð�Vñôðð")ð)ð)ð)ð)�~ñ)ô)ð)ð8 ð8 ð8 ð8 ð8 Ð$ n°iñ8 ô8 ð8 ðv$Jð$Jð$Jð$Jð$J˜ñ$Jô$Jð$JðN-ð-ð-ð-ð-Ð!3ñ-ô-ð-ð-ð-r