
[d:c       sj    d  Z    d k Z  d k Z  d k Z  d k Z  e e d  o  e i e _ n  e e d  o,  d e i f d     YZ	  e	 e _	 n  d k
 Z
  d k l Z  d k l Z l Z l Z  d f  d     YZ D d	 e f d
     YZ  d e f d     YZ  d e f d     YZ  d   Z  e d j o  e   n d S(   s  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
Ns   readmodule_exs   Functionc      s     RS(   N(    (    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   Function s   (   s   ListedToplevel(   s   TreeNodes   TreeItems   ScrolledCanvass   ClassBrowserc      sD      d   Z  ' e d  Z + d   Z = d   Z A d   Z RS(   Nc    sI     # | |  _  $ t i i | d |  i  d  |  _ % |  i |  d  S(   Ni    s   .py(   s   names   selfs   oss   paths   joins   files   inits   flist(   s   selfs   flists   names   paths0   /mit/python/share/python2.0/idle/ClassBrowser.pys   __init__  s   &c    s'   ' ( |  i i   ) |  i i   d  S(   N(   s   selfs   tops   destroys   node(   s   selfs   events0   /mit/python/share/python2.0/idle/ClassBrowser.pys   close' s   c    s  + , | |  _  . t i i   0 t | i  |  _ } 1 | i d |  i	  2 | i
 d |  i	  3 |  i   4 | i   6 t | d d d d d d } 7 | i i d	 d d
 d  8 |  i   } 9 t | i t |  |  _ } : | i   ; | i   d  S(   Ns   WM_DELETE_WINDOWs   <Escape>s   bgs   whites   highlightthicknessi    s	   takefocusi   s   expands   fills   both(   s   flists   selfs   pyclbrs   _moduless   clears   ListedToplevels   roots   tops   protocols   closes   binds   settitles	   focus_sets   ScrolledCanvass   scs   frames   packs   rootnodes   items   TreeNodes   canvass   Nones   nodes   updates   expand(   s   selfs   flists   tops   scs   items   nodes0   /mit/python/share/python2.0/idle/ClassBrowser.pys   init+ s   !c    s4   = > |  i i d |  i  ? |  i i d  d  S(   Ns   Class Browser - s   Class Browser(   s   selfs   tops   wm_titles   names   wm_iconname(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   settitle= s   c    s   A B t  |  i  Sd  S(   N(   s   ModuleBrowserTreeItems   selfs   file(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   rootnodeA s   (   s   __init__s   Nones   closes   inits   settitles   rootnode(    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   ClassBrowser s
   s   ModuleBrowserTreeItemc      sY   D F d   Z  I d   Z L d   Z O d   Z V d   Z ] d   Z ` d   Z RS(   Nc    s   F G | |  _  d  S(   N(   s   files   self(   s   selfs   files0   /mit/python/share/python2.0/idle/ClassBrowser.pys   __init__F s   c    s   I J t  i i |  i  Sd  S(   N(   s   oss   paths   basenames   selfs   file(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetTextI s   c    s   L M d Sd  S(   Ns   python(    (   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetIconNameL s   c    sa   O P g  } Q xD |  i   d Q r1 } R t | |  i |  i  } S | i |  q WT | Sd  S(   Ni    (	   s   sublists   selfs   listclassess   names   ClassBrowserTreeItems   classess   files   items   append(   s   selfs   sublists   names   items0   /mit/python/share/python2.0/idle/ClassBrowser.pys
   GetSubListO s   	 	c    sq   V W t  i i |  i d  d j o X d  Sn Y t  i i |  i  o Z d  Sn [ t i i |  i  d  S(   Ni   s   .py(	   s   oss   paths   normcases   selfs   files   existss   PyShells   flists   open(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   OnDoubleClickV s
   $c    s(   ] ^ t  i i |  i d  d j Sd  S(   Ni   s   .py(   s   oss   paths   normcases   selfs   file(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   IsExpandable] s   c    sF  ` a t  i i |  i  \ } } b t  i i |  \ } } c t  i i	 |  d j o d g  Sn e y# f t
 i | | g t i  } Wn g t j
 o } h g  Sn Xi g  } j h  |  _ k x0| i   d k r\ } }	 l |	 i | j o m | }
 n |	 i o o g  } p x |	 i d p r{ } q t |  t d  j o r | } n= t | i } u | i |	 i j o v d | i | f } n w | i |  q"Wx |
 d t i | d  }
 n y | i |	 i |
 f  z |	 |  i |
 <n q W{ | i   | g  } } x) | d } r \ } }
 ~ | i |
  qW | Sd  S(   Ns   .pyi    s    s   %s.%ss   (%s)s   , ("   s   oss   paths   splits   selfs   files   dirs   splitexts   names   exts   normcases   pyclbrs   readmodule_exs   syss   dicts   ImportErrors   msgs   itemss   classess   keys   cls   modules   ss   supers   superss   sups   types   snames   appends   strings   joins   linenos   sorts   lists   item(   s   selfs   dirs   files   names   exts   dicts   msgs   itemss   keys   cls   ss   superss   sups   snames   lists   items0   /mit/python/share/python2.0/idle/ClassBrowser.pys   listclasses` sB   #	 		 	!	 (   s   __init__s   GetTexts   GetIconNames
   GetSubLists   OnDoubleClicks   IsExpandables   listclasses(    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   ModuleBrowserTreeItemD s   s   ClassBrowserTreeItemc      sY     d   Z   d   Z  d   Z  d   Z  d   Z  d   Z  d   Z RS(   Nc    s     | |  _   | |  _  | |  _  y  |  i |  i  |  _ Wn(  t t f j
 o  t |  _ n X t |  i t	 i
  |  _ d  S(   N(   s   names   selfs   classess   files   cls
   IndexErrors   KeyErrors   Nones
   isinstances   pyclbrs   Functions
   isfunction(   s   selfs   names   classess   files0   /mit/python/share/python2.0/idle/ClassBrowser.pys   __init__ s   c    s8     |  i o  d |  i d Sn  d |  i Sd  S(   Ns   def s   (...)s   class (   s   selfs
   isfunctions   name(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetText s   c    s&     |  i o  d Sn  d Sd  S(   Ns   pythons   folder(   s   selfs
   isfunction(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetIconName s   c    s'     |  i o  |  i i Sn d  S(   N(   s   selfs   cls   methods(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   IsExpandable s   c    sz     |  i o  g  Sn  g  }  xD |  i   d  r1 }  t | |  i |  i  }  | i |  q7 W | Sd  S(   Ni    (	   s   selfs   cls   sublists   listmethodss   names   MethodBrowserTreeItems   files   items   append(   s   selfs   sublists   names   items0   /mit/python/share/python2.0/idle/ClassBrowser.pys
   GetSubList s   	 	c    s}     t  i i |  i  o  d  Sn  t i i |  i  }  t	 |  i
 d  o#  |  i
 i }  | i |  n d  S(   Ns   lineno(   s   oss   paths   existss   selfs   files   PyShells   flists   opens   edits   hasattrs   cls   linenos   gotoline(   s   selfs   edits   linenos0   /mit/python/share/python2.0/idle/ClassBrowser.pys   OnDoubleClick s   c    s     |  i o  g  Sn  g  }  x; |  i i i   d  r" \ } }  | i | | f  q= W | i    g  }  x) | d  r \ } }  | i |  q W | Sd  S(   Ni    (
   s   selfs   cls   itemss   methodss   names   linenos   appends   sorts   lists   item(   s   selfs   itemss   names   linenos   lists   items0   /mit/python/share/python2.0/idle/ClassBrowser.pys   listmethods s   	 	 (   s   __init__s   GetTexts   GetIconNames   IsExpandables
   GetSubLists   OnDoubleClicks   listmethods(    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   ClassBrowserTreeItem s   
	s   MethodBrowserTreeItemc      sA     d   Z   d   Z  d   Z  d   Z  d   Z RS(   Nc    s+     | |  _   | |  _  | |  _ d  S(   N(   s   names   selfs   cls   file(   s   selfs   names   cls   files0   /mit/python/share/python2.0/idle/ClassBrowser.pys   __init__ s   c    s     d |  i d Sd  S(   Ns   def s   (...)(   s   selfs   name(   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetText s   c    s     d Sd  S(   Ns   python(    (   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   GetIconName s   c    s     d Sd  S(   Ni    (    (   s   selfs0   /mit/python/share/python2.0/idle/ClassBrowser.pys   IsExpandable s   c    sa     t  i i |  i  o  d  Sn  t i i |  i  }  | i	 |  i
 i |  i  d  S(   N(   s   oss   paths   existss   selfs   files   PyShells   flists   opens   edits   gotolines   cls   methodss   name(   s   selfs   edits0   /mit/python/share/python2.0/idle/ClassBrowser.pys   OnDoubleClick s   (   s   __init__s   GetTexts   GetIconNames   IsExpandables   OnDoubleClick(    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   MethodBrowserTreeItem s
   c     s     y  t  }  Wn[  t j
 oL  t i d }   t i d o  t i d }  n  t i d }  n X t i i |   \ } }   t i i	 |   d }  t t i | | g   t i t i j o  t   n d  S(   Ni    i   (   s   __file__s   files	   NameErrors   syss   argvs   oss   paths   splits   dirs   splitexts   names   ClassBrowsers   PyShells   flists   stdins	   __stdin__s   mainloop(   s   files   dirs   names0   /mit/python/share/python2.0/idle/ClassBrowser.pys   main s   s   __main__(   s   __doc__s   oss   syss   strings   pyclbrs   hasattrs
   readmodules   readmodule_exs   Classs   Functions   PyShells
   WindowLists   ListedToplevels
   TreeWidgets   TreeNodes   TreeItems   ScrolledCanvass   ClassBrowsers   ModuleBrowserTreeItems   ClassBrowserTreeItems   MethodBrowserTreeItems   mains   __name__(    s0   /mit/python/share/python2.0/idle/ClassBrowser.pys   ? s&   &=9