SCons :: Util :: Proxy :: Class Proxy
[hide private]
[frames] | no frames]

Class Proxy

source code

object --+
         |
        Proxy
Known Subclasses:
Builder.CompositeBuilder, Node.FS.EntryProxy

A simple generic Proxy class, forwarding all calls to
subject.  So, for the benefit of the python newbie, what does
this really mean?  Well, it means that you can take an object, let's
call it 'objA', and wrap it in this Proxy class, with a statement
like this

             proxyObj = Proxy(objA),

Then, if in the future, you do something like this

             x = proxyObj.var1,

since Proxy does not have a 'var1' attribute (but presumably objA does),
the request actually is equivalent to saying

             x = objA.var1

Inherit from this class to create a Proxy.

Note that, with new-style classes, this does *not* work transparently
for Proxy subclasses that use special .__*__() method names, because
those names are now bound to the class, not the individual instances.
You now need to know in advance which .__*__() method names you want
to pass on to the underlying Proxy object, and specifically delegate
their calls like this:

    class Foo(Proxy):
        __str__ = Delegate('__str__')



Instance Methods [hide private]
 
__init__(self, subject)
Wrap an object as a Proxy object
source code
 
__getattr__(self, name)
Retrieve an attribute from the wrapped object.
source code
 
get(self)
Retrieve the entire wrapped object
source code
 
__cmp__(self, other) source code

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, subject)
(Constructor)

source code 
Wrap an object as a Proxy object

Overrides: object.__init__

__getattr__(self, name)
(Qualification operator)

source code 
Retrieve an attribute from the wrapped object.  If the named
attribute doesn't exist, AttributeError is raised