On 6/18/2013 5:47 AM, andrea crotti wrote:
Using a CouchDB server we have a different database object potentially
for every request.

We already set that db in the request object to make it easy to pass it
around form our django app, however it would be nice if I could set it
once in the API and automatically fetch it from there.

Basically I have something like

class Entity:
      def save_doc(db)

If save_doc does not use an instance of Entity (self) or Entity itself (cls), it need not be put in the class.

         ...

I would like basically to decorate this function in such a way that:
- if I pass a db object use it
- if I don't pass it in try to fetch it from a global object
- if both don't exist raise an exception

Decorators are only worthwhile if used repeatedly. What you specified can easily be written, for instance, as

def save_doc(db=None):
  if db is None:
    db = fetch_from_global()
  if isinstance(db, dbclass):
    save_it()
  else:
    raise ValueError('need dbobject')


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to