B Nh@sddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z da dddZGdd d ZGd d d e ZGd d d e ZddZedkreejdkrddlmZeddddddlmZeedS)N)idleConf)pyshell)TreeNodeTreeItemScrolledCanvas)ListedToplevelcCsg}x|D]\}}|dks(|j|krt|dr|jr|j|krg}xP|jD]F}t|tdkrh|}n"|j}|j|jkr|jd|}||qNW|jdd|7_||qW|S)Nsuper.z({})z, ) itemsmodulehasattrrnametypeappendformatjoin)Z child_dictmodnameZobskeyobjZsuperssupZsnamer2/opt/alt/python37/lib/python3.7/idlelib/browser.pytransform_childrens   rc@s>eZdZdddddZdddZdd Zd d Zd d ZdS) ModuleBrowserF)_htest_utestcCs$||_||_||_||_|dS)N)masterpathrrinit)selfrrrrrrr__init__As zModuleBrowser.__init__NcCs|j|jdS)N)topZdestroynode)r ZeventrrrcloseYs 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"Zprotocolr$ZbindZgeometryZ winfo_rootxZ winfo_rootysettitleZ focus_setrZ CurrentThemeZ GetHighlightrframepackrootnoderZcanvasr#updater)) r rootr+r"Zthemer&Zscitemr#rrrr^s.  zModuleBrowser.initcCs*|jdtj|j|jddS)NzModule Browser - zModule Browser)r"Zwm_titleosrbasenameZ wm_iconname)r rrrr0}szModuleBrowser.settitlecCs t|jS)N)ModuleBrowserTreeItemr)r rrrr3szModuleBrowser.rootnode)N)__name__ __module__ __qualname__r!r$rr0r3rrrrr:s  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)r9cCs ||_dS)N)file)r r=rrrr!szModuleBrowserTreeItem.__init__cCstj|jS)N)r7rr8r=)r rrrGetTextszModuleBrowserTreeItem.GetTextcCsdS)Npythonr)r rrr GetIconNamesz!ModuleBrowserTreeItem.GetIconNamecCsdd|DS)NcSsg|] }t|qSr)ChildBrowserTreeItem).0rrrr sz4ModuleBrowserTreeItem.GetSubList..) listchildren)r rrr GetSubListsz ModuleBrowserTreeItem.GetSubListcCs>tj|jdddkrdStj|js0dSt|jdS)Nz.py)r7rnormcaser=existsr-)r rrr OnDoubleClicks z#ModuleBrowserTreeItem.OnDoubleClickcCstj|jdddkS)NrFz.py)r7rrGr=)r rrr IsExpandablesz"ModuleBrowserTreeItem.IsExpandablecCsntj|j\}}tj|\}}tj|dkr6gSyt||gtj}Wnt k rbgSXt ||S)Nz.py) r7rsplitr=splitextrGr.Z readmodule_exsys ImportErrorr)r dirbaserZextZtreerrrrDsz"ModuleBrowserTreeItem.listchildrenN) r:r;r<r!r>r@rErIrJrDrrrrr9sr9c@s<eZdZddZddZddZddZd d Zd d Zd S)rAcCs ||_|j|_t|tj|_dS)N)rr isinstancer.ZFunction isfunction)r rrrrr!szChildBrowserTreeItem.__init__cCs$|j}|jrd|dSd|SdS)Nzdef z(...)zclass )rrR)r rrrrr>s zChildBrowserTreeItem.GetTextcCs|jr dSdSdS)Nr?Zfolder)rR)r rrrr@sz ChildBrowserTreeItem.GetIconNamecCs |jjikS)N)rchildren)r rrrrJsz!ChildBrowserTreeItem.IsExpandablecCsddt|jjDS)NcSsg|] }t|qSr)rA)rBrrrrrCsz3ChildBrowserTreeItem.GetSubList..)rrrS)r rrrrEszChildBrowserTreeItem.GetSubListc Cs<yt|jj}||jjWnttfk r6YnXdS)N)r-rr=ZgotolinelinenoOSErrorAttributeError)r ZeditrrrrIs  z"ChildBrowserTreeItem.OnDoubleClickN) r:r;r<r!r>r@rJrErIrrrrrAs rAcCsHttjdkrtjd}nt}Gdddt}dd}t||dddS)Nr'c@seZdZddZdS)z'_module_browser..Nested_in_funccSsdS)Nrrrrrnested_in_classz7_module_browser..Nested_in_func.nested_in_classN)r:r;r<rWrrrrNested_in_funcsrYcSsGddd}dS)Nc@s eZdZdS)z;_module_browser..closure..Nested_in_closureN)r:r;r<rrrrNested_in_closuresrZr)rZrrrclosuresz _module_browser..closureT)r)lenrMargv__file__rr)parentr=rYr[rrr_module_browsers  r`__main__r')mainzidlelib.idle_test.test_browserF) verbosityexit)run)N)r7r.rMZidlelib.configrZidlelibrZ idlelib.treerrrZidlelib.windowrr-rrr9rAr`r:r\r]ZunittestrbZidlelib.idle_test.htestrfrrrr s$    M4-