3 2aY @sddlZddlmZddlZddlmZddlmZddlm Z m Z m Z ddl m Z dadddZGd d d ZGd d d e ZGd dde ZddZedkreejdkrddlmZeddddddlmZeedS)N)_pyclbr)idleConf)pyshell)TreeNodeTreeItemScrolledCanvas)ListedToplevelcCsg}x|jD]\}}|dks(|j|krt|dr|jr|j|krg}xP|jD]F}t|tdkrh|}n"|j}|j|jkr|jd|}|j|qNW|jdjdj|7_|j|qWt |dddS) Nsuper.z({})z, cSs|jS)N)lineno)or,/opt/alt/python36/lib64/python3.6/browser.py6sz$transform_children..)key) itemsmodulehasattrr nametypeappendformatjoinsorted)Z child_dictmodnameZobsrobjZsuperssupZsnamerrrtransform_childrens   rc@s>eZdZdddddZdddZdd Zd d Zd d ZdS) ModuleBrowserF)_htest_utestcCs$||_||_||_||_|jdS)N)masterpathr r!init)selfr"r#r r!rrr__init__@s zModuleBrowser.__init__NcCs|jj|jjdS)N)topZdestroynode)r%ZeventrrrcloseXs zModuleBrowser.closec Cs|j}|jp|jstjntj|}|jatj j t ||_ }|j d|j|jd|j|jr|jd|j|jdf|j|jtj}tj|dd}t||ddd }|jjdd d |j}t|jd||_}|js|j|j dS) NZWM_DELETE_WINDOWzz+%d+%dZnormal backgroundr)bgZhighlightthicknessZ takefocusZboth)expandfill)!r"r r!rflistZPyShellFileListopen file_openpyclbrZ_modulesclearrr'Zprotocolr)ZbindZgeometryZ winfo_rootxZ winfo_rootysettitleZ focus_setrZ CurrentThemeZ GetHighlightrframepackrootnoderZcanvasr(updater.) r%rootr0r'Zthemer+Zscitemr(rrrr$]s.  zModuleBrowser.initcCs*|jjdtjj|j|jjddS)NzModule Browser - zModule Browser)r'Zwm_titleosr#basenameZ wm_iconname)r%rrrr5|szModuleBrowser.settitlecCs t|jS)N)ModuleBrowserTreeItemr#)r%rrrr8szModuleBrowser.rootnode)N)__name__ __module__ __qualname__r&r)r$r5r8rrrrr9s  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)r>cCs ||_dS)N)file)r%rBrrrr&szModuleBrowserTreeItem.__init__cCstjj|jS)N)r<r#r=rB)r%rrrGetTextszModuleBrowserTreeItem.GetTextcCsdS)Npythonr)r%rrr GetIconNamesz!ModuleBrowserTreeItem.GetIconNamecCsdd|jDS)NcSsg|] }t|qSr)ChildBrowserTreeItem).0rrrr sz4ModuleBrowserTreeItem.GetSubList..) listchildren)r%rrr GetSubListsz ModuleBrowserTreeItem.GetSubListcCs>tjj|jdddkrdStjj|js0dSt|jdS)Nz.py)r<r#normcaserBexistsr2)r%rrr OnDoubleClicks z#ModuleBrowserTreeItem.OnDoubleClickcCstjj|jdddkS)NrKz.pyrL)r<r#rMrB)r%rrr IsExpandablesz"ModuleBrowserTreeItem.IsExpandablec Csntjj|j\}}tjj|\}}tjj|dkr6gSytj||gtj}Wnt k rbgSXt ||S)Nz.py) r<r#splitrBsplitextrMr3Z readmodule_exsys ImportErrorr)r%dirbaserZextZtreerrrrIsz"ModuleBrowserTreeItem.listchildrenN) r?r@rAr&rCrErJrOrPrIrrrrr>sr>c@s<eZdZddZddZddZddZd d Zd d Zd S)rFcCs ||_|j|_t|tj|_dS)N)rr isinstancer3ZFunction isfunction)r%rrrrr&szChildBrowserTreeItem.__init__cCs$|j}|jrd|dSd|SdS)Nzdef z(...)zclass )rrX)r%rrrrrCs zChildBrowserTreeItem.GetTextcCs|jr dSdSdS)NrDZfolder)rX)r%rrrrEsz ChildBrowserTreeItem.GetIconNamecCs |jjikS)N)rchildren)r%rrrrPsz!ChildBrowserTreeItem.IsExpandablecCsddt|jjDS)NcSsg|] }t|qSr)rF)rGrrrrrHsz3ChildBrowserTreeItem.GetSubList..)rrrY)r%rrrrJszChildBrowserTreeItem.GetSubListc Cs<yt|jj}|j|jjWnttfk r6YnXdS)N)r2rrBZgotoliner OSErrorAttributeError)r%ZeditrrrrOs  z"ChildBrowserTreeItem.OnDoubleClickN) r?r@rAr&rCrErPrJrOrrrrrFs rFcCsHttjdkrtjd}nt}Gdddt}dd}t||dddS)Nr,c@seZdZddZdS)z'_module_browser..Nested_in_funccSsdS)Nrrrrrnested_in_classsz7_module_browser..Nested_in_func.nested_in_classN)r?r@rAr\rrrrNested_in_funcsr]cSsGddd}dS)Nc@s eZdZdS)z;_module_browser..closure..Nested_in_closureN)r?r@rArrrrNested_in_closuresr^r)r^rrrclosuresz _module_browser..closureT)r )lenrSargv__file__rr)parentrBr]r_rrr_module_browsers  rd__main__r,)mainzidlelib.idle_test.test_browserF) verbosityexit)run)N)r<Zidlelibrr3rSZidlelib.configrrZ idlelib.treerrrZidlelib.windowrr2rrr>rFrdr?r`raZunittestrfZidlelib.idle_test.htestrjrrrr s$     M4-