f l ddlmZddlmZmZmZmZddlmZm Z m Z dZ Gddej Z dS) ) fixer_base)dirnamejoinexistssep) FromImportsymstokenc#K |g}|r|}|jtjkr |jVn|jt jkr'dd|jDVn~|jt j kr!| |jdnH|jt j kr$| |jdddntd|dSdS)Ncg|] }|j S)value).0chs ?/opt/alt/python311/lib64/python3.11/lib2to3/fixes/fix_import.py z$traverse_imports..s<<<28<<<rzunknown node type)poptyper NAMErr dotted_namerchildrendotted_as_nameappenddotted_as_namesextendAssertionError)namespendingnodes rtraverse_importsr$sgG  6{{}} 9 " "*     Y$* * *''< | import_name< 'import' imp=any > cvtt|||d|jv|_dS)Nabsolute_import)superr& start_treefuture_featuresskip)selftreename __class__s rr*zFixImport.start_tree/s6 i))$555%)== rc|jrdS|d}|jtjkrnt |ds|jd}t |d||jr%d|jz|_|dSdSd}d}t|D]}||rd}d}|r|r| |ddStd|g}|j |_ |S)Nimprr.FTz#absolute and local imports together) r,rr import_fromhasattrrprobably_a_local_importrchangedr$warningr prefix)r-r#resultsr2 have_local have_absolutemod_namenews r transformzFixImport.transform3s0 9  Fen 9( ( ( c7++ &l1oc7++ &++CI66 #)O    J!M,S11 ) )//99)!%JJ$(MM NLL'LMMMS3%((CCJJrcV|drdS|ddd}t|j}t ||}t t t|dsdSdt ddd d fD]}t ||zrd SdS) Nr3Frz __init__.pyz.pyz.pycz.soz.slz.pydT) startswithsplitrfilenamerrr)r-imp_name base_pathexts rr6z!FixImport.probably_a_local_importUs   s # # 5>>#q))!,DM** H-- d79--}==>> 53uf=  Ci#o&& tt ur) __name__ __module__ __qualname__ BM_compatiblePATTERNr*r?r6 __classcell__)r0s@rr&r&&scMG >>>>>   Drr&N)r ros.pathrrrr fixer_utilr r r r$BaseFixr&rrrrQs ............0000000000666&===== "=====r