# ``twisted`.`web`.`_element`.`Expose``

class documentation

`class Expose: (source)`

View In Hierarchy

Helper for exposing methods for various uses using a simple decorator-style callable.

Instances of this class can be called with one or more functions as positional arguments. The names of these functions will be added to a list on the class object of which they are methods.

Method | `__call__` | Add one or more functions to the set of exposed functions.
Method | `get` | Retrieve an exposed method with the given name from the given instance.
Class Variable | `_nodefault` | Undocumented

def __call__(self, *funcObjs): (source)

Add one or more functions to the set of exposed functions.

This is a way to declare something about a class definition, similar to `zope.interface.implementer`. Use it like this:

        magic = Expose('perform extra magic')
        class Foo(Bar):
            def twiddle(self, x, y):
                ...
            def frob(self, a, b):
                ...
            magic(twiddle, frob)

Later you can query the object:

        aFoo = Foo()
        magic.get(aFoo, 'twiddle')(x=1, y=2)

The call to `get` will fail if the name it is given has not been exposed using `magic`.

Parameters
*funcObjs:`Callable` | One or more function objects which will be exposed to the client.
Returns
`Callable` | The first of `funcObjs`.

def get(self, instance, methodName, default=_nodefault): (source)
Retrieve an exposed method with the given name from the given instance.

Parameters
instance:`object` | Undocumented
methodName:`str` | Undocumented
default:`object` | Undocumented
Returns
`object` | A callable object for the named method assigned to the given instance.
Raises
`UnexposedMethodError` | Raised if `default` is not specified and there is no exposed method with the given name.

_nodefault = (source)

Undocumented