a  zez @sddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z da dddZGdd d ZGd d d e ZGd d d e ZddZedkreejdkrddlmZeddddddlmZeedS)N)idleConf)pyshell)TreeNodeTreeItemScrolledCanvas)ListedToplevelcCsg}|D]\}}|dus&|j|kr t|dr|jr|j|krg}|jD]F}t|tdurd|}n"|j}|j|jkr|jd|}||qJ|jdd|7_||q |S)Nsuper.z({})z, ) itemsmodulehasattrrnametypeappendformatjoin)Z child_dictmodnameZobskeyobjZsuperssupZsnamerC/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/browser.pytransform_childrens     rc@s>eZdZdddddZdddZdd Zd d Zd d ZdS) ModuleBrowserF)_htest_utestcCs$||_||_||_||_|dSN)masterpathrrinit)selfrrrrrrr__init__As zModuleBrowser.__init__NcCs|j|jdSr)topZdestroynode)r!eventrrrcloseYs zModuleBrowser.closec Cs|j}|js|jstjnt|}|jatj t ||_ }| d|j|d|j|jr|d||df||t}t|dd}t||ddd }|jjdd d |}t|jd||_}|js|| dS) NZWM_DELETE_WINDOWzz+%d+%dZnormal backgroundr)bgZhighlightthicknessZ takefocusZboth)expandfill)!rrrrflistZPyShellFileListopen file_openpyclbrZ_modulesclearrr#protocolr&bindZgeometryZ winfo_rootxZ winfo_rootysettitleZ focus_setrZ CurrentThemeZ GetHighlightrframepackrootnoderZcanvasr$updater+) r!rootr-r#Zthemer(Zscitemr$rrrr ^s4 zModuleBrowser.initcCs*|jdtj|j|jddS)NzModule Browser - zModule Browser)r#Zwm_titleosrbasenameZ wm_iconnamer!rrrr4}szModuleBrowser.settitlecCs t|jSr)ModuleBrowserTreeItemrr=rrrr7szModuleBrowser.rootnode)N)__name__ __module__ __qualname__r"r&r r4r7rrrrr:s  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)r>cCs ||_dSr)file)r!rBrrrr"szModuleBrowserTreeItem.__init__cCstj|jSr)r;rr<rBr=rrrGetTextszModuleBrowserTreeItem.GetTextcCsdS)Npythonrr=rrr GetIconNamesz!ModuleBrowserTreeItem.GetIconNamecCsdd|DS)NcSsg|] }t|qSrChildBrowserTreeItem.0rrrr z4ModuleBrowserTreeItem.GetSubList..) listchildrenr=rrr GetSubListsz ModuleBrowserTreeItem.GetSubListcCs>tj|jdddkrdStj|js0dSt|jdSN.py)r;rnormcaserBexistsr/r=rrr OnDoubleClicks z#ModuleBrowserTreeItem.OnDoubleClickcCstj|jdddkSrN)r;rrQrBr=rrr IsExpandablesz"ModuleBrowserTreeItem.IsExpandablecCsptj|j\}}tj|\}}tj|dkr6gSzt||gtj}Wnt ydgYS0t ||S)NrP) r;rsplitrBsplitextrQr0Z readmodule_exsys ImportErrorr)r!dirbaserextZtreerrrrLs  z"ModuleBrowserTreeItem.listchildrenN) r?r@rAr"rCrErMrSrTrLrrrrr>sr>c@s<eZdZddZddZddZddZd d Zd d Zd S)rGcCs ||_|j|_t|tj|_dSr)rr isinstancer0ZFunction isfunction)r!rrrrr"szChildBrowserTreeItem.__init__cCs$|j}|jrd|dSd|SdS)Nzdef z(...)zclass )rr])r!rrrrrCs zChildBrowserTreeItem.GetTextcCs|jr dSdSdS)NrDZfolder)r]r=rrrrEsz ChildBrowserTreeItem.GetIconNamecCs |jjikSr)rchildrenr=rrrrTsz!ChildBrowserTreeItem.IsExpandablecCsddt|jjDS)NcSsg|] }t|qSrrFrHrrrrJsz3ChildBrowserTreeItem.GetSubList..)rrr^r=rrrrMs zChildBrowserTreeItem.GetSubListc Cs:zt|jj}||jjWnttfy4Yn0dSr)r/rrBZgotolinelinenoOSErrorAttributeError)r!ZeditrrrrSs  z"ChildBrowserTreeItem.OnDoubleClickN) r?r@rAr"rCrErTrMrSrrrrrGs rGcCsHttjdkrtjd}nt}Gdddt}dd}t||dddS)Nr)c@seZdZddZdS)z'_module_browser..Nested_in_funccSsdSrrrrrrnested_in_classrKz7_module_browser..Nested_in_func.nested_in_classN)r?r@rArbrrrrNested_in_funcsrccSsGddd}dS)Nc@s eZdZdS)z;_module_browser..closure..Nested_in_closureN)r?r@rArrrrNested_in_closurerKrdr)rdrrrclosuresz _module_browser..closureT)r)lenrWargv__file__rr)parentrBrcrerrr_module_browsers  rj__main__r))mainzidlelib.idle_test.test_browserF) verbosityexit)run)N)r;r0rWZidlelib.configrZidlelibrZ idlelib.treerrrZidlelib.windowrr/rrr>rGrjr?rfrgZunittestrlZidlelib.idle_test.htestrprrrr s$    M4-