‡Æ
GDó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 Z  d k	 Z	   d k
 T" d f  d „  ƒ  YZ d S(   s   Sulfur Plug-in Architecture.
s3   $Id: Plugin.py,v 1.12 1999/12/14 10:42:36 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>N(   s   *s   Pluginc      s"  " d  Z  % & d Z ' d Z ( d Z ) d Z * d Z + d Z , d Z - g  Z . d Z	 / g  Z
 2 d Z	 4 d „  Z H d „  Z K e Z M e d „ Z W d e d „ Z a d „  Z g d	 „  Z x d
 „  Z  d „  Z ‚ d „  Z † d „  Z  d „  Z › e d „ Z à d „  Z RS(   s&   
    Superclass for all plug-ins.
    s    i   c    sç   4 5 t  |  _ 6 t i |  _ 8 h  |  _ 9 h  |  _ ; |  i g t	 |  i ƒ } < | i ƒ  = xX | d = rK } > x? | i d > r/ } ? | i |  i | i <@ | |  i | i <qƒ Wqk WB t  |  _ C |  i d |  i |  _ d  S(   Ni    s   ::(   s   Nones   selfs   contexts   syss   stdouts   logfiles   option_valuess   option_refss	   __class__s   parent_classess   cls   reverses   cs   optionss   os   defaults   names   registrys   types   config_path(   s   selfs   cls   cs   osD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   __init__4 s    	 	c    s   H I d |  i |  i f Sd  S(   Ns   <Plugin: %s: %s>(   s   selfs   types   name(   s   selfsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   __repr__H s   c    s‡   M O P | t j o P |  i  } n R |  i t j	 o t |  i d ƒ o S |  i i | | ƒ n U |  i i d | | f ƒ d S(   s!   Write a string to the log file.
	s   logs   %s: %s
N(	   s   names   Nones   selfs   contexts   hasattrs   logs   strs   logfiles   write(   s   selfs   strs   namesD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   logM s    &c    s   W Y Z | t j o Z |  i  } n \ |  i t j	 o t |  i d ƒ o ] |  i i | | | ƒ n! _ |  i i	 d | | | f ƒ d S(   s   Report an error.
	s   errors   %s: %s: %s
N(
   s   names   Nones   selfs   contexts   hasattrs   errors   strs   levels   logfiles   write(   s   selfs   strs   levels   namesD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   errorW s    &s   warningc    s   a c d d Sd S(   s   Return a status string.
	s    N(    (   s   selfsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   statusa s   c    s   g h | |  _ d  S(   N(   s   cs   selfs   context(   s   selfs   csD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   set_contextg s   c    sx   x y |  i i d ƒ o |  i i | ƒ o z |  i | Sn7 | |  i t j	 o | t |  i | ƒ Sn } t | ‚ d  S(   Ns   option_values(	   s   selfs   __dict__s   has_keys   option_valuess   ks   contexts   Nones   getattrs   AttributeError(   s   selfs   ksD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   __getattr__x s
   ) c    s*    € t  |  d ƒ o |  i i | ƒ Sd  S(   Ns   option_values(   s   hasattrs   selfs   option_valuess   has_keys   k(   s   selfs   ksD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys
   has_option s   c    s8   ‚ ƒ t  |  d ƒ o ƒ |  i | Sn „ t | ‚ d  S(   Ns   option_values(   s   hasattrs   selfs   option_valuess   ks   KeyError(   s   selfs   ksD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys
   get_option‚ s    c    sQ   † ‡ t  |  d ƒ o+ ˆ |  i | i | ƒ ‰ | |  i | <n ‹ t | ‚ d  S(   Ns   option_values(   s   hasattrs   selfs   option_refss   ks   validates   vs   option_valuess   KeyError(   s   selfs   ks   vsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys
   set_option† s   c    sð    Ž t  |  d ƒ oÊ  |  i | i t i ƒ o  t d | ‚ n ‘ |  i | i | ƒ ’ t
 |  i | ƒ t
 g  ƒ j oC “ |  i | o ” |  i | g |  i | <n – g  |  i | <n — |  i | i | ƒ n ™ t | ‚ d  S(   Ns   option_valuess!   %s does not allow multiple values(   s   hasattrs   selfs   option_refss   ks   has_flags   Optionss
   O_MULTIPLEs   RuntimeErrors   validates   vs   types   option_valuess   appends   KeyError(   s   selfs   ks   vsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   append_option s   #c    sy  › ¡ ¢ | t j o' £ h  } ¤ | i |  i ƒ ¥ | Sn9¦ t | d ƒ o¨¨ | |  _ © x’|  i i	 ƒ  d © r|\ } } ª |  i o ª |  i d | } n
 « | } ¬ |  i i | ƒ o­ | i | ƒ } ® | i t i ƒ ož ¯ t | ƒ t g  ƒ j o t | ƒ t f  ƒ j o ° | g } n ± y# ² t | d „ | ƒ |  i | <Wn, ³ t i j
 o ´ | i |  i | <n XnP ¶ y · | i | ƒ |  i | <Wn, ¸ t i j
 o ¹ | i |  i | <n Xn Ç | i |  i | <qq Wn~É xw|  i i	 ƒ  d É ra\ } } Ê | i | ƒ o/Ë | i | ƒ } Ì | i t i ƒ o¥ Í t | ƒ t g  ƒ j o t | ƒ t f  ƒ j o Î | g } n Ï y Ð t | d „ | ƒ Wn, Ñ t i j
 o Ò | i |  i | <n XÔ | |  i | <n_ Ö y × | i | | ƒ Wn, Ø t i j
 o Ù | i |  i | <n XÛ | | |  i | <n Ý | i |  i | <qWd S(   s)  Set plug-in options.  The optional parameter is either a
	dictionary (containing option values, keyed by name) or a
	Registry object; if either is supplied, the conduit will be
	configured from that data.  If no parameter is supplied, the
	current option values will be returned as a dictionary.
	s   is_registryi    s   ::c    s   ² | i |  ƒ S(   N(   s   objs   from_strs   v(   s   vs   objsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   <lambda>² s    c    s   Ð t  i |  ƒ S(   N(   s   os   validates   v(   s   vs   objsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   <lambda>Ð s    N(   s   optionss   Nones   ds   updates   selfs   option_valuess   hasattrs   registrys   option_refss   itemss   ks   os   config_paths   ps   has_keys   gets   vs   has_flags   Optionss
   O_MULTIPLEs   types   maps   ValidationErrors   defaults   from_strs   validate(   s   selfs   optionss   ds   ks   os   ps   vsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys	   configure› sX   	  	5# 5c    s   à â ã | |  i j Sd S(   s3   Test whether this plug-in has the named property.
	N(   s   props   selfs
   properties(   s   selfs   propsD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   has_propertyà s   (   s   __doc__s   names   authors   descriptions   versions   urls   types	   type_names
   propertiess	   is_plugins   optionss   __init__s   __repr__s   __str__s   Nones   logs   errors   statuss   set_contexts   __getattr__s
   has_options
   get_options
   set_options   append_options	   configures   has_property(    sD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   Plugin" s4   													

E(   s   __doc__s   __version__s   __copyright__s   syss   oss   strings   imps   operators   Registrys   Optionss   miscs   Plugin(    sD   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Plugin.pys   ? s   		0
