-í
ÙM=c       sï     d  Z     h  d d <d d <d d <d d <d	 d
 <d d <d d <d d <Z 1 y 2 e d i d ƒ d Z Wn 3 4 d Z n X9 d k Z : d k Z ? d k Z @ d k l Z A d k	 TH d e f d „  ƒ  YZ
 d S(   s>   Gather information about a Python class from its parse tree.

s   $RCSfile: classinfo.py,v $s   module_names>   $Id: classinfo.py,v 1.2 2002/08/04 12:06:49 doughellmann Exp $s   rcs_ids    Doug Hellmann <doug@hellfly.net>s   creators   UNSPECIFIEDs   projects   Sun, 11-Nov-2001 10:54:26 ESTs   createds   $Author: doughellmann $s   authors   $Revision: 1.2 $s   versions   $Date: 2002/08/04 12:06:49 $s   dates    i   s   0.0N(   s   SuiteInfoBase(   s   *s	   ClassInfoc      sk   H d  Z  I K e e h  d „ Z g d „  Z x d „  Z £ d „  Z § d „  Z « d „  Z ¯ d „  Z RS(   s<   Gather information about a Python class from its parse tree.c  	  sÇ   K W X t  i i d d Y d | Z d | [ d | ƒ] t i |  | d d | | i	 ƒ  ^ d | o | d p t
 _ d | ƒ` |  i | ƒ |  _ b |  i | ƒ |  _ d t  i i ƒ  e d	 Sd	 S(
   s   Initialize the info extractor.

        Parameters:

            parent -- parent object for this class (e.g. Module)

            tree -- parse tree from which to extract information

            commentInfo -- comments extracted from the source file
            for this class

        s	   ClassInfos   __init__s   parents   trees   commentInfoi   i   iÿÿÿÿN(   s   happydoclibs   TRACEs   intos   parents   trees   commentInfos   SuiteInfoBases   __init__s   selfs   getFilenames   Nones   _extractBaseClassess   _base_class_infos   _extractClassMemberss   _class_member_infos   outof(   s   selfs   parents   trees   commentInfo(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   __init__K s   		#c    sÄ   g h k g  } l x¤ | d Dl ]• } n | d t i j ox o xn | d Do ]_ } p t t | ƒ \ } } r | o | i
 d ƒ o' t t | d ƒ } u | i | ƒ n qK Wn q Wv | Sd S(   sD   Returns a list of all base classes from which this class is derived.i   i    s   powerN(   s   base_class_namess   trees   subtrees   symbols   testlists   tests   lenientMatchs   BASE_CLASS_NAME_PATTERNs   founds   varss   has_keys   parseTreeToStrings   names   append(   s   selfs   trees   names   varss   base_class_namess   subtrees   tests   found(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   _extractBaseClassesg s   	 	 	 c    s|  x z { t  i t  i t  i t  i t  i t  i t  i t  i t  i	 t  i
 t  i t  i t  i t  i t  i t  i t  i t  i t i d g f f f f f f f f f f f f f f f f f f f } “ x= | d D“ ]. } ” | d t  i j o • | } – Pn qË W˜ g  } š xb | d Dš ]S } › t | œ |  d d ƒ\ } } ž | o | o Ÿ | i | d ƒ n qW¡ | Sd S(   sO   Returns a list of all variable assignments
        in the class member context.s   member_namei   i    s   dbgN(   s   symbols   stmts   simple_stmts
   small_stmts	   expr_stmts   testlists   tests   and_tests   not_tests
   comparisons   exprs   xor_exprs   and_exprs
   shift_exprs
   arith_exprs   terms   factors   powers   atoms   tokens   NAMEs   CLASS_MEMBER_STMT_PATTERNs   trees   subtrees   suites	   search_ins   class_memberss   lenientMatchs   founds   varss   append(   s   selfs   trees   varss   CLASS_MEMBER_STMT_PATTERNs   class_memberss   subtrees	   search_ins   found(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   _extractClassMembersx s    · 			 		c    s   £ ¤ ¥ |  i i ƒ  Sd S(   s>   Returns a list of the names of methods defined for this class.N(   s   selfs   _function_infos   keys(   s   self(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   getMethodNames£ s   c    s   § ¨ © |  i | Sd S(   sB   Returns a FunctionInfo object for the method 'name', if it exists.N(   s   selfs   _function_infos   name(   s   selfs   name(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   getMethodInfo§ s   c    s   « ¬ ­ |  i Sd S(   s?   Returns a list of the names of the base classes for this class.N(   s   selfs   _base_class_info(   s   self(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   getBaseClassNames« s   c    s   ¯ ° ± g  } ² | Sd S(   sC   Returns a list of the names of all exceptions raised by this class.N(   s   exception_names(   s   selfs   exception_names(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   getExceptionNames¯ s   	(	   s   __doc__s   Nones   __init__s   _extractBaseClassess   _extractClassMemberss   getMethodNamess   getMethodInfos   getBaseClassNamess   getExceptionNames(    (    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys	   ClassInfoH s   	+(   s   __doc__s   __rcs_info__s   splits   __version__s   symbols   tokens   happydoclibs   happydoclib.parseinfo.suites   SuiteInfoBases   happydoclib.parseinfo.utilss	   ClassInfo(   s   SuiteInfoBases	   ClassInfos   symbols   __version__s   tokens   happydoclibs   __rcs_info__(    (    s]   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/parseinfo/classinfo.pys   ? s   Q
