Collection of useful decorators for Zope development
Project description
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.
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hexagonit.decorators-0.2-py2.4.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bb9e293647b43800141d74c27f502253d73c0377ca147170b7d4a334867b628 |
|
MD5 | 4e4f39abd5b82c16a40d36c7618bb02e |
|
BLAKE2b-256 | 7706083285b913febe076ce46193e6acea04f356fda1652b8d3c39f53237e35a |