/opt/alt/python311/lib64/python3.11/lib2to3/__pycache__
Edit: /opt/alt/python311/lib64/python3.11/lib2to3/__pycache__/fixer_util.cpython-311.opt-1.pyc (22381B)
§
iÐdªD=./ã ó” — d Z ddlmZ ddlmZmZ ddlmZ ddl m
Z
d„ Zd„ Zd„ Z
d „ Zd-d„Zd„ Zd
„ Zd„ Z e¦ « e
¦ « fd„Zd.d„Zd„ Zd„ Zd-d„Zd„ Zd-d„Zd-d„Zd„ Zd„ Zd„ Zd„ Zd„ Zh d£Z d„ Z!da"da#d a$d!a%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-ej. ej/ hZ0d-d*„Z1ej/ ej. ej2 hZ3d+„ Z4d-d,„Z5d
S )/z1Utility functions, node construction macros, etc.é )Útoken)ÚLeafÚNode)Úpython_symbols)Úpatcompc ól — t t j | t t j d¦ « |g¦ « S )Nú=)r ÚsymsÚargumentr r ÚEQUAL)ÚkeywordÚvalues ú9/opt/alt/python311/lib64/python3.11/lib2to3/fixer_util.pyÚ
KeywordArgr s. € Ý•”
Ø�$�uœ{¨CÑ0Ô0°%Ð8ñ:ô :ð :ó c ó6 — t t j d¦ « S )Nú()r r ÚLPAR© r r ÚLParenr ó € Ý•”
˜CÑ Ô Ð r c ó6 — t t j d¦ « S )Nú))r r ÚRPARr r r ÚRParenr r r c óæ — t | t ¦ « s| g} t |t ¦ « s
d|_ |g}t t j | t
t j dd¬¦ « gz |z ¦ « S )zBuild an assignment statementú r ©Úprefix) Ú
isinstanceÚlistr r r
Úatomr r r )ÚtargetÚsources r ÚAssignr% su € å�f�dÑ#Ô#ð Ø�ˆÝ�f�dÑ#Ô#ð ØˆŒ
Ø�ˆå•” Ø�$�uœ{¨C¸Ð<Ñ<Ô<Ð=Ñ=ÀÑFñHô Hð Hr Nc ó: — t t j | |¬¦ « S )zReturn a NAME leafr )r r ÚNAME)Únamer s r ÚNamer) $ s € å•”
˜D¨Ð0Ñ0Ô0Ð0r c óV — | t t j t ¦ « |g¦ « gS )zA node tuple for obj.attr)r r
ÚtrailerÚDot)ÚobjÚattrs r ÚAttrr/ ( s! € à••d”l¥S¡U¤U¨D MÑ2Ô2Ð3Ð3r c ó6 — t t j d¦ « S )zA comma leafú,)r r ÚCOMMAr r r ÚCommar3 , s € å•”˜SÑ!Ô!Ð!r c ó6 — t t j d¦ « S )zA period (.) leafú.)r r ÚDOTr r r r, r, 0 s € å•” ˜3ÑÔÐr c óæ — t t j | ¦ « | ¦ « g¦ « }| r.| dt t j | ¦ « ¦ « |S )z-A parenthesised argument list, used by Call()r )r r
r+ ÚcloneÚinsert_childÚarglist)ÚargsÚlparenÚrparenÚnodes r ÚArgListr? 4 sW € å•”˜vŸ|š|™~œ~¨v¯|ª|©~¬~Ð>Ñ?Ô?€DØð 7Ø×Ò˜!�T¥$¤,°Ñ5Ô5Ñ6Ô6Ð6Ø€Kr c ój — t t j | t |¦ « g¦ « }|�||_ |S )zA function call)r r
Úpowerr? r )Ú func_namer; r r> s r ÚCallrC ; s0 € å•”
˜Y°©
¬
Ð6Ñ7Ô7€DØ
ÐØˆŒØ€Kr c ó6 — t t j d¦ « S )zA newline literalú
©r r ÚNEWLINEr r r ÚNewlinerH B s € å•”
˜tÑ$Ô$Ð$r c ó6 — t t j d¦ « S )zA blank lineÚ rF r r r Ú BlankLinerK F s € å•”
˜rÑ"Ô"Ð"r c ó: — t t j | |¬¦ « S )Nr )r r ÚNUMBER)Únr s r ÚNumberrO J s € Ý•”˜a¨Ð/Ñ/Ô/Ð/r c óœ — t t j t t j d¦ « | t t j d¦ « g¦ « S )zA numeric or string subscriptú[ú])r r
r+ r r ÚLBRACEÚRBRACE)Ú
index_nodes r Ú SubscriptrV M s= € å•”�t¥E¤L°#Ñ6Ô6Ø)Ý#¥E¤L°#Ñ6Ô6ð8ñ 9ô 9ð 9r c ó: — t t j | |¬¦ « S )z
A string leafr )r r ÚSTRING)Ústringr s r ÚStringrZ S s € å•”˜f¨VÐ4Ñ4Ô4Ð4r c óp — d| _ d|_ d|_ t t j d¦ « }d|_ t t j d¦ « }d|_ ||||g}|rWd|_ t t j d¦ « }d|_ | t t j ||g¦ « ¦ « t t j | t t j |¦ « g¦ « }t t j
t t j d¦ « |t t j d¦ « g¦ « S )zuA list comprehension of the form [xp for fp in it if test].
If test is None, the "if test" part is omitted.
rJ r ÚforÚinÚifrQ rR )
r r r r' Úappendr r
Úcomp_ifÚ listmakerÚcomp_forr" rS rT ) ÚxpÚfpÚitÚtestÚfor_leafÚin_leafÚ
inner_argsÚif_leafÚinners r ÚListComprl W s € ð
€B„IØ€B„IØ€B„IÝ•E”J Ñ&Ô&€HØ€H„OÝ•5”:˜tÑ$Ô$€GØ€G„NؘB ¨Ð,€JØð ?؈ŒÝ•u”z 4Ñ(Ô(ˆØˆŒØ×Ò�$�tœ|¨g°t¨_Ñ=Ô=Ñ>Ô>Ð>Ý•” "¥d4¬=¸*Ñ&EÔ&EÐ!FÑGÔG€EÝ•” Ý�Uœ\¨3Ñ/Ô/ØÝ�Uœ\¨3Ñ/Ô/ð1ñ2ô 2ð 2r c ó@ — |D ]}| ¦ « Œt t j d¦ « t t j | d¬¦ « t t j dd¬¦ « t t
j |¦ « g}t t
j |¦ « }|S )zO Return an import statement in the form:
from package import name_leafsÚfromr r Úimport)Úremover r r' r r
Úimport_as_namesÚimport_from)Úpackage_nameÚ
name_leafsÚleafÚchildrenÚimps r Ú
FromImportrx o s‰ € ð ð ð ˆà�Љ
Œ
ˆ
ˆ
å•U”Z Ñ(Ô(Ý•U”Z °cÐ:Ñ:Ô:Ý•U”Z °#Ð6Ñ6Ô6Ý•TÔ)¨:Ñ6Ô6ð8€Hõ �tÔ Ñ
*Ô
*€CØ€Jr c ól — |d ¦ « }|j t j k r| ¦ « }n-t t j | ¦ « g¦ « }|d }|rd„ |D ¦ « }t t j t
t |d ¦ « t |d ¦ « ¦ « t t j |d ¦ « ||d ¦ « g¦ « gz |z ¦ « }| j |_ |S )zfReturns an import statement and calls a method
of the module:
import module
module.name()r- Úafterc ó6 — g | ]}| ¦ « ‘ŒS r )r8 )Ú.0rN s r ú
z!ImportAndCall..� s € Ð*Ð*Ð*˜q�—’‘”Ð*Ð*Ð*r é r ÚlparÚrpar)
r8 Útyper
r: r rA r/ r) r+ r )r> ÚresultsÚnamesr- Ú
newarglistrz Únews r Ú
ImportAndCallr† ‚ s € ð �%Œ.×
Ò
Ñ
Ô
€CØ
„x•4”<ÒÐØ—Y’Y‘[”[ˆ
ˆ
å�$œ,¨¯ª©¬¨
Ñ6Ô6ˆ
Ø�GÔ€EØð +Ø*Ð* EÐ*Ñ*Ô*ˆÝ
�tŒzÝ•D˜˜qœ‘N”N¥D¨¨q¬¡N¤NÑ3Ô3Ý•T”\ؘf”o×+Ò+Ñ-Ô-Ø Ø˜f”o×+Ò+Ñ-Ô-ð/ñ0ô 0ð 1ñ1ð 49ñ 9ñ:ô :€C𠔀C„JØ€Jr c óì — t | t ¦ « r'| j t ¦ « t ¦ « gk rdS t | t ¦ « o£t | j ¦ « dk o‹t | j d t ¦ « okt | j d t ¦ « oKt | j d t ¦ « o+| j d j dk o| j d j dk S )z(Does the node represent a tuple literal?Té r~ r é r r )r r rv r r Úlenr r ©r> s r Úis_tuplerŒ ž sÜ € å�$�ÑÔð $¤-µF±H´H½f¹h¼hÐ3GÒ"GÐ"G؈tÝ�t�TÑ"Ô"ð
.Ý�D”MÑ"Ô" aÒ'ð
.å˜4œ=¨Ô+TÑ2Ô2ð
.õ ˜4œ=¨Ô+TÑ2Ô2ð
.õ ˜4œ=¨Ô+TÑ2Ô2ð
.ð
”
˜aÔ Ô&¨#Ò-ð
.ð ”
˜aÔ Ô&¨#Ò-ð
/r c ó4 — t | t ¦ « oƒt | j ¦ « dk okt | j d t ¦ « oKt | j d t ¦ « o+| j d j dk o| j d j dk S )z'Does the node represent a list literal?r r~ éÿÿÿÿrQ rR )r r rŠ rv r r r‹ s r Úis_listr� ª s‘ € å�t�TÑ"Ô"ð
/Ý�D”MÑ"Ô" QÒ&ð
/å˜4œ=¨Ô+TÑ2Ô2ð
/õ ˜4œ=¨Ô,dÑ3Ô3ð
/ð ”
˜aÔ Ô&¨#Ò-ð
/ð
”
˜bÔ!Ô'¨3Ò.ð0r c ól — t t j t ¦ « | t ¦ « g¦ « S ©N)r r
r" r r r‹ s r Úparenthesizer’ ¸ s# € Ý•” �F™HœH dF©H¬HÐ5Ñ6Ô6Ð6r >
ÚallÚanyÚmaxÚminÚsetÚsumr! ÚtupleÚsortedÚ enumeratec # ó^ K — t | |¦ « }|r|V — t ||¦ « }|°dS dS )al Follow an attribute chain.
If you have a chain of objects where a.foo -> b, b.foo-> c, etc,
use this to iterate over all objects in the chain. Iteration is
terminated by getattr(x, attr) is None.
Args:
obj: the starting object
attr: the name of the chaining attribute
Yields:
Each successive object in the chain.
N)Úgetattr)r- r. Únexts r Ú
attr_chainrŸ ¿ sU è è € õ �3˜ÑÔ€DØ
ð #؈
ˆ
ˆ
Ý�t˜TÑ"Ô"ˆð ð #ð #ð #ð #ð #r zefor_stmt< 'for' any 'in' node=any ':' any* >
| comp_for< 'for' any 'in' node=any any* >
z³
power<
( 'iter' | 'list' | 'tuple' | 'sorted' | 'set' | 'sum' |
'any' | 'all' | 'enumerate' | (any* trailer< '.' 'join' >) )
trailer< '(' node=any ')' >
any*
>
z`
power<
( 'sorted' | 'enumerate' )
trailer< '(' arglist ')' >
any*
>
Fc óh — t sMt j t ¦ « at j t ¦ « at j t
¦ « ada t t t
g}t
|t | d¦ « ¦ « D ]*\ }}i }| ||¦ « r
|d | u r dS Œ+dS )a Returns true if node is in an environment where all that is required
of it is being iterable (ie, it doesn't matter if it returns a list
or an iterator).
See test_map_nochange in test_fixers.py for some examples and tests.
TÚparentr> F) Ú
pats_builtr Úcompile_patternÚp0Úp1Úp2ÚziprŸ Úmatch)r> ÚpatternsÚpatternr¡ r‚ s r Úin_special_contextr« å s© € õ ð Ý
Ô
$¥RÑ
(Ô
(ˆÝ
Ô
$¥RÑ
(Ô
(ˆÝ
Ô
$¥RÑ
(Ô
(ˆØˆ
Ý•B�ˆ|€Hݘx°D¸(Ñ)CÔ)CÑDÔDð 𠉈�؈Ø�=Š=˜ Ñ)Ô)ð ¨g°f¬oÀÐ.EÐ.EØ�4�4øØˆ5r c ó† — | j }|�|j t j k rdS | j }|j t
j t
j fv rdS |j t
j k r|j d | u rdS |j t
j
k s;|j t
j k r(|�|j t j k s|j d | u rdS dS )zG
Check that something isn't an attribute or function name etc.
NFr~ T)
Úprev_siblingr� r r6 r¡ r
ÚfuncdefÚclassdefÚ expr_stmtrv Ú
parametersÚ
typedargslistr2 )r> Úprevr¡ s r Úis_probably_builtinr´ ø s½ € ð Ô€DØÐ˜DœI¬Ò2Ð2àˆuØ
Œ[€FØ
„{•t”|¥T¤]Ð3Ð3Ð3؈uØ
„{•d”nÒ$Ð$¨¬¸Ô);¸tÐ)CÐ)CàˆuØ
„{•d”oÒ%Ð%Ø
Œ[�DÔ.Ò
.Ð
.Ø
Ð
$¤)u¬{Ò":Ð":ØŒO˜AÔ $Ð&Ð&ð ˆu؈4r c óÈ — | �_| j t j k rAt | j ¦ « dk r)| j d }|j t
j k r|j S | j } | _dS )zFind the indentation of *node*.Nr‰ r rJ ) r� r
ÚsuiterŠ rv r ÚINDENTr r¡ )r> Úindents r Úfind_indentationr¹ sd € à
Ð
ØŒ9�œ
Ò"Ð"¥s¨4¬=Ñ'9Ô'9¸AÒ'=Ð'=Ø”] 1Ô%ˆFØŒ{�eœlÒ*Ð*Ø”|Ð#ØŒ{ˆð Ð
ð ˆ2r c ó¾ — | j t j k r| S | ¦ « } | j d c}| _ t t j | g¦ « }||_ |S r‘ )r� r
r¶ r8 r¡ r )r> r¡ r¶ s r Ú
make_suiter» sR € Ø„y•D”JÒÐØˆØ�:Š:‰<Œ<€DØœ+ tЀFˆDŒKÝ•”˜d˜VÑ$Ô$€EØ€E„LØ€Lr c óŠ — | j t j k r-| j } | st d¦ « ‚| j t j k °-| S )zFind the top level namespace.z,root found before file_input node was found.)r� r
Ú
file_inputr¡ Ú
ValueErrorr‹ s r Ú find_rootr¿ & sJ € ð Œ)•t”Ò
&Ð
&ØŒ{ˆØð MÝÐKÑLÔLÐLð Œ)•t”Ò
&Ð
&ð €Kr c ó\ — t |t |¦ « | ¦ « }t |¦ « S )zÞ Returns true if name is imported from package at the
top level of the tree which node belongs to.
To cover the case of an import like 'import foo', use
None for the package and 'foo' for the name. )Úfind_bindingr¿ Úbool)Úpackager( r> Úbindings r Údoes_tree_importrÅ / s' € õ
˜4¥¨4¡¤°'Ñ:Ô:€GÝ�‰=Œ=Ðr c ó@ — | j t j t j fv S )z0Returns true if the node is an import statement.)r� r
Úimport_namerr r‹ s r Ú is_importrÈ 7 s € àŒ9�Ô)4Ô+;Ð<Ð<Ð