<!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>

f  c               @   s   d  Z  d d l Z d d l 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 Gd d   d  Z Gd	 d
   d
 e
  Z Gd d   d e
  Z Gd d   d e
  Z d d   Z e d k r e   n  d S(   u  Class browser.

XXX TO DO:

- reparse when source changed (maybe just a button would be OK?)
    (or recheck on window popup)
- add popup menu with more options (e.g. doc strings, base classes, imports)
- show function argument list? (have to do pattern matching on source)
- should the classes and methods lists also be in the module's menu bar?
- add base classes to class browser tree
i    N(   u   PyShell(   u   ListedToplevel(   u   TreeNodeu   TreeItemu   ScrolledCanvas(   u   idleConfc             B   sS   |  Ee  Z d  Z d d   Z d d d  Z d d   Z d d   Z d	 d
   Z d S(   u   ClassBrowserc             C   s=   | |  _  t j j | d |  j  d  |  _ |  j |  d  S(   Ni    u   .py(   u   nameu   osu   pathu   joinu   fileu   init(   u   selfu   flistu   nameu   path(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   __init__   s    	#u   ClassBrowser.__init__c             C   s   |  j  j   |  j j   d  S(   N(   u   topu   destroyu   node(   u   selfu   event(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   close   s    u   ClassBrowser.closec             C   s  | |  _  t j j   t | j  |  _ } | j d |  j  | j	 d |  j  |  j
   | j   t j d d d  } t j | d  d } t | d | d	 d
 d d } | j j d d d d  |  j   } t | j d  |  |  _ } | j   | j   d  S(   Nu   WM_DELETE_WINDOWu   <Escape>u   mainu   Themeu   nameu   normalu
   backgroundu   bgu   highlightthicknessi    u	   takefocusi   u   expandu   fillu   both(   u   flistu   pyclbru   _modulesu   clearu   ListedToplevelu   rootu   topu   protocolu   closeu   bindu   settitleu	   focus_setu   idleConfu	   GetOptionu   GetHighlightu   ScrolledCanvasu   frameu   packu   rootnodeu   TreeNodeu   canvasu   Noneu   nodeu   updateu   expand(   u   selfu   flistu   topu   themeu
   backgroundu   scu   itemu   node(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   init#   s    	


u   ClassBrowser.initc             C   s+   |  j  j d |  j  |  j  j d  d  S(   Nu   Class Browser - u   Class Browser(   u   topu   wm_titleu   nameu   wm_iconname(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   settitle7   s    u   ClassBrowser.settitlec             C   s   t  |  j  S(   N(   u   ModuleBrowserTreeItemu   file(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   rootnode;   s    u   ClassBrowser.rootnodeN(	   u   __name__u
   __module__u   __qualname__u   __init__u   Noneu   closeu   initu   settitleu   rootnode(   u
   __locals__(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   ClassBrowser   s
   u   ClassBrowserc             B   sh   |  Ee  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(   u   ModuleBrowserTreeItemc             C   s   | |  _  d  S(   N(   u   file(   u   selfu   file(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   __init__@   s    u   ModuleBrowserTreeItem.__init__c             C   s   t  j j |  j  S(   N(   u   osu   pathu   basenameu   file(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetTextC   s    u   ModuleBrowserTreeItem.GetTextc             C   s   d S(   Nu   python(    (   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetIconNameF   s    u!   ModuleBrowserTreeItem.GetIconNamec             C   sF   g  } x9 |  j    D]+ } t | |  j |  j  } | j |  q W| S(   N(   u   listclassesu   ClassBrowserTreeItemu   classesu   fileu   append(   u   selfu   sublistu   nameu   item(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu
   GetSubListI   s
    u    ModuleBrowserTreeItem.GetSubListc             C   sY   t  j j |  j d d    d k r) d  St  j j |  j  sB d  St j j |  j  d  S(   Ni   u   .pyi(   u   osu   pathu   normcaseu   fileu   existsu   PyShellu   flistu   open(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   OnDoubleClickP   s
    %u#   ModuleBrowserTreeItem.OnDoubleClickc             C   s#   t  j j |  j d d    d k S(   Ni   u   .pyi(   u   osu   pathu   normcaseu   file(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   IsExpandableW   s    u"   ModuleBrowserTreeItem.IsExpandablec             C   s  t  j j |  j  \ } } t  j j |  \ } } t  j j |  d k rO g  Sy  t j | | g t j  } Wn) t	 k
 r } z	 g  SWYd  d  } ~ Xn Xg  } i  |  _
 x | j   D] \ } }	 |	 j | k r | }
 t |	 d  r|	 j rg  } xp |	 j D]e } t |  t d  k r'| } n1 | j } | j |	 j k rXd | j | f } n  | j |  q W|
 d d j |  }
 n  | j |	 j |
 f  |	 |  j
 |
 <q q W| j   g  } x! | D] \ } }
 | j |
  qW| S(   Nu   .pyu   superu    u   %s.%su   (%s)u   , (   u   osu   pathu   splitu   fileu   splitextu   normcaseu   pyclbru   readmodule_exu   sysu   ImportErroru   classesu   itemsu   moduleu   hasattru   superu   typeu   nameu   appendu   joinu   linenou   sort(   u   selfu   diru   fileu   nameu   extu   dictu   msgu   itemsu   keyu   clu   su   supersu   supu   snameu   listu   item(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   listclassesZ   s<     			
u!   ModuleBrowserTreeItem.listclassesN(
   u   __name__u
   __module__u   __qualname__u   __init__u   GetTextu   GetIconNameu
   GetSubListu   OnDoubleClicku   IsExpandableu   listclasses(   u
   __locals__(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   ModuleBrowserTreeItem>   s   u   ModuleBrowserTreeItemc             B   sh   |  Ee  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(   u   ClassBrowserTreeItemc             C   sr   | |  _  | |  _ | |  _ y |  j |  j  |  _ Wn! t t f k
 rU d  |  _ Yn Xt |  j t j	  |  _
 d  S(   N(   u   nameu   classesu   fileu   clu
   IndexErroru   KeyErroru   Noneu
   isinstanceu   pyclbru   Functionu
   isfunction(   u   selfu   nameu   classesu   file(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   __init__}   s    			u   ClassBrowserTreeItem.__init__c             C   s'   |  j  r d |  j d Sd |  j Sd  S(   Nu   def u   (...)u   class (   u
   isfunctionu   name(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetText   s    	u   ClassBrowserTreeItem.GetTextc             C   s   |  j  r d Sd Sd  S(   Nu   pythonu   folder(   u
   isfunction(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetIconName   s    	u    ClassBrowserTreeItem.GetIconNamec             C   s9   |  j  r5 y |  j  j SWq5 t k
 r1 d SYq5 Xn  d  S(   NF(   u   clu   methodsu   AttributeErroru   False(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   IsExpandable   s
    	u!   ClassBrowserTreeItem.IsExpandablec             C   sS   |  j  s g  Sg  } x9 |  j   D]+ } t | |  j  |  j  } | j |  q  W| S(   N(   u   clu   listmethodsu   MethodBrowserTreeItemu   fileu   append(   u   selfu   sublistu   nameu   item(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu
   GetSubList   s    	u   ClassBrowserTreeItem.GetSubListc             C   s`   t  j j |  j  s d  St j j |  j  } t |  j d  r\ |  j j	 } | j
 |  n  d  S(   Nu   lineno(   u   osu   pathu   existsu   fileu   PyShellu   flistu   openu   hasattru   clu   linenou   gotoline(   u   selfu   editu   lineno(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   OnDoubleClick   s    u"   ClassBrowserTreeItem.OnDoubleClickc             C   s   |  j  s g  Sg  } x3 |  j  j j   D] \ } } | j | | f  q& W| j   g  } x! | D] \ } } | j |  q` W| S(   N(   u   clu   methodsu   itemsu   appendu   sort(   u   selfu   itemsu   nameu   linenou   listu   item(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   listmethods   s    	
u    ClassBrowserTreeItem.listmethodsN(
   u   __name__u
   __module__u   __qualname__u   __init__u   GetTextu   GetIconNameu   IsExpandableu
   GetSubListu   OnDoubleClicku   listmethods(   u
   __locals__(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   ClassBrowserTreeItem{   s   
	u   ClassBrowserTreeItemc             B   sP   |  Ee  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S(   u   MethodBrowserTreeItemc             C   s   | |  _  | |  _ | |  _ d  S(   N(   u   nameu   clu   file(   u   selfu   nameu   clu   file(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   __init__   s    		u   MethodBrowserTreeItem.__init__c             C   s   d |  j  d S(   Nu   def u   (...)(   u   name(   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetText   s    u   MethodBrowserTreeItem.GetTextc             C   s   d S(   Nu   python(    (   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   GetIconName   s    u!   MethodBrowserTreeItem.GetIconNamec             C   s   d S(   Ni    (    (   u   self(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   IsExpandable   s    u"   MethodBrowserTreeItem.IsExpandablec             C   sL   t  j j |  j  s d  St j j |  j  } | j |  j j	 |  j
  d  S(   N(   u   osu   pathu   existsu   fileu   PyShellu   flistu   openu   gotolineu   clu   methodsu   name(   u   selfu   edit(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   OnDoubleClick   s    u#   MethodBrowserTreeItem.OnDoubleClickN(   u   __name__u
   __module__u   __qualname__u   __init__u   GetTextu   GetIconNameu   IsExpandableu   OnDoubleClick(   u
   __locals__(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   MethodBrowserTreeItem   s
   u   MethodBrowserTreeItemc              C   s   y
 t  }  WnO t k
 r[ t j d }  t j d d   rJ t j d }  n t j d }  Yn Xt j j |   \ } }  t j j |   d } t t	 j
 | | g  t j t j k r t   n  d  S(   Ni    i   (   u   __file__u	   NameErroru   sysu   argvu   osu   pathu   splitu   splitextu   ClassBrowseru   PyShellu   flistu   stdinu	   __stdin__u   mainloop(   u   fileu   diru   name(    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   main   s    
u   mainu   __main__(   u   __doc__u   osu   sysu   pyclbru   idlelibu   PyShellu   idlelib.WindowListu   ListedToplevelu   idlelib.TreeWidgetu   TreeNodeu   TreeItemu   ScrolledCanvasu   idlelib.configHandleru   idleConfu   ClassBrowseru   ModuleBrowserTreeItemu   ClassBrowserTreeItemu   MethodBrowserTreeItemu   mainu   __name__(    (    (    u9   /opt/alt/python33/lib64/python3.3/idlelib/ClassBrowser.pyu   <module>   s   (=<