hexagonit.decorators 0.2
Collection of useful decorators for Zope development
The package contains function decorators that help implementing repetitive tasks. It is mostly oriented towards Zope development.
Change History
0.2 (2007-09-05)
- Fixed problem with methods not being passed parameters from the query string. When a view method was called directly using an URL the parameters from the query string were lost when a view method was decorated. The decorators now push back the query parameters into the method call.
0.1 (2007-08-31)
- First public release.
Detailed Documentation
browser module
This module provides decorators that are useful with Zope 3 browser views (also usable in Zope 2).
JSON decorator
The JSON decorator uses simplejson to encode the return value of the decorated function as JSON.
>>> from hexagonit.decorators.browser import json>>> @json ... def json_callback(): ... """JSON callback method.""" ... return {'bool' : (True, False) } >>> json_callback() '{"bool": [true, false]}'
Any keyword arguments passed to the decorator will be passed on to the simplejson.dumps function.
>>> @json(sort_keys=True, ensure_ascii=False)
... def json_callback():
... """JSON callback method."""
... return {'foo' : None, 'bool' : (True, False), 'ints' : [1,2,3]}
>>> json_callback()
u'{"bool": [true, false], "foo": null, "ints": [1, 2, 3]}'
HTTP cache disabling decorator
The nocache decorator is used for Zope 3 views and sets the appropriate HTTP headers to disable caching for the results of the decorated method.
>>> from hexagonit.decorators.browser import nocache
We'll demonstrate the use of the decorator with a dummy view object.
>>> class Dummy(object):pass >>> class BrowserView(object): ... """Dummy view class that fakes the ``request`` object.""" ... def __init__(self): ... self.request = Dummy() ... self.request.response = Dummy() ... self.headers = [] ... self.request.response.setHeader = lambda header,value: self.headers.append('%s: %s' % (header, value)) ... ... @nocache ... def ajax_callback(self): ... print '\n'.join(self.headers)>>> view = BrowserView() >>> view.ajax_callback() Pragma: no-cache Expires: Sat, 1 Jan 2000 00:00:00 GMT Cache-Control: no-cache, must-revalidate
It is also possible to use both the json decorator and the nocache decorator at the same time.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| hexagonit.decorators-0.2-py2.4.egg (md5) | Python Egg | 2.4 | 2007-09-05 16:36:09 | 8KB | 342 |
| hexagonit.decorators-0.2.tar.gz (md5) | Source | 2007-09-05 16:36:09 | 4KB | 185 | |
- Author: Kai Lautaportti <kai lautaportti at hexagonit fi>
- Home Page: http://pypi.python.org/pypi/hexagonit.decorators
- License: GPL
- Categories
- Package Index Owner: dokai
- DOAP record: hexagonit.decorators-0.2.xml
Log in to rate this package.
