#xPc @ s d Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l Z d d k Z d d k Z d d k Z d d k l Z d d k Z d d k Z d d k l Z d d k l Z l Z l Z l Z l Z d d k l Z d d k Td Z d Z d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d S( s Plugin framework. The classes in this module make heavy use of Python container emulation. If you are unfamiliar with this Python feature, see http://docs.python.org/ref/sequence-types.html iN( t path( t Env( t _( t ReadOnlyt NameSpacet lockt islockedt check_name( t DEFAULT_CONFIG( t *s %s: need a %r; got a %r: %rc C sO t | d d d j o t St | i d d d j o t S| i i d j S( sv If the object has self.env.mode defined and that mode is production return True, otherwise return False. t envt modet productionN( t getattrt Nonet FalseR R ( t obj( ( s3 /usr/lib/python2.6/site-packages/ipalib/plugable.pyt is_production_mode0 s t SetProxyc B s2 e Z d Z d Z d Z d Z d Z RS( sc A read-only container with set/sequence behaviour. This container acts as a proxy to an actual set-like object (a set, frozenset, or dict) that is passed to the constructor. To the extent possible in Python, this underlying set-like object cannot be modified through the SetProxy... which just means you wont do it accidentally. c C sj t t t f } t | | j o t d t | | f n | | _ t | p t | n d S( sR :param s: The target set-like object (a set, frozenset, or dict) s %r not in %rN( t sett frozensett dictt typet TypeErrort _SetProxy__sR R ( t selft st allowed( ( s3 /usr/lib/python2.6/site-packages/ipalib/plugable.pyt __init__E s c C s t | i S( s? Return the number of items in this container. ( t lenR ( R ( ( s3 /usr/lib/python2.6/site-packages/ipalib/plugable.pyt __len__P s c c s# x t | i D] } | Vq Wd S( s<