[Python-Dev] Re: decorators and 2.4
Barry Warsaw
barry at python.org
Mon Jun 28 13:19:31 EDT 2004
On Mon, 2004-06-28 at 12:50, Jeff Bone wrote:
> > Just one more opinion here, but I'm with Bob on this one. Sure, many
> > of the uses I envision are "declarative" in the sense that they just
> > associate metadata with the function. But many other uses I envision
> > would alter the function's behavior.
>
> I'm really curious what these uses might be.
Here's one of my use case.
In the Mailman3 implementation of the BerkeleyDB backend storage, I need
to set up Berkeley transactions around various calls. It's
programmatically possible to set up an explicit transaction to group
several operations together, but it's also possible to wrap a single
operation in a single transaction. Also, the Berkeley transactions must
be wrapped in try/excepts so that if any Python level exception occurs,
the transaction can be properly aborted.
There's enough complexity in the implementation, and similarity in the
use, that I wanted to encapsulate all that in a 'txnprop' decorator. I
currently use the 'call-after-def' wrapper idiom that's possible in
Python 2.3 today, but I want to use decorators for this, especially
because I sometimes want to combine the txnprop wrapper with other
decorators.
Here's a pointer to some of the code:
http://cvs.sourceforge.net/viewcvs.py/mailman/mailman3/src/mailman/berkeleydb/bdblist.py?rev=3.2&view=auto
The txnprop() descriptor guarantees that self.txn is bound to a
transaction inside the method call.
-Barry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 307 bytes
Desc: This is a digitally signed message part
Url : http://mail.python.org/pipermail/python-dev/attachments/20040628/80ff73a9/attachment.bin
More information about the Python-Dev
mailing list