Ζ
RDσ9c    	   s    d  Z    d Z  d Z  d k Z d k Z d k Z d k Z d k Z  d k l	 Z	   d   Z
 - d   Z 2 d   Z : d   Z G d	   Z V e d
  Z b e d  Z x e d  Z { d d d d d d d d d f	 Z  e d  Z  e d  Z  d   Z d S(   s   Miscellaneous utilities.
s0   $Id: misc.py,v 1.1 1999/05/16 08:58:54 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>N(   s	   ClassTypec  	  sΔ     ! " h  } # t d   t i    } $ | i d    % xp t i |   d % rZ } & xN | d & rA } ' | t |  | j o  ( d | | t |   <) Pn qg WqR W+ | i   Sd S(   s0   List all available modules in a given directory.c    s   # |  d S(   Ni    (   s   x(   s   xsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda># s    c    s   $ t  | |   S(   N(   s   cmps   ys   x(   s   xs   ysB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda>$ s    i    i   N(   s   ls   maps   imps   get_suffixess   suffs   sorts   oss   listdirs   paths   names   ss   lens   keys(   s   paths   ls   suffs   names   ssB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_modules  s   	 	 	c    sK   - . t  i i |   o. / t |   } 0 d | j o 0 d Sn n d  S(   Ns   __init__i   (   s   oss   paths   isdirs   list_moduless   d(   s   paths   dsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys
   is_package- s    c    sx   2 3 4 g  } 5 xX t i |   d 5 rB } 6 t i i |  |  } 7 t |  o 7 | i |  n q$ W8 | Sd S(   s(   List available packages in a given path.i    N(	   s   ls   oss   listdirs   paths   names   joins   ps
   is_packages   append(   s   paths   ls   names   psB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_packages2 s   	 	 c    s   : > ? g  } @ xl t |   d @ rY } A | i |  B t t i i |  |   } C t	 | d  |  } D | | } q! WE | Sd S(   sq   List available packages, recursively.

    Does not handle the use of the __path__ variable inside packages.
    i    c    s   C | d |  S(   Ns   .(   s   pkgs   x(   s   xs   pkgsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda>C s    N(   s   ls   list_packagess   paths   ps   appends   list_all_packagess   oss   joins   aps   maps   m(   s   paths   ls   ps   aps   msB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_all_packages: s   	 	c  	  s½   G K L g  } M x] t |   d M rJ } N | i |  O | t | d  P t t i i |  |    } q! WQ t	 |   } R d | j o R | i d  n S | | } T | Sd S(   sp   List available modules, recursively.

    Does not handle the use of the __path__ variable inside packages.
    i    c    s   O | d |  S(   Ns   .(   s   pkgs   x(   s   xs   pkgsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda>O s    s   __init__N(   s   ls   list_packagess   paths   ps   appends   maps   list_all_moduless   oss   joins   list_moduless   ms   remove(   s   paths   ls   ps   msB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_all_modulesG s   	 	& c    s   V W y X t  |  |  } Wn Y Z g  Sn X[ t | d  o \ g  Sn ] g  } ^ x) | i d ^ r } _ | t |  } qg W` | Sd  S(   Ns   __path__i    (	   s   import_modules   packages   gs   ps   hasattrs   ls   __path__s   pas   list_modules(   s   packages   gs   ps   ls   pasB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_package_modulesV s   	 	c 
 	  sb  b c g  } d xE|  d d r8} e | o, f | o f | d | } n
 g | } n h t | |  } i xδ | d i rΧ } j | } k | d j o
 l qu n m | o m | d | } n n y| o t	 | |  } p x` | i i   d p rJ }	 q t |	  t j o t |	 d  o r | i | |	 f  s Pn qν WWn t u n Xqu Wq Wv | Sd  S(   Ni    s   .s   __init__s	   is_plugin(   s   ls   paths   pas
   collections   list_package_moduless   gs   moduless   mns   nns   import_modules   ms   __dict__s   valuess   os   types	   ClassTypes   hasattrs   append(
   s   paths
   collections   gs   ls   pas   moduless   mns   nns   ms   osB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   load_pluginsb s2   	 	

  		

  	&c    s&   x y t  d   t |  | |   Sd  S(   Nc    s   y |  d S(   Ni    (   s   x(   s   xsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda>y s    (   s   maps   load_pluginss   paths
   collections   g(   s   paths
   collections   gsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_pluginsx s   s   names   authors   descriptions   versions   urls   types	   type_names
   propertiess   optionsc    s     h  }  xo t |  | |  d  rV \ } }  h  }  t | | d   t	   | i
 |  o  | | | <n q$ W | Sd  S(   Ni    c    s    t  i | |  t | |    S(   N(   s   operators   setitems   ds   ks   getattrs   o(   s   ks   ds   osB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   <lambda> s    (   s   ls   load_pluginss   paths
   collections   gs   ns   os   ds   maps   plugin_info_attributess   has_key(   s   paths
   collections   gs   ls   ns   os   dsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   list_plugin_info s   	 	
c    sg      t  |  |  }  t i |  d  }  x) | d d  r }  t | |  } q= W | Sd S(   s4   Import a package or module; cribbed from the manual.s   .i   i    N(	   s
   __import__s   names   gs   mods   strings   splits
   componentss   comps   getattr(   s   names   gs   mods
   componentss   compsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   import_module s    	c    sV     g  }  x9 |  i d  r) }  | i |   | t |  } q W | Sd  S(   Ni    (   s   ls   clss	   __bases__s   bs   appends   parent_classes(   s   clss   ls   bsB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   parent_classes s   	 	(   s   __doc__s   __version__s   __copyright__s   syss   oss   strings   imps   operators   typess	   ClassTypes   list_moduless
   is_packages   list_packagess   list_all_packagess   list_all_moduless   Nones   list_package_moduless   load_pluginss   list_pluginss   plugin_info_attributess   list_plugin_infos   import_modules   parent_classes(    sB   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/misc.pys   ? s    		0$