-ํ
๘ิ5;c       s    d  Z   	 d k Z  d k T d k l Z  y  e Wn  e j
 o
  n' X d f  d     YZ  e e  Z  y  d k l	 Z	 Wn   d   Z	 n X! d f  d	     YZ
 5 d
 f  d     YZ Z e	 e  \ d e f d     YZ s e	 e  u 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 1 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   1 3 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      sM   5 t  Z d  Z 8 9 e e e d  Z G d   Z T d   Z W d   Z RS(   s6    Proxy that wraps Python instances transparently.
    c    sl   9 ? @ |  i } A | | | |  } B | i | d <C | i	 | d <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    s3   G I 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   T U |  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   W X |  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 f g d   Z l 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+   g i |  i |  |  i | <} j | 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    sA   l n |  i | |  p |  i i |  o q |  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/   u 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    sM     |  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      s5     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    s\   ฆ ฌ ญ |  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      s8   บ 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    s0   ย ฦ ว |  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   
%	