*ë
ñ@ø;c       sà    d  Z    h  d d <d d <d d <d d <d	 d
 <d d <d d <Z - y . e d i d ƒ d Z Wn / 0 d Z n X5 d k Z 6 d k Z 7 d k Z 8 y 9 d k l Z Wn : ; d k l Z n X< d k	 Z	 = d k
 Z
 B d k Z C d k l Z I d e f d „  ƒ  YZ W e i i e i d ƒ Z X e i i e ƒ Z d e
 i
 f d „  ƒ  YZ Ö e d j oQ × d k Z Ø e i d ƒ Ù d k Z Ú e i i e i ƒ  ƒ Û d k Z n d S(   s4   Define a class to handle pluggable module loading.

s   $RCSfile: pluginloader.py,v $s   module_names    Doug Hellmann <doug@hellfly.net>s   creators   HappyDocs   projects   Sat, 03-Jun-2000 19:23:48 EDTs   createds   $Author: doughellmann $s   authors   $Revision: 1.2 $s   versions   $Date: 2001/11/18 23:14:57 $s   dates    i   s   0.0N(   s   StringIO(   s   traces   PluginExceptionc      s   I K d „  Z  P d „  Z RS(   Nc    s&   K L | |  _ M | |  _ N d  Sd  S(   N(   s
   pluginNames   selfs   _plugin_names   wrappedExceptions   _wrapped_exception(   s   selfs   wrappedExceptions
   pluginName(    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   __init__K s   c    s   P Q d |  i |  i f Sd  S(   Ns   Problem with %s
%s(   s   selfs   _plugin_names   _wrapped_exception(   s   self(    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   __str__P s   (   s   __init__s   __str__(    (    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   PluginExceptionI s   i    s   PluginLoaderc      s&   Z d  Z  [ ] d „  Z Î d „  Z RS(   s+   A class to handle pluggable module loading.c  	  s<  ] k l t  i d d m d | n d | o d | ƒs t i i |  ƒ w | i d ƒ }	 x t
 |	 ƒ d j o y d i |	 d ƒ } n z | |  _  | |  _ „ | |  _ ˆ t i t i i |  i ‰ d |  i ƒ ƒ } Œ | i ƒ   x6| d	  r)} ‘ t  i d d
 ’ d | ƒ” | i t i ƒ }	 • |	 d d  } – |	 d } — | |  i j o ˜ d | |  i f GHn š |	 d } › t  i d | ƒ  t i i | ƒ d  } ž |  i o Ÿ d |  i | | f } n £ d | | f } ¤ t  i d | ƒ ¦ y § t | ƒ }
 Wnô ¨ t j
 oå } © t  t i! i" d d ƒ ƒ o[ ª t# ƒ  } « | i% d ƒ ¬ t& i' d | ƒ ­ | i% d ƒ ® t( | i) ƒ  | ƒ ‚ nc ¯ t  t i! i" d d ƒ ƒ o
 ° qô n: ² t* i+ i% d ƒ ³ t& i' ƒ  ´ t* i+ i% d ƒ µ qô n X· | i d ƒ } ¸ xo | d d	 ¸ r^ } ¹ y º t. |
 | ƒ }
 Wn< » t/ j
 o- ¼ t* i+ i% d | |
 i0 f ƒ ¾ ‚  n Xq5WÀ y Á |
 i1 ƒ  } WnP Â t/ j
 oA Ã t* i+ i% d | ƒ Ä t* i+ i% d t3 |
 ƒ ƒ Å ‚  n XÇ |  i4 | ƒ É t  i5 ƒ  qô WË t  i5 ƒ  Ì d Sd S(   s  Create a PluginLoader.

        Parameters

          moduleName -- The imported module, from which we get name, path,
          etc. to find the sub-modules.

          modulePath -- The path to the module, and therefore the
          parent directory of the plugins.

          parentModulePrefix -- The prefix of parent names to be added
          to moduleName.  For example 'happydoclib'.
          
        s   PluginLoaders   __init__s
   moduleNames
   modulePaths   parentModulePrefixs   .i   s   %s*pyi    s   __init__:Loops   _module_namei   i   s3   EEEE Got local plugin set name "%s" instead of "%s"s   parent_package_names   %s.%s.%ss   %s.%ss   _import_names   PLUGIN_DEBUGs   0s   
--- Plugin Module Error ---
s   files   ---------------------------

s   PLUGIN_SILENT_ERRORSs%   ERROR: Could not retrieve %s from %s
s+   ERROR: Could not call entryPoint() from %s
s   %s
N(6   s   TRACEs   intos
   moduleNames
   modulePaths   parentModulePrefixs   UserDicts   __init__s   selfs   splits   module_name_partss   lens   joins   plugin_set_names
   plugin_dirs   parent_module_prefixs   globs   happydoclibs   paths   _module_lists   sorts   _module_names   oss   seps   module_base_names   parent_package_names   writeVars   basenames   _import_names
   __import__s   _modules	   Exceptions   msgs   ints   environs   gets   StringIOs   buffers   writes	   tracebacks	   print_excs   PluginExceptions   getvalues   syss   stderrs   import_name_partss
   sub_modules   getattrs   AttributeErrors   __name__s
   entryPoints   infos   dirs   addEntryPoints   outof(   s   selfs
   moduleNames
   modulePaths   parentModulePrefixs   _import_names   msgs   _module_names   _module_lists   plugin_set_names   module_name_partss   _modules
   sub_modules   buffers   import_name_partss   infos   module_base_names   parent_package_name(    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   __init__] s€   		 	
 	 c    s   Î Ò Ó d |  i i ‚ d S(   sy   Add an entry point into a module to our lookup tables.

        This method must be implemented by the subclass.
        s   Not implemented for %sN(   s   selfs	   __class__s   __name__(   s   selfs   infoDict(    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   addEntryPointÎ s   (   s   __doc__s   __init__s   addEntryPoint(    (    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   PluginLoaderZ s   	qs   __main__s   TestCases/test_plugin_loader(   s   __doc__s   __rcs_info__s   splits   __version__s   globs   oss   syss	   cStringIOs   StringIOs	   tracebacks   UserDicts   happydoclib.paths   happydoclibs   happydoclib.traces   traces   TRACEs	   Exceptions   PluginExceptions   paths   dirnames   argvs   APP_HOME_DIRs   appends   PluginLoaders   __name__s   chdirs   getcwds   runtest(   s   __rcs_info__s   happydoclibs   oss   __version__s   PluginLoaders   syss   PluginExceptions   APP_HOME_DIRs   runtests	   tracebacks   globs   UserDicts   StringIOs   TRACE(    (    sV   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_0/happydoclib/pluginloader.pys   ? s4   H|