-ν
ψΤ5;c       sD  d  Z  d k Z d k Td k l Z y e Wn e j
 o n! Xd f  d     YZ e e  Z y d k l	 Z	 Wn d   Z	 n Xd f  d	     YZ
 d
 f  d     YZ e	 e  d e f d     YZ e	 e  d e f d     YZ e	 e  e Z d f  d     YZ d e f d     YZ e	 e  d f  d     YZ d S(   s3   Python part of the Proxy type implementation.

    Copyright (c) 2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
    Copyright (c) 2000-2001, eGenix.com Software GmbH; mailto:info@egenix.com
    See the documentation for further information on copyrights,
    or contact the author. All Rights Reserved.

N(   s   *(   s   __version__s   _ModuleFinalizationc      s   t  Z d   Z d   Z RS(   Nc    s   | |  _ d  S(   N(   s   functions   selfs   fini(   s   selfs   function(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__ s    c    s   |  i   d  S(   N(   s   selfs   fini(   s   self(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __del__ s    (   s   __name__s
   __module__s   __init__s   __del__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   _ModuleFinalization s   	(   s   freezec    s   |  S(   N(   s   x(   s   x(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   <lambda> s    s   ProxyFactoryc      s,   t  Z d  Z e d  Z d   Z d   Z RS(   sE    Factory for producing Proxy-wrapped objects
        of a class.
    c    s   | |  _  | |  _ d  S(   N(   s   Classs   selfs	   interface(   s   selfs   Classs	   interface(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__& s    	c    s#   t  t |  i | |  |  i  Sd S(   sH    Return a new (wrapped) object. Pass-objects are not supported.
        N(   s   Proxys   applys   selfs   Classs   argss   kws	   interface(   s   selfs   argss   kw(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __call__+ s     c    s   d t  |  i  Sd  S(   Ns   <ProxyFactory for %s>(   s   reprs   selfs   Class(   s   self(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __repr__1 s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   __call__s   __repr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   ProxyFactory! s    	s   InstanceProxyc      s;   t  Z d  Z e e e d  Z d   Z d   Z d   Z RS(   s6    Proxy that wraps Python instances transparently.
    c    sW   |  i } | | | |  } | i | d <| i	 | d <| i
 i d | i
 i | d <d S(   sW    The interface is the same as that of the underlying C
            Proxy type.
        s   proxy_getattrs   proxy_setattrs   .s   proxy_object_reprN(   s   selfs   __dict__s   dicts   Proxys   objects	   interfaces   passobjs   ps   proxy_getattrs   proxy_setattrs	   __class__s
   __module__s   __name__(   s   selfs   objects	   interfaces   passobjs   Proxys   ps   dict(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__9 s     	c    s-   d |  i i |  i i |  i t |   f Sd  S(   Ns   <%s.%s for %s at 0x%x>(   s   selfs	   __class__s
   __module__s   __name__s   proxy_object_reprs   id(   s   self(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __repr__G s    c    s   |  i |  Sd  S(   N(   s   selfs   proxy_getattrs   what(   s   selfs   what(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __getattr__T s    c    s   |  i | |  d  S(   N(   s   selfs   proxy_setattrs   whats   to(   s   selfs   whats   to(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __setattr__W s    (	   s   __name__s
   __module__s   __doc__s   Nones   Proxys   __init__s   __repr__s   __getattr__s   __setattr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   InstanceProxy5 s
    		s   CachingInstanceProxyc      s    t  Z d  Z d   Z d   Z RS(   sQ   Proxy that wraps Python instances transparently and caches
        accessed attributes and methods.

        Note that cached attributes are not looked up in the wrapped
        instance after the first lookup -- if their value changes,
        this won't be noticed by objects that access the object
        through this wrapper.

    c    s"   |  i |  |  i | <} | Sd  S(   N(   s   selfs   proxy_getattrs   whats   __dict__s   o(   s   selfs   whats   o(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __getattr__g s    c    s5   |  i | |  |  i i |  o |  i | =n d  S(   N(   s   selfs   proxy_setattrs   whats   tos   __dict__s   has_key(   s   selfs   whats   to(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __setattr__l s    (   s   __name__s
   __module__s   __doc__s   __getattr__s   __setattr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   CachingInstanceProxy\ s   
 	s   SelectiveCachingInstanceProxyc      s#   t  Z d  Z e i f Z d   Z RS(   s   Proxy that wraps Python instances transparently and caches
        accessed attributes and methods depending on their type.

        Cached types are set via the attribute proxy_cacheable_types.
        It defaults to caching only methods (which likely don't change).

    c    s>   |  i |  } t |  |  i j o | |  i | <n | Sd  S(   N(   s   selfs   proxy_getattrs   whats   os   types   proxy_cacheable_typess   __dict__(   s   selfs   whats   o(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __getattr__ s    (   s   __name__s
   __module__s   __doc__s   typess
   MethodTypes   proxy_cacheable_typess   __getattr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   SelectiveCachingInstanceProxyu s    s   InstanceProxyFactoryc      s,   t  Z d  Z e d  Z d   Z d   Z RS(   sM    Factory for producing InstanceProxy-wrapped objects
        of a class.
    c    s   | |  _  | |  _ d  S(   N(   s   Classs   selfs	   interface(   s   selfs   Classs	   interface(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__ s    	c    s#   t  t |  i | |  |  i  Sd S(   sH    Return a new (wrapped) object. Pass-objects are not supported.
        N(   s   InstanceProxys   applys   selfs   Classs   argss   kws	   interface(   s   selfs   argss   kw(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __call__ s     c    s   d t  |  i  Sd  S(   Ns   <InstanceProxyFactory for %s>(   s   reprs   selfs   Class(   s   self(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __repr__ s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   __call__s   __repr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   InstanceProxyFactory s    	s   ReadonlyInstanceProxyc      s)   t  Z d  Z e e e d  Z d   Z RS(   sR    Proxy that wraps Python instances transparently in a read-only
        way.

    c    sJ   |  i } | | | |  } | i | d <| i	 i
 d | i	 i | d <d S(   sW    The interface is the same as that of the underlying C
            Proxy type.
        s   proxy_getattrs   .s   proxy_object_reprN(   s   selfs   __dict__s   dicts   Proxys   objects	   interfaces   passobjs   ps   proxy_getattrs	   __class__s
   __module__s   __name__(   s   selfs   objects	   interfaces   passobjs   Proxys   ps   dict(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__¦ s
     	c    s   t  d  d  S(   Ns   write access denied(   s   AccessError(   s   selfs   whats   to(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __setattr__³ s    (   s   __name__s
   __module__s   __doc__s   Nones   Proxys   __init__s   __setattr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   ReadonlyInstanceProxy  s    s   _Linkc      s)   t  Z d  Z d   Z d   Z d   Z RS(   s»    Proxy that links to an instance attribute in another object.

        XXX Should convert special lookups like __len__ to
            PyObject_* calls (for non-instance attributes).

    c    s!   |  i } | | d <| | d <d S(   sW    The interface is the same as that of the underlying C
            Proxy type.
        s   proxy_objects   proxy_attrnameN(   s   selfs   __dict__s   dicts   objects   attrname(   s   selfs   objects   attrnames   dict(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __init__Β s     	
c    s    t  t  |  i |  i  |  Sd  S(   N(   s   getattrs   selfs   proxy_objects   proxy_attrnames   what(   s   selfs   what(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __getattr__Λ s    c    s#   t  t |  i |  i  | |  d  S(   N(   s   setattrs   getattrs   selfs   proxy_objects   proxy_attrnames   whats   to(   s   selfs   whats   to(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   __setattr__Ξ s    (   s   __name__s
   __module__s   __doc__s   __init__s   __getattr__s   __setattr__(    (    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   _LinkΊ s    			(   s   __doc__s   typess   mxProxys   __version__s   finalizeweakrefss	   NameErrors   _ModuleFinalizations   _finis   mx.Toolss   freezes   ProxyFactorys   InstanceProxys   CachingInstanceProxys   SelectiveCachingInstanceProxys   MethodCachingProxys   InstanceProxyFactorys   ReadonlyInstanceProxys   _Link(   s   ReadonlyInstanceProxys   CachingInstanceProxys   SelectiveCachingInstanceProxys   InstanceProxys   InstanceProxyFactorys   _Links   freezes   _finis   ProxyFactorys   MethodCachingProxys   __version__s   _ModuleFinalizations   types(    (    s8   /mit/seven/lib/python2.2/site-packages/mx/Proxy/Proxy.pys   ? s2   	%



