class Expose: (source)
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 |
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 | One or more function objects which will be exposed to the client. (type: Callable) |
| Returns | The first of funcObjs. (type: Callable) | |
Retrieve an exposed method with the given name from the given instance.
| Parameters | instance | Undocumented (type: object) |
| methodName | Undocumented (type: str) | |
| default | Undocumented (type: object) | |
| Returns | A callable object for the named method assigned to the given instance. (type: object) | |
| Raises | UnexposedMethodError | Raised if default is not specified and there is no exposed method with the given name. |