
    dy                         d dl Zd dlZd dlZd dlmZmZ d dlmZ  G d de          Z	 G d de          Z
 G d d	e          Zd
 Zedk    r'd dlmZ  eddd           d dlmZ  ee           dS dS )    N)ModuleBrowserModuleBrowserTreeItem)TreeItemc                   (    e Zd ZddddZd Zd ZdS )PathBrowserF)_htest_utestc                X    || _         || _        || _        |                                  dS )zG
        _htest - bool, change box location when running htest
        N)masterr   r	   init)selfr   r   r	   s       %  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/idlelib/pathbrowser.py__init__zPathBrowser.__init__   s*     		    c                 n    | j                             d           | j                             d           dS )zSet window titles.zPath BrowserN)topwm_titlewm_iconnamer   s    r   settitlezPathBrowser.settitle   s4    .)))^,,,,,r   c                     t                      S N)PathBrowserTreeItemr   s    r   rootnodezPathBrowser.rootnode   s    "$$$r   N)__name__
__module____qualname__r   r   r    r   r   r   r   	   sP        ).u     - - -
% % % % %r   r   c                       e Zd Zd Zd ZdS )r   c                     dS )Nzsys.pathr   r   s    r   GetTextzPathBrowserTreeItem.GetText   s    zr   c                 p    g }t           j        D ]&}t          |          }|                    |           '|S r   )syspathDirBrowserTreeItemappend)r   sublistdiritems       r   
GetSubListzPathBrowserTreeItem.GetSubList"   s?    8 	! 	!C%c**DNN4    r   N)r   r   r   r!   r*   r   r   r   r   r      s2              r   r   c                   0    e Zd Zg fdZd Zd Zd Zd ZdS )r%   c                 "    || _         || _        d S r   )r(   packages)r   r(   r-   s      r   r   zDirBrowserTreeItem.__init__,   s     r   c                 >    | j         s| j        S | j         d         dz   S )Nz	: package)r-   r(   r   s    r   r!   zDirBrowserTreeItem.GetText0   s%    } 	38O=${22r   c                    	 t          j        | j        pt           j                  }n# t          $ r g cY S w xY wg }|D ]s}t           j                            | j        |          }|                     |          r7t           j                            |          }|	                    |||f           t|
                                 g }|D ]4\  }}}t          || j        |gz             }|	                    |           5|                     |          D ]L\  }}t          t           j                            | j        |                    }|	                    |           M|S r   )oslistdirr(   curdirOSErrorr$   joinispackagedirnormcaser&   sortr%   r-   listmodulesr   )r   namesr-   namefilennr'   r)   s           r   r*   zDirBrowserTreeItem.GetSubList6   sc   	Jtx42955EE 	 	 	III	 	2 	2D7<<$//D  && 2W%%d++T4 0111& 	! 	!NBd%dDMTF,BCCDNN4    ((// 	! 	!HB(dh)E)EFFDNN4    s   %( 77c                     t           j                            |          sdS t           j                            |d          }t           j                            |          S )z/ Return true for directories that are packages.Fz__init__.py)r1   r$   isdirr5   exists)r   r<   r   s      r   r6   zDirBrowserTreeItem.ispackagedirK   sF    w}}T"" 	5w||D-00w~~d###r   c                    i }t           j        j        d d          }|t           j        j        z  }|t           j        j        z  }g }|D ]}t          |           }|d d          D ]n}t          j                            |          }||d          |k    r?|d |         }	|	|vr1d ||	<   |	                    ||f           |
                    |           o|                                 |S r   )	importlib	machineryEXTENSION_SUFFIXESSOURCE_SUFFIXESBYTECODE_SUFFIXESlenr1   r$   r7   r&   remover8   )
r   allnamesmodulessuffixessortedsuffir;   normed_namemod_names
             r   r9   zDirBrowserTreeItem.listmodulesR   s    &9!!!<I'77I'99 		. 		.DT
A  . . g..t44qrr?d**#BQBxHw..,0){D&9::: ---. 	r   N)r   r   r   r   r!   r*   r6   r9   r   r   r   r%   r%   *   sg        %' ! ! ! !3 3 3  *$ $ $    r   r%   c                 P    t          | d           |                                  d S )NT)r   )r   mainloop)parents    r   _path_browserrT   f   s+    t$$$$
OOr   __main__)mainz"idlelib.idle_test.test_pathbrowser   F)	verbosityexit)run)importlib.machineryrB   r1   r#   idlelib.browserr   r   idlelib.treer   r   r   r%   rT   r   unittestrV   idlelib.idle_test.htestrZ   r   r   r   <module>r`      sB       				 



 @ @ @ @ @ @ @ @ ! ! ! ! ! !% % % % %- % % %(
 
 
 
 
( 
 
 
9 9 9 9 9 9 9 9x   zD	-GGGG++++++C r   