<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2aY                  @   s   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ dadddZG d	d
 d
ZG dd de
ZG dd de
Zdd Zedkreejdkrd dlmZ edddd d dlmZ ee dS )    N)_pyclbr)idleConf)pyshell)TreeNodeTreeItemScrolledCanvas)ListedToplevelc             C   s   g }x| j  D ]\}}|d ks(|j|krt|dr|jr|j|krg }xP|jD ]F}t|tdkrh|}n"|j}|j|jkr|j d| }|j| qNW | jdjdj|7  _|j| qW t	|dd dS )	Nsuper .z({})z, c             S   s   | j S )N)lineno)o r   ,/opt/alt/python36/lib64/python3.6/browser.py<lambda>6   s    z$transform_children.<locals>.<lambda>)key)
itemsmodulehasattrr	   nametypeappendformatjoinsorted)Z
child_dictmodnameZobsr   objZsuperssupZsnamer   r   r   transform_children   s    r   c               @   s>   e Zd ZdddddZdddZdd	 Zd
d Zdd ZdS )ModuleBrowserF)_htest_utestc            C   s$   || _ || _|| _|| _| j  d S )N)masterpathr    r!   init)selfr"   r#   r    r!   r   r   r   __init__@   s
    zModuleBrowser.__init__Nc             C   s   | j j  | jj  d S )N)topZdestroynode)r%   Zeventr   r   r   closeX   s    
zModuleBrowser.closec       	      C   s   | j }| jp| jstjntj|}|jatj	j
  t| | _}|jd| j |jd| j | jr|jd|j |j d f  | j  |j  tj }tj|dd }t||ddd	}|jjdd
d | j }t|jd | | _}| js|j  |j   d S )NZWM_DELETE_WINDOWz<Escape>z+%d+%d   Znormal
backgroundr      )bgZhighlightthicknessZ	takefocusZboth)expandfill)!r"   r    r!   r   flistZPyShellFileListopen	file_openpyclbrZ_modulesclearr   r'   Zprotocolr)   ZbindZgeometryZwinfo_rootxZwinfo_rootysettitleZ	focus_setr   ZCurrentThemeZGetHighlightr   framepackrootnoder   Zcanvasr(   updater.   )	r%   rootr0   r'   Zthemer+   Zscitemr(   r   r   r   r$   ]   s.    

zModuleBrowser.initc             C   s*   | j jdtjj| j  | j jd d S )NzModule Browser - zModule Browser)r'   Zwm_titleosr#   basenameZwm_iconname)r%   r   r   r   r5   |   s    zModuleBrowser.settitlec             C   s
   t | jS )N)ModuleBrowserTreeItemr#   )r%   r   r   r   r8      s    zModuleBrowser.rootnode)N)__name__
__module____qualname__r&   r)   r$   r5   r8   r   r   r   r   r   9   s
   
r   c               @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )r>   c             C   s
   || _ d S )N)file)r%   rB   r   r   r   r&      s    zModuleBrowserTreeItem.__init__c             C   s   t jj| jS )N)r<   r#   r=   rB   )r%   r   r   r   GetText   s    zModuleBrowserTreeItem.GetTextc             C   s   dS )Npythonr   )r%   r   r   r   GetIconName   s    z!ModuleBrowserTreeItem.GetIconNamec             C   s   dd | j  D S )Nc             S   s   g | ]}t |qS r   )ChildBrowserTreeItem).0r   r   r   r   
<listcomp>   s    z4ModuleBrowserTreeItem.GetSubList.<locals>.<listcomp>)listchildren)r%   r   r   r   
GetSubList   s    z ModuleBrowserTreeItem.GetSubListc             C   s>   t jj| jdd  dkrd S t jj| js0d S t| j d S )N   z.py)r<   r#   normcaserB   existsr2   )r%   r   r   r   OnDoubleClick   s
    z#ModuleBrowserTreeItem.OnDoubleClickc             C   s   t jj| jdd  dkS )NrK   z.pyrL   )r<   r#   rM   rB   )r%   r   r   r   IsExpandable   s    z"ModuleBrowserTreeItem.IsExpandablec             C   sn   t jj| j\}}t jj|\}}t jj|dkr6g S ytj||gtj }W n t	k
rb   g S X t
||S )Nz.py)r<   r#   splitrB   splitextrM   r3   Zreadmodule_exsysImportErrorr   )r%   dirbaser   ZextZtreer   r   r   rI      s    z"ModuleBrowserTreeItem.listchildrenN)
r?   r@   rA   r&   rC   rE   rJ   rO   rP   rI   r   r   r   r   r>      s   r>   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )rF   c             C   s    || _ |j| _t|tj| _d S )N)r   r   
isinstancer3   ZFunction
isfunction)r%   r   r   r   r   r&      s    zChildBrowserTreeItem.__init__c             C   s$   | j }| jrd| d S d| S d S )Nzdef z(...)zclass )r   rX   )r%   r   r   r   r   rC      s    zChildBrowserTreeItem.GetTextc             C   s   | j r
dS dS d S )NrD   Zfolder)rX   )r%   r   r   r   rE      s    z ChildBrowserTreeItem.GetIconNamec             C   s   | j ji kS )N)r   children)r%   r   r   r   rP      s    z!ChildBrowserTreeItem.IsExpandablec             C   s   dd t | jjD S )Nc             S   s   g | ]}t |qS r   )rF   )rG   r   r   r   r   rH      s   z3ChildBrowserTreeItem.GetSubList.<locals>.<listcomp>)r   r   rY   )r%   r   r   r   rJ      s    zChildBrowserTreeItem.GetSubListc             C   s<   yt | jj}|j| jj W n ttfk
r6   Y nX d S )N)r2   r   rB   Zgotoliner   OSErrorAttributeError)r%   Zeditr   r   r   rO      s
    z"ChildBrowserTreeItem.OnDoubleClickN)	r?   r@   rA   r&   rC   rE   rP   rJ   rO   r   r   r   r   rF      s   rF   c             C   sH   t tjdkrtjd }nt}G dd dt}dd }t| |dd d S )Nr,   c               @   s   e Zd Zdd ZdS )z'_module_browser.<locals>.Nested_in_funcc               S   s   d S )Nr   r   r   r   r   nested_in_class   s    z7_module_browser.<locals>.Nested_in_func.nested_in_classN)r?   r@   rA   r\   r   r   r   r   Nested_in_func   s   r]   c              S   s   G dd d} d S )Nc               @   s   e Zd ZdS )z;_module_browser.<locals>.closure.<locals>.Nested_in_closureN)r?   r@   rA   r   r   r   r   Nested_in_closure   s    r^   r   )r^   r   r   r   closure   s    z _module_browser.<locals>.closureT)r    )lenrS   argv__file__r   r   )parentrB   r]   r_   r   r   r   _module_browser   s    rd   __main__r,   )mainzidlelib.idle_test.test_browser   F)	verbosityexit)run)N)r<   Zidlelibr   r3   rS   Zidlelib.configr   r   Zidlelib.treer   r   r   Zidlelib.windowr   r2   r   r   r>   rF   rd   r?   r`   ra   Zunittestrf   Zidlelib.idle_test.htestrj   r   r   r   r   <module>   s$   
M4-